読者です 読者をやめる 読者になる 読者になる

ImageNet Classification with Deep Convolutional Neural Networks

今や当然のように身近にあるDeep Learning、、、。
そろそろ勉強しなきゃですよね。

今日はこちらのスライドに沿ってお話していこうと思います。

ILSVRC
Deep Learningについて紹介するスライドを見ると必ずと言っていいほど目にする「ILSVRC」という文字。
これはImageNet Large Scale Visual Recognition Challengeの略で、1000個のカテゴリーの120万枚の画像から学習して、クラス分類をする課題のことです。

なぜDeep Learning?
Deep Learning(またの名をDeep Neural Network)が流行る前にも、パーセプトロン(Neural Network)を用いた手法は多く取られていました。
パーセプトロン(Neural Network)とは、人間の脳を模倣してもので、下の図のような構造をしています。

f:id:takahiro-itazuri:20170331003951p:plain

人間の脳は多くのニューロンから構成されていて、ニューロン樹状突起という部分で他のニューロンから刺激を受け取り、入力された刺激がある一定以上になると、軸索終末という部分から信号を出力するといった仕組みになっています。
人間が多くの物体を認識できるように、機械にも同様の構造を持たせて、学ばせて(学習)あげれば人間と同等に物体を認識できるだろうと考えた人達がいました。

f:id:takahiro-itazuri:20170331004413p:plain

つまり、上の図のようにニューロンをつなぎ合わせたモデルを使って物体認識をさせようということです。
Deep Learning以前では、入力の信号として従来からcomputer visionの分野で用いられていた特徴量を用いて、学習させていました。
しかし、これでは指定した特定の特徴量しか入力されません。
そこで、入力される特徴量さえもこのモデルが自動的に作るような構造(architecture)を開発しました。
これがまさにDeep Neural Network(Deep Learninig)なのです。

f:id:takahiro-itazuri:20170331004850p:plain

特徴量を自動的に作る部分がどのように行われているか説明します。
従来からcomputer visionではガウシアンフィルタ(画像をぼかすフィルタ)やキャニーフィルタ(エッジを抽出するフィルタ)といったようにフィルタを用いて特徴量を抽出していました。
画像の特定の領域と予め用意しておいたフィルタを畳み込む操作をフィルタリングと呼ばれています。

f:id:takahiro-itazuri:20170331005357p:plain

このフィルタの値を上手く作ることで、これまで画像をぼかしたり、エッジを抽出したりしてきました。
これらが特徴量として用いられていました。
したがって、このフィルタを上手く作ることができれば、うまく分類ができそうですね。
そこで画像認識の分野ではConvolutional Neural Networkといって、このフィルタの値を学習する構造(architecture)となっています。

f:id:takahiro-itazuri:20170331005657p:plain

このように従来は人間お手製の特徴量を使っていた部分までもを学習するものがDeep Learningということになります。

Deep Learningの問題点
ここまで見てきたDeep Learningはまさしく機械が人間と同じ構造を持ち、まるでSF映画の世界です。
しかし、この万能に見えるDeep Learningにもいくつか欠点があります。

まず一つ目は6000万個のパラメータを学習しなければならないことです。
この読者にはまだ「学習ってなんや?」とわからない方がいらっしゃるかもしれませんが、兎にも角にもなんか膨大な量を学習しなきゃいけないんだということはわかると思います。
つまり膨大な計算量が必要なのです。
人間の脳がどれだけ複雑な構造をしているかは想像にたやすいでしょう。
それを機械の中に構築し、学習させるのは大変そうだということくらいはわかります。
しかし、最近では並列計算を得意とするGPUや効率よく学習するための工夫が多く登場しており、これが原因ともなってDeep Learningが流行っています。

次に二つ目の欠点は、学習するデータが膨大に必要になることです。
人間が10歳になるころにはどれだけ多くの情報と触れ合っているかを想像すれば、膨大な量のデータが必要になるのは当たり前のように感じるでしょう。
しかし、こちらもdata augumentationといって、少ないデータを上手く加工してデータ数をむりやり増やす(data augumentation)という技術が出ています。

Deep Learningの今後
このようなDeep Learningにおける欠点とされていた問題点がどんどんと解決されており、近年急成長を見せています。
ただまだ理論的な裏付けの部分が研究されていたり、当面の問題は多く残っています。
今後もDeep Learningは何かと世間を騒がせることになるでしょう。
今回はここで終わりますが、今後もよりDeep Learningの理解を深めるための記事を投稿していこうと思います。

最後まで読んでいただきありがとうございました。
よろしかったら読者登録お願いします。
それでは。