覚え書きブログ

Deep Learning覚え書き(概要編)

Deep Learningは、日本語では深層学習と呼ばれている機械学習の研究分野の一つで、データを高次に抽象化するための多階層なモデルを学習する技術の総称である。

機械学習の枠組みには、大きく分けて教師あり学習、教師なし学習、半教師あり学習および強化学習がある。
f:id:hirotaka_hachiya:20160321173637p:plain
(引用元強くなるロボティック・ゲームプレイヤーの作り方 実践で学ぶ教科学習

これらの機械学習の方法は、入力(質問)として数値ベクトルを前提にしています。そのため、機械学習の枠組みを、画像認識などに応用するためには、それぞれの応用に合わせてデータをベクトルに変換する必要がある。このデータからベクトルへの変換のことを特徴抽出と呼ぶ。この特徴抽出は、それぞれの応用に関する専門的な知識が必要なため、画像認識などの応用研究者が活躍する分野だった。例えば、画像分類では、Fisher vectorORBなど多くの特徴抽出方法が提案されてきた。

近年、Deep Learningの研究が進むにつれて、機械学習の活躍の場は、この特徴抽出まで広がってきた。Deep Learningでは教師あり学習、教師なし学習、半教師あり学習及び強化学習の枠組みを拡張し、それぞれの目的に応じて、画像などのデータを抽象化されたベクトルに変換する階層的なモデルを学習している。教師あり学習では、Deep Convolutional Neural NetworkやDeep Auto-encoder、教師なし学習ではDeep Belief NetworkやDeep Boltzmann Machine、強化学習では、Deep Q-learningなどが代表的な方法として知られている。この特徴量を自動的に抽出するDeep Learningに対比して、これまでの特徴抽出方法は、ハンドクラフト特徴量と呼ばれている。
f:id:hirotaka_hachiya:20160321181059p:plain

Deep Learningが脚光を集め始めるきっかけとなったのは、2006年にトロント大学のGeoffrey E. Hinton先生などによりScienceで発表された論文「Reducing the Dimensionality of Data with Neural Networks」である。本論文では、多階層のニューラルネットワークのパラメータを、教師なし学習のDeep Belief Networkを用いて初期化した後に、教師あり学習のBack propagationにより再学習するというものだった。このパラメータの初期化をプレトレーニング(Pre-training)、再学習をファインチューニング(Fine-tuning)と呼ぶ。

以下は、Autooencoderおよび画像分類のプレトレーニングに、Deep Belief Networkを用いた例である。

【Deep Belief NetworkをDeep Auto-encoderのプレトレーニングに用いる場合の例】
f:id:hirotaka_hachiya:20160321181246p:plain

【Deep Belief Networkを画像分類のプレトレーニングに用いる場合の例】
f:id:hirotaka_hachiya:20160321181304p:plain

このプレトレーニングは、多階層のニューラルネットワークの教師あり学習において、低階層のパラメータが更新されないgradient vanishing問題を回避する方法として話題を集めた。具体的には、教師あり学習のBack propagationでは、ニューラルネットワークの出力と教師情報の出力の誤差を最小化するように、勾配法により各層のパラメータを更新する。しかしながら、下図のように、各階層にてシグモイド関数を用いて、非線形な変換を繰り返すニューラルネットー枠においては、低階層のパラメータの勾配は、出力までにアクティベーション関数のシグモイド関数が何度もかかっているため、ほぼ0になってしまう。そのため、勾配法では低階層のパラメータはほとんど更新されない。つまり、勾配が消滅してしまうため、gradient vanishing問題と呼ばれている。

ニューラルネットワークの各階層の各ニューロンの処理】
f:id:hirotaka_hachiya:20160321181415p:plain

【gradient vanishing問題のイメージ】
シグモイド関数が1重(single)、2重(double)、および3重(triple)とかかる度に勾配が小さくなるのがわかる。
f:id:hirotaka_hachiya:20160321181453p:plain

そして、本論文にて、Hintonらは、Back propagationにより学習できない低階層のパラメータを、教師なし学習のプレトレーニングにより学習することにより、このgradient vanishing問題を回避している。

しかし、近年、ImageNetの大規模画像分類Large Faces in the Wildの顔認識およびUCF101の行動認識にて、Deep Learningがこれまで主流だったハンドメード特徴量を凌駕し人間と同程度の精度を出して話題になっているのは、教師あり学習のDeep Convolutional Neural Network(Deep CNN)であり、残念ながら教師なし学習と教師あり学習の組み合わせによるプレトレーニングとファインチューニングは使われていない。具体的には、ImageNetは、毎年開催されるコンペティションで、画像を1,000クラスに分類する分類タスクと、画像上の物体の場所を特定し200クラスに分類する検出タスクとの2つのタスクがある。下図のように、2012年のImageNetの分類タスクにおいて、トロント大学HintonのグループによるDeep CNNが、それまで全盛であったハンドメード特徴量に10%以上の大差をつけて優勝した。そして、2013年以降は、上位のほとんどがDeep CNN系の方法となる状況となっている。
【2012年の分類タスクの上位の結果】
f:id:hirotaka_hachiya:20160321181752p:plain

【Imagenetの画像の例と、分類タスクの誤差率の推移】
f:id:hirotaka_hachiya:20160321181840p:plain
(引用元:http://www.enlitic.com/tech.html

このHintonのグループのDeep CNNは、筆頭著者の名前をとってAlexNetと呼ばれている。AlexNetでは、Yann LeCunによって1998年に提案されたLeNet5を多階層に拡張し、さらに、gradient vanishingの問題を解決するために、アクティベーション関数としてシグモイド関数の代わりにRectified Linear Unit(ReLU)を用いてるのが特徴である。

【LeNet5の構造】
f:id:hirotaka_hachiya:20160321181945p:plain
(引用元:Gradient-Based Learning Applied to Document Recognition, Y. LeCun et al., 1998

【AlexNetの構造】
f:id:hirotaka_hachiya:20160321182000p:plain
(引用元:ImageNet Classification with Deep Convolutional Neural Networks, A. Krizhevsky et al., NIPS2012