By darkday

AI(人工知能)が大きな話題となっているコンピューターサイエンスの世界で、その技術を支えているのが「ディープラーニング」です。一方、コンピューターを使った「機械学習」という言葉を耳にすることも多いものですが、実はその違いがよくわからない人も多いはず。そんな両者の違いを、数学的計算ソフトウェア「MATLAB」の開発元であるMathWorksが簡単に解説しています。

Introduction to Deep Learning: Machine Learning vs Deep Learning - YouTube

機械学習もディープラーニングも、学習モデルを提供してデータを分類することに使われる技術です。その働きを解説するのによく用いられるのが、犬と猫の画像を分類するという例。この画像の場合、ほぼ全ての人が左が犬、右が猫と答えるはず。



しかし、別の画像を持ってきた時、それが猫なのか犬なのかを判別できるのは、画像を脳の中で解析して特長を見定め、知識と経験にそって判断する能力が人間には備わっているからです。



これと同じことをコンピューターに処理させるのが、機械学習及びディープラーニングの目的です。とはいえ、両者の間にはアプローチの違いが存在しています。

機械学習の場合、与える素材をまずは人間が前処理を行います。画像の場合、角や境界線であることを示しておくことで、コンピューターが認識できるようにしておきます。次に、コンピューターがデータに含まれる特長を解析して蓄積しておき、最後にその蓄積したデータをもとに画像の特長から答えを導き出します。



上の例は物体認識の場合の例でしたが、同じ手法が情景認識や物体検出にも使えます。



つまり、機械学習のワークフローを示すと以下のとおり。まず画像があり、その特長を示して機械(=コンピューター)に認識させることで学習させ、最後に与えられた問題を解決する、というもの。



ディープラーニングの場合、人間が行っていた作業が省かれます。元となるデータをそのまま与えると、ディープラーニングのアルゴリズムは畳み込みニューラルネットワークを駆使して自ら解析を行い、答えを出せるようになります。



ここで認識しておかなければならないのは、実は「ディープラーニング」は広い意味での機械学習という概念に含まれるものである、と言う事実。つまり「機械学習>ディープラーニング」というわけなのですが、このムービーでは機械学習を「ディープラーニングではないもの」という分類のしかたで説明しています。



それでは、機械学習とディープラーニングはどのように使い分ければよいのでしょうか?これは「ハードウェアの性能」と「データの量」によって適切に判断することが可能。ディープラーニングは膨大な量のデータについて膨大な計算処理を行うため、演算能力の高いGPUなどのハードウェアが必須です。そのため、ハードウェアに恵まれ、さらにデータが多い場合はディープラーニング、マシンの性能があまり高くなく、処理するデータの数もそれほど多くない場合は、機械学習を採用するのが良いとのこと。





機械学習を選択した場合は、学習させる際に数多くのクラシファイアー(Classifier)を使えるという選択肢があります。また、最適な答えを導くためにどの特徴を利用するか、という選択をすることも可能。機械学習の場合は、目的によってアプローチを組み合わせて選択できるというメリットがあるというわけです。



機械学習の場合は自分の工夫を盛り込める余地が残されていて、処理に要する時間が短いのに対し、ディープラーニングは利用者に多くの知識や工夫がなくとも、高い精度を得られるという特長があります。ただし、ディープラーニングの場合は高いマシン性能と、処理に要する時間が長くかかるというデメリットがあります。また、ディープラーニングが高い精度で学習するためには膨大なデータが必要になるほか、内部のアルゴリズムはもはや人間が理解しきれない「ブラックボックス」であるため、デバッグを行うことが事実上不可能であることも覚えておく必要があります。



つまり、機械学習とディープラーニングは厳密には同じ「機械学習」に含まれているものであり、その使い分けは処理するデータの量とハードウェアの性能、そして求めたい答えの内容によって選択すべきである、というわけです。