機械学習とディープラーニングの違いについて

「機械学習とディープラーニングって何が違うの?」
「パーセプトロンとニューラルネットワークの違いって何?」
この質問にみなさんは答えることはできますか?

僕はディープラーニングについて勉強しているんですが、こんな基礎の基礎のような質問にも答えられないことに気づいたので調べてみることにしました。

長くなりそうなので、何回かにわけて記事にします。

機械学習とディープラーニングのちがい

最初に端的に答えを言ってしまおう。
機械学習とディープラーニングの違いは「特徴量を人間が指定するのか、コンピュータにはじき出させるのか」だ。

正確には「機械学習」という大きなジャンルがある中に「ディープラーニング」という比較的新しい分野があるようなイメージなのだがこんな感じの認識で良いだろう。

詳細な解説は後にして所謂機械学習の大まかな手順を見てみよう。
ここに、こんなデータがある。
◯△△△△△◯◯◯△◯△…    ・・・・(*)
↑これは大きさや、先の太さの違うどれ一つとして完全一致したものはない手書きの記号だと考えて欲しい。
これらを「◯」と「△」にわけていった後に「○」がどちらに分類されるのか自動的に機械に答えてほしい。というのが目的だ。

まず人間が
「◯」は「まる」
「△」は「さんかく」とタグ付けしていき、(*)を2つのグループに分ける。

機械学習とディープラーニングが異なるのはこの次の工程においてだ。

機械学習の場合

人間が「◯」は
・曲線である
・円周率がπである
・頂点がない

「△」は
・直線である
・頂点と辺がともに3つずつある
・内角の総和は180度である

などと人間がそれぞれの特徴を提案して分類する。
その後、問題だった「○」がどちらに近いかをコンピュータがその特徴量から考えて答えを出力する。

ディープラーニングの場合

コンピュータが「◯」は
・この部分のマス目とこのマス目の出力の積が10010になることが多い(適当)

「△」は
・このマス目とこのマス目の比率が常に10293:394になる(適当)

のように、もはや人間には理解不能であり、人間がその特徴を導き出すのに何年かかるんだよ!って感じの特徴量を機械が見つけてくれる。
そしてその後、上と同様に答えを出してくれる。

そうすることで、人間が特徴を提案するよりも遥かに正確で膨大な量の特徴を発見することができるので、答えがより正確になるわけだ。

まとめ

今回の例ではとても簡単なもので考えてみたが、
例えば手書き数字の「2」と「9」。
どこがどう違うかって説明できませんよね。

「猫」の写真と「犬」の写真を見比べて違うところを1000も10000も答えられないですよね。
こんな観点から見ればどう考えてもコンピュータ側に軍配が上がるわけです。

すばらしい。

ってことで今回は以上です。

コメントを残す