Inside of data science
データサイエンスに纏わる様々な視点を発信しています

トピック

機械学習が分かるノート③ ニューラルネットワークとディープラーニング

参照元:http://vas3k.com/blog/machine_learning/

 

機械学習が分かるノート①・②と、機械学習とはどのようなものかについて説明してきました。
最後となる今回は、機械学習の中で今最も注目を集めているニューラルネットワークのディープラーニングという手法について説明したいと思います。

 

そもそも、なぜここ数年これほどまでに人工知能という言葉が注目を集めるようになったのでしょうか?
ディープラーニング(ニューラルネットワークの多層化)という発想自体は1980年代頃には既にあったのですが、処理や計算にかかるコストもリソースも当時では膨大に必要となるためあまり盛んに研究が行なわれていませんでした。
それが2012年に行なわれたILSVRCという画像認識の精度を競うコンペティションで、ディープラーニングを使用したカナダ トロント大学のチームが他のチームに圧倒的な差をつけて優勝した事で一気に注目を浴びるようになりました。

 

以前に比べてコンピュータのハードの高性能化やGPUの低価格化、インターネットの普及によりデータの収集が容易になった事など複数の要因で、これまでよりも圧倒的に手軽に高速にディープラーニングの処理が出来るようになった事でその有用性や可能性が見直されたのです。
これがきっかけとなり世界中の研究機関や企業などがこぞってディープラーニングの研究を行うようになり、現在の人工知能ブームへと繋がっていきます。

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

ニューラルネットワークとは、脳の神経細胞(ニューロン)と神経回路の一部を単純化し数理モデル化したものをコンピュータ上に再現したものです。ニューラルネットワークは入力層・中間層(隠れ層)・出力層の3つの層で構成されています。

参照元:http://vas3k.com/blog/machine_learning/

 

この中間層を深くし多層化したものをディープニューラルネットワーク(DNN)といいます。
ディープラーニングではこの出力結果と、実際に期待していた正解となるデータを見比べ、乖離が大きい場合には、特徴量を計算する重み(パラメータ)を調整します。
期待していた出力結果にならない場合には何度もチューニングを行い期待した結果が得られるまで繰り返し、機械に学習させます。私達も試験勉強などをする時には、勉強をして問題を解き、間違った問題を繰り返し解いて学習する事がありますが、プロセスとしては同じ事をしています。

CNN

2012年のILSVRCで優勝したカナダのトロント大学のチームのディープラーニングでは、ディープニューラルネットワークの多層化ではなく、CNN(畳込みニューラルネットワーク Convolutional Neutral Network)によるディープラーニングが使われていました。CNNではディープラーニングの図の中間層の部分が畳込み層とプーリング層の2層(+畳込み層の処理とプーリング層の処理後にノードを全結合する全結合層)に分かれ、それぞれ別の処理を実行しています。CNNは人間の視覚をモデルに考案されているため、画像認識に優れています。
また、ディープラーニングで最も主流となっているため、現在のディープラーニングと呼ばれているものはこの畳込みニューラルネットワークの多層化である事が多いです。これ以外では、RNN(再帰型ニューラルネットワーク Recurrent Neural Network)が機械翻訳や音声処理などの領域ではディープラーニングによく使われています。

 

参照元:http://vas3k.com/blog/machine_learning/

Deep Q-Learning

数年前に囲碁の勝負でAIが人間に勝利したというニュースは覚えているでしょうか?
あの時に人間に勝利したAIであるAlphaGoでは強化学習とディープラーニングを組み合わせた「深層強化学習」という手法が採用されています。(DQN=Deep Q-Network)
Deep Q-Networkではディープニューラルネットワークを使用した強化学習を行う事で、強化学習では計算が膨大になりすぎてしまう部分をニューラルネットワークで代用しています。

 

ニューラルネットワークやディープラーニングの説明を聞くと「なんだか難しそう」という印象を抱くかもしれません。実際に完璧に理解して使いこなそうとすると、相当な労力が必要になると思います。
ですが、現在では「Keras」・「Chainer」・「Tensorflow」などといった機械学習向けのライブラリ(フレームワーク)があり、学習済みのモデルも多く公開されているため、大量の学習データを用意したりゼロから複雑な処理や計算式を書かなくても、プログラミングの知識が少しだけあればディープラーニングを使ってみる事が可能です。
また、今では多くの人にとって馴染みのあるExcelを使って機械学習について理解する書籍なども発売されています。
学習方法や手法の違いなども自分で実際に手を動かして体験してみるとよりクリアに理解が出来ると思いますので、ぜひ一度試してみることをオススメします。

 

参考記事:Machine Learning for Everyone

«
»

ブログ一覧