最近pythonで機械学習系の勉強をしているのですが、そのことを知り合いに話すと「機械学習って何をするものなの?」「機械学習ってなに?」って聞かれることが増え、そういうときに100%納得のいく返しが出来ず、もどかしい気持ちになったので、今回は自分の中で機械学習とは何か?を体系化させたいと思います。
機械学習とディープラーニングはどう違うのか?
たぶん機械学習系の話題で一番肝心なところなのですが、よくあるのが「機械学習とディープラーニングはどう違うのか?」という点ですね。結論から行くと「機械学習=ディープラーニング」です。そしてもう少し正確に言うと、「ディープラーニングは機械学習の一部」だと言えます。
というのも自分も最初は勘違いしていたのですが、機械学習(マシーンラーニング)はあくまでPC上でプログラミング言語を使い、データから予測モデルを算出する作業です。つまりPCになんらかのデータをインプットをして、アウトプットを得るという作業です。
ここにおいてPCがデータを分析して結果を算出するひな型となるモデル、つまりどうやってデータを分析するのか分析手法が必要がなります。このモデリングの手法が色々あり、それが回帰分析だったり重回帰分析だったりディープラーニングだったりするわけです。
なので、ExcelやRやPythonなどのプログラミング言語を使った回帰分析や重回帰分析、それを少し応用した分類、人間の脳回路を模した分析手法であるニューラルネットワークなども機械学習なのです。
AI・機械学習・ディープラーニングの関係性をまとめると以下の図のようになります。日本のAIの第一人者である東京大学の松尾豊先生が書いた「人工知能は人間を超えるか ディープラーニングの先にあるもの 」という本はAIの仕組みとそれによって起こりうる社会変化について分かりやすく解説しているので、AIについて知りたい方には非常にオススメです。
引用元:人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書)
ニューラルネットワークとディープラーニング
そして、ディープラーニング(深層学習)はニューラルネットワークの進化系です。というのも、従来のニューラルネットワークというのは、中間層が2層くらいの簡単なものでした。これはニューラルネットワークの分析に必要な計算量が他の分析よりも遥かに多く、2000年代で一般に販売されてるPCのスペックでは何十層もの中間層のニューラルネットワークを計算するディープラーニングはできませんでした。
なので、ニューラルネットワークというと中間層がスッカスカのものを指していました。そして、中間層がほとんどないので分析しても有効な結果がでず、昔から度々注目されていたもの主流とはなりませんでした。
ですが、ここ数年でデータの計算処理に使用するコンピューターのスペック(主にグラボ)が大幅に向上し、加えてPythonに書かれた「keras」や「tensorflow」といった便利な機械学習ライブラリの登場により、普通の市販のPCでも複雑なニューラルネットワークの計算が可能になりました。
それによりこれまで専門の研究機関とかでしか出来なかったディープラーニングが自分みたいな一般ピーポーでも複雑なニューラルのネットワークの構築、つまりディープラーニングが簡単にできるようになり、それと同時に、従来の技術では不可能だったレベルの分析パフォーマンスを達成できるようになったのです。そのためPythonによるディープラーニングがここ数年盛り上がりを見せているわけです。
ディープラーニングでは、人間の脳神経回路の仕組みを模しているのでモノを区別・認識したり、また、電話、タブレットなどの音声認識においても重要な役割を果たしており、これからさらに主流になっていく分析手法です。
終わり
ディープラーニングはニューラルネットワークと呼ばれる機械学習の分析手法の発展形で機械学習の中級のくらいの分野に位置します。
機械学習はいろいろありますが、理解しにくさで言えば、最上級はおそらく会話データなどの時系列データを分析する際に使うリカレントネットワーク(RNN)と強化学習だと思います。まとめると個人的な機械学習全体の認識としては↓みたいな感じです。
初級:線形分類(SVC)
初級:非線形分類(ランダムフォレストなど)
ーーここまでが一般的な機械学習ーー
中級:深層学習(ディープラーニング)
上級:強化学習(リカレントネットワークetc)
pythonとかで機械学習を勉強したいと思っている人はこの辺を意識すると、自分は何をしたくてそのために何を勉強する必要があるのかが認識しやすくなり、学習がスムーズに進むと思います。
僕も機械学習・AIを勉強するにあたって何百冊もの参考書を購入して読んできましたが、一定のプログラミングスキルを持っている方はアPythonで機械学習の理論と実践方法を勉強したいのであれば、「Pythonで動かして学ぶ! あたらしい機械学習の教科書」がオススメです。
そして、機械学習の延長にあるAIが社会をどうか変えていくのか、これからAIエンジニアになるのはどうすればいいのかを知りたい人には、以下の「マンガでわかる! 人工知能 AIは人間に何をもたらすのか 」「機械学習エンジニアになりたい人のための本 AIを天職にする 」の2冊がオススメです。
コメント