初心者向けに機械学習とディープラーニングの違いを分かりやすく解説する

スポンサーリンク

最近pythonで機械学習系の勉強をしているのですが、そのことを知り合いに話すと「機械学習って何をするものなの?」「機械学習ってなに?」って聞かれることが増え、そういうときに100%納得のいく返しが出来ず、もどかしい気持ちになったので、今回は自分の中で機械学習とは何か?を体系化させたいと思います。

機械学習とディープラーニングはどう違うのか?

たぶん機械学習系の話題で一番肝心なところなのですが、よくあるのが機械学習とディープラーニングはどう違うのか?という点ですね。

結論から行くと機械学習=ディープラーニングです。そしてもう少し正確に言うと、ディープラーニングは機械学習の一部だと言えます。というのも自分も最初は勘違いしていたのですが、機械学習(マシーンラーニング)はあくまでPC上でプログラミング言語を使い、データから予測モデルを算出する作業です。つまりPCになんらかのデータをインプットをして、アウトプットを得るという作業です。

ここにおいてPCがデータを分析して結果を算出するひな型となるモデル、つまりどうやってデータを分析するのか分析手法が必要がなります。このモデリングの手法が色々あり、それが回帰分析だったり重回帰分析だったりディープラーニングだったりするわけです。

なので、ExcelやRやPythonなどのプログラミング言語を使った回帰分析や重回帰分析、それを少し応用した分類、人間の脳回路を模した分析手法であるニューラルネットワークなども機械学習なのです。

スポンサーリンク

ニューラルネットワークとディープラーニング

そして、ディープラーニング(深層学習)はニューラルネットワークの進化系です。というのも、従来のニューラルネットワークというのは、中間層が2層くらいの簡単なものでした。これはニューラルネットワークの分析に必要な計算量が他の分析よりも遥かに多く、2000年代で一般に販売されてるPCのスペックでは何十層もの中間層のニューラルネットワークを計算するディープラーニングはできませんでした。

なので、ニューラルネットワークというと中間層がスッカスカのものを指していました。そして、中間層がほとんどないので分析しても有効な結果がでず、昔から度々注目されていたもの主流とはなりませんでした。

ですが、ここ数年でPCのスペック(主にグラボ)が大幅に向上し、普通のPCでも複雑なニューラルネットワークの計算が可能になりました。(& kerasやtensorflowといった便利ライブラリーの登場)

それによりこれまで専門の研究機関とかでしか出来なかったディープラーニングが自分みたいな一般ピーポーでも複雑なニューラルのネットワークの構築、つまりディープラーニングが簡単にできるようになり、それと同時に、従来の技術では不可能だったレベルの分析パフォーマンスを達成できるようになったのです。そのためディープラーニングがここ数年盛り上がりを見せているわけです。

ディープラーニングでは、人間の脳神経回路の仕組みを模しているのでモノを区別・認識したり、また、電話、タブレットなどの音声認識においても重要な役割を果たしており、これからさらに主流になっていく分析手法です。

終わり

ディープラーニングはニューラルネットワークと呼ばれる機械学習の分析手法の発展形で機械学習の中級のくらいの分野に位置します。機械学習はいろいろありますが、理解しにくさで言えば、最上級はおそらく時系列データを分析する際に使うリカレントネットワーク(強化学習)だと思います。まとめると個人的な機械学習全体の認識としては↓みたいな感じです。

  初級:線形分類

  初級:非線形分類

ーーここまでが一般的な機械学習ーー

  中級:深層学習(ディープラーニング)

  上級:強化学習(リカレントネットワークetc)

pythonとかで機械学習を勉強したいと思っている人はこの辺を意識すると、自分は何をしたくてそのために何を勉強する必要があるのかが認識しやすくなり、学習がスムーズに進むと思います。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする