こんにちは!
消費財メーカーでデジタルマーケターやらデータサイエンティストっぽいことをしているウマたん(@statistics1012)です!
最近流行りの機械学習とディープラーニング・・・よく色んなところで耳にしますよねー!
大学院時代は機械学習手法の改良に明け暮れておりましたが、ディープラーニングに触れることはありませんでした。
そんな僕ですが、社会人になってディープラーニングを猛勉強しました。
そんな機械学習とディープラーニングですが、具体的にどのような違いがあるのでしょうか?
そう、ディープラーニングはあくまで機械学習手法の一種なんです!
違うものではなく、あくまで仲間。
しかし今までの機械学習とディープラーニングは何が違うのか知っておくことは大事ですね!
この記事では、機械学習とディープラーニングの違いについて見ていきます!
・機械学習とは何なのか
・ディープラーニングとは何なのか
・機械学習とディープラーニングの違い
目次
機械学習とは
まずは機械学習について見ていきましょう!
機械学習とは、その名の通り「機械に学習させてルールを作り出す」ということ。
機械学習が発展する前は、人間がルールを決めていました。
レコメンドで言えば、「この商品を購入した人にはこの商品を紹介したいから、そのようなルールを決めよう!」というように(ルールベースレコメンドと呼びます)。
そこに存在するのは人間の勘と想像です。
実際にこのようなレコメンドはまだまだ実用的に使われていますが、より精度の高いレコメンドを行うためには機械学習が必要になります。
「この商品を購入した人はこの商品を購入する確率が高いから、そのようなルールを作る」というように現在存在するデータを学習して自動的にルールを作っていくわけです。
ちなみに統計学を起点とする多変量解析手法群もその定義からすると機械学習の中に含まれますが、機械学習手法と統計学ではスタンスが若干違います。
統計学は現在のデータを解釈することを目的としますが、機械学習は未知のデータを正確に予測できることを目的とします。
詳しくは以下の記事をご覧ください!
僕は、統計学は解釈追求型、機械学習は精度追求型と呼んでいます。
ただ境目は曖昧ですのでそれほど気にする必要はないでしょう。
明確に切り分けることはできません。
ちなみに機械学習には大きく分けて3つ、教師あり学習・教師なし学習・強化学習が存在します!
その名の通り、教師あり学習は教師となるデータがある手法
教師なし学習は教師となるデータがない手法
報酬を設定することで勝手に学習していく手法です。
教師あり学習と強化学習が似ているように思われるかもしれませんが、 教師あり学習は全ての変数(特徴量)に対してフィードバックがありますが、強化学習は最終的な結果にのみフィードバックをします。
それぞれに分類される手法は以下の記事で詳しくまとめていますので見てみてください!
ディープラーニングとは
続いてディープラーニングについて見ていきましょう!
はたしてディープラーニングとはどのような立ち位置なのでしょうか?
図のように、実はAIの中に機械学習があって機械学習の中にディープラーニングがあるという関係です。
AIというとディープラーニングを思い浮かべるという場合もありますが、本来の定義ではAI=ディープラーニングではないのです。
もちろんAIがディープラーニングを指している文脈もありますので注意が必要です。
さて、そんなディープラーニングとはどのようなモノなのか。
ディープラーニングの起源は機械学習手法であるニューラルネットワークにさかのぼります。
1950年代に考案されたアルゴリズムであり人間の脳を模したモノです。
ある層からある層へ情報が伝播していくのですが、その伝播する情報には重みが掛け合わされます。
簡単に言うと、その重みを上手く調節することで望んだアウトプットが出せるようになるのです。
シンプルに言うとそれがニューラルネットワークの構造です。
しかしニューラルネットワークは層を深くすればするほど、計算負荷が膨大になります。
さらに、重みを計算する上で勾配法という方法(微分!)を用いていくのですが、層が深すぎると勾配が消失してしまい重みの意味がなくなるという事態にも陥ります。
まあ色々難点があったのですね。
それを新たなアルゴリズム・マシーンパワーの増加・インプットデータの増加の3点のブレークスルーによって現在のディープラーニングが生まれたのです。
ディープラーニングの簡単なアルゴリズムからPythonでの実装までを以下の記事で紹介しているので興味のある方はぜひ読んでみてください!
機械学習とディープラーニングの違いって?
そう、先ほどディープラーニングは機械学習の中の教師あり学習・教師なし学習・強化学習のどれにも属さないとお話しましたが、どのような立ち位置になるのでしょうか?
それでは実際にディープラーニングの中での教師あり学習・教師なし学習・強化学習について見ていきましょう!
CNN(畳み込みニューラルネットワーク)
そもそもディープラーニングの基となっているニューラルネットワークは教師あり学習として使われることが多いです。
その中でも画像認識の分野においては現在でもCNNが使われています。
CNNはディープラーニングの中でも最も一般的な手法であり、ディープラーニングと言えばCNNを指すことも多いです。
CNNのCはConvolutionalで、畳み込みニューラルネットワークとも呼ばれます。
主に画像認識の場面で使われることが多く、猫と犬を画像判別させるような例はよく見かけます。
画像に対して「ネコ」や「イヌ」といったラベルが付いた状態で学習させるので、まさに教師あり学習ですね!
畳み込みニューラルネットワークは通常のネットワークに対して畳み込み層とプーリング層と呼ばれる層を取り入れることで、画像認識率を著しく上昇させています。
CNNに関しては、以下の記事で詳しく解説していますのでチェックしてみてください!
GAN(敵対的生成ネットワーク)
GANは「Genera tive Adversarial Networks」の頭文字を取った手法であり、応用領域に注目が集まっている手法です。
GANは特定の画像をインプットさせて、実際に存在しない画像を生成させることのできる手法です。
実際に存在しないホテルの部屋の画像を生成したのが以下になります。
(引用元: Google-“UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS” )
GANでは2つのニューラルネットワークを使います。片方がGenerator、もう片方がDiscriminator。
Generatorが生成した偽物のデータと実際に存在する本物のデータをDiscriminatorに判別させ、 Discriminatorが上手く判別できないようなデータを Generator が生成していきます。
Discriminatorはどんどん判別の難しくなるデータを上手く判別できるようにしていきます。
この学習が進むと最終的にGeneratorが生成される画像は本物にきわめて近くなっているという手法です。
GANについて詳しくは以下の記事で解説しています!
Deep-Q-Network
囲碁のチャンピオンをAIが破ったニュースは記憶に新しいでしょう。
そのAIのアルゴリズムに搭載されているのがこの「Deep Q Network」。
強化学習であるQ-Learningにディープラーニングを応用した作りになっています。
強化学習自体は、ゲームのCPUの動きに適応されるなど既に様々な分野で実装されていました。
しかし、強化学習はそもそも学習に時間がかかるため行動パターンが複雑だと解を導くことができません。
囲碁は19×19もの数の交点があり、状態(s)と行動(a)のパターンが膨大です。
そこで登場したのがディープラーニング。
ディープラーニングとQ学習を組み合わせたDeep-Q-networkという手法が開発され、それを基にプロ棋士をも凌駕する人工知能Alpha Goが作られたのです。
ディープラーニングと機械学習の違い まとめ
ディープラーニングと機械学習の違いについて最後にまとめておきましょう!
機械学習の違い
・ディープラーニングは機械学習の一部である
・ディープラーニングは教師あり学習にも教師なし学習にも強化学習にもなり得る
・画像認識の場面ではCNNが有名
・ディープラーニング×教師なし学習はGAN
・ディープラーニング×強化学習はDeep-Q-Network
今後はAIという文脈で機械学習やディープラーニングという言葉が使われることがより一層多くなるでしょう!
そんな時は違いを思い出してみください!
機械学習とディープラーニングの勉強法は以下の記事でまとめていますよー!ぜひチェックしてみてくださいね!