20151016 ttamaki

Deep Learning 玉城 貴也 廣安 知之 2015 年 4 月 25 日 IS Report No. 2015042509 Report
Medical Information System Laboratory Abstract
Deep Learning とは脳の神経ネットワークをモデル化したニューラルネットワークを何層も重ねるこ
とで構成された機械学習アルゴリズムの総称である.従来では専門家によって行われていた生データ
からの特徴量抽出を自動的に行うことが可能である.さらに,識別の精度は極めて高く,その優れた
汎化能力から音声認識や画像認識など,様々な分野への応用が大いに期待される.
キーワード: Deep Learning, 機械学習
目次
第 1 章 はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
第 2 章 ニューラルネットワーク . . . . . . . . . . . . . . . . . . . . . .
3
2.1
基本構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
ニューラルネットワークの学習
. . . . . . . . . . . . . . . . . . .
5
第 3 章 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.1
Deep Autoencoder . . . . . . . . . . . . . . . . . . . . . . . .
6
3.1.1
Autoencoder . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.1.2
Pretraining . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.1.3
Finetuning. . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Convolutional Neural Network(CNN) . . . . . . . . . . . . . . . . .
8
3.2
3.2.1
畳み込み層
. . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2.2
プーリング層 . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2.3
CNN が解決した問題
. . . . . . . . . . . . . . . . . . . . . .
9
第 4 章 Deep Learning の有用性 . . . . . . . . . . . . . . . . . . . . . .
10
第 5 章 Deep Learning の問題点と今後の展望 . . . . . . . . . . . . . . . . .
11
第 6 章 まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
第 1 章 はじめに
人間と同様の学習をコンピュータに行わせることを目的とする機械学習において,人間が認識する抽
象度の高い特徴,つまり多様な入力の組み合わせによる複雑な意味表現の学習は非常に困難であり,
課題の 1 つであった.
近年,そのような状況の中で Deep Learning が注目を集めている.Deep Learning とは深い層を重
ねることで,特徴量を抽出し,さらに汎化能力を上げるように工夫したニューラルネットワークを用
いた機械学習アルゴリズムのことである.従来の機械学習ではできなかった特徴量抽出を可能にし,
困難とされた複雑な意味表現の学習に対する突破口を与えている.2006 年にトロント大学の Hinton
らによって教師無し学習によるニューラルネットワークの開発に成功して以来,様々な学会や企業か
ら注目を集めている.2011 年には音声認識のタスクで,従来の手法に比べて識別率が 10%も向上し,
2012 年には ILSVRC(ImageNet Large Scale Visual Recognition Competition) という一般物体認識
のコンテストで識別率が約 84%という好成績で 2 位以下を 10%以上引き離し,圧勝している 1)
2)
.
本稿では,Deep Learning の基となるニューラルネットワーク,Deep Learning の具体的な説明とそ
の有用性,そして Deep Learning の問題点と今後の展望を述べる.
2
第 2 章 ニューラルネットワーク
人間と同様の学習をコンピュータに行わせるために,人間の脳の神経細胞 (ニューロン) のネットワー
クをモデル化することで実現しようするアルゴリズムが考案された.それがニューラルネットワーク
である.ニューラルネットワークは与えられたデータを元に識別を行い,期待する出力信号 (教師信
号) と実際の出力信号との差を縮めることで学習する.そうすることで,未知のデータが与えられた
ときに正しく識別を行うことができる.本節では,ニューラルネットワークの構造とその学習方法に
ついて述べる.
2.1
基本構造
脳の神経ネットワークをモデル化するためには,その基本要素である神経細胞 (ニューロン) の構
造を理解する必要がある.ニューロンは基本構造として,信号を受ける樹状突起,それを統合する細
胞体,出力を送る軸索が存在する (Fig. 2.1(a)).そして,入力信号によって膜電位が閾値を超えた時
のみ,シナプスを介すことで他のニューロンに信号を伝達させている.このニューロンの基本構造を
Fig. 2.1(b) のようにモデル化する.このニューロンのモデルはユニットと呼ばれ,シナプスの結合の
強さを重み W ,各ニューロンが持つ閾値をバイアス b として表現する. このニューロンを模したユ
W i1
b1
W 13
಍ཝ৬
W j1
b3
W j2
३ॼউ५
b2
ກด
W 23
W k2
౴૾఍କ
(a) ニューロンの構造
(b) ニューロンモデル (ユニット)
Fig. 2.1 ニューロンの構造とモデル (自作)
ニットを層上に並べ,互いに結合した有向グラフ (同じ層間は結合しない) を用いることで,ニュー
ラルネットワークを構築する (Fig. 2.2).
3
2.1 基本構造
第 2 章 ニューラルネットワーク
োৡपৌૢघॊ
োৡಽ hk -1 র৑ಽ h k লৡಽ hk+1 ॡছ५दँॊન૨
োৡਦಀ
i
0
0.04
0
ෙ୷
1
……
……
……
wij
0.02
0.80
……
……
j
ઇపਦಀ
0.05
0
ਦಀभ૴ो
Fig. 2.2 ニューラルネットワークの構造 (自作)
図において,データは入力層に入力され,順番に中間層,出力層へと,信号が伝播される.その際,
隣接の層間の計算は次のようになる.図の有向グラフ構造に従い,第 k 層の i 番目のユニットの入力
は,第 k −1 層のユニットからの出力を h
k−1
bi k +
= [h1 k−1 ,h2 k−1 ,…] として
∑
wij k hj k−1
(2.1)
j
のように計算される. bi k は i 番目のユニットが持つバイアスであり,wij k は第 k 層の i 番目のユニッ
T
トと第 k − 1 層の j 番目のユニット間の結合が持つ重みである.ここで,wi k = [wi1 k ,wi2 k ,…] と
定義し,活性化関数 f を用いると,出力 hi k は次のように与えられる.
hi k = f (bi k + wi kT hk−1 )
(2.2)
活性化関数には連続関数であり,ステップ関数に近似可能なシグモイド関数が最も一般的に用いられ
ている (式 (2.3),Fig. 2.3).
f (x) =
1
1 + exp(−x)
Fig. 2.3 シグモイド関数 (自作)
4
(2.3)
2.2 ニューラルネットワークの学習
第 2 章 ニューラルネットワーク
さらに,式 (2.4) のように正規化することで,出力される値のなかで最大のものを与えるインデッ
クスが,与えられた未知データのクラスとなる.
exp(bi k + wi kT hk−1 )
p(x) = ∑
exp(bi k + wi kT hk−1 )
2.2
(2.4)
ニューラルネットワークの学習
ニューラルネットワークの学習とはパラメータ (すべての重みとバイアス) を調節することにより,
期待する出力信号 (教師信号) と実際の出力との差を縮めることである.この学習によりニューラル
ネットワークは,より正確に識別を行うことができる.与えれた教師信号と実際の出力の差の尺度と
して平均二乗誤差や交差エントロピーなどが用いられる.この尺度を C とすると,勾配降下法を用
いて C が最も小さくなる方向に,繰り返し重み wij を wij ← wij +∆wij ,バイアスを bk ← bk + ∆bk
のように更新する.このとき∆wij ,
∆bk は
∆wij = − ϵ
∂C
∂wij
(2.5)
∆bk = − ϵ
∂C
∂bk
(2.6)
のように与られ, ϵ は更新のステップ幅であり,学習係数と呼ばれる.この学習係数が大き過ぎると
パラメータの勾配が発散し,小さ過ぎると学習の進みは遅くなる.さらに,出力層から遠い層の重み
に関する勾配を求めるため,微分の連鎖法則に従い,誤差逆伝播法を用いて誤差を出力層から遡って
順番に計算することでニューラルネットワークは学習する.しかし,パラメータ (重みとバイアス) の
初期値をランダムに設定した場合,ニューラルネットワークは層が多層になるにつれて勾配が拡散し
てしまい,学習はうまくできないという問題がある 3)
5
4)
.
第 3 章 Deep Learning
前節で述べたとおり,従来のニューラルネットワークでは多層での学習は非常に困難であった.その多
層の学習を可能にしたのが Deep Learning である.しかし, Deep Learning はある特定の手法そのも
のを指しているわけではない.Deep Learning とは汎化能力の高い,ニューラルネットワークを基にし
た多層の機械学習アルゴリズムの総称であり,畳み込みを用いた Convolutional Neural Network,教
師無しのプレトレーニングを行う Deep Autoencoder,生成モデルに基づく手法を用いた Deep Belief
Network など様々な種類が存在する.本稿ではその中でも教師無し学習を行う Deep Autoencoder と,
教師あり学習を行い,画像認識で主に用いられている Convolutional Neural Network について述べる.
3.1
Deep Autoencoder
ランダムに初期値をセットした場合,多層ニューラルネットワークの誤差逆伝播法による学習はう
まくいかない.そこで Deep Autoencoder では,Fig. 3.1 のように,層ごとに pretraining と呼ばれる
教師無し学習を行い,そこで得たネットワークのパラメータを初期値として,ネットワーク全体の微
調整 (finetuning) を行う.このパラメータの調整によって,ランダムな初期値ではうまくできなかっ
た多層での学習を正しく行うことができる.そして次元圧縮を繰り返すことで特徴量を自動的に抽出
することができる 4) .
Autoencoder
Wd
…
…
…
copy
W3
…
…
W3
W3
…
…
W2
W2
copy
W2
…
W1
pretraining
NN
W4
…
W1
W1
教師無し
教師あり
finetuning
Fig. 3.1 Deep Autoencoder の処理の流れ (参考文献 4) より自作)
3.1.1
Autoencoder
Deep Autoencoder において pretraining を行う際には,Autoencoder と呼ばれる教師無し学習が
用いられる.入力層 (x) と出力層 (h) の 2 層からなるニューラルネットワークを考え,順方向の伝播
h = f (Wx + b)
6
(3.1)
第 3 章 Deep Learning
3.1Deep Autoencoder
を,入力 x から符号 h を得る encoder と見なす.これと逆向きの同様の計算
′
′
′
y = f (W h + b )
(3.2)
を仮想的に考え,これを decoder と見なす.Autoencoder とは,与えられた入力 x を encoder で符号
化した h を,今度は decoder で符号化し h を再現する y を得た時,y が元の x に近くなるようにパ
′
′
ラメータ W,b,W および b を誤差逆伝播法により決定する方法である 4) .
3.1.2
Pretraining
3.1 節で述べたように,pretraining によってパラメータの初期値を正しく設定することができる.
Fig. 3.1 における Autoencoder を用いた pretraining の手順は次のようになる 4) .
step.1 入力層を含む最初の 2 層を,Autoencoder を用いて訓練する.
step.2 訓練した層の内,上の層の状態を次の 2 層への入力と見なし,同じく Autoencoder を
用いて 2 層のみ訓練する.
step.3 step.2 を層の数だけ繰り返す.
3.1.3
Finetuning
finetuning は pretraining で設定したパラメータの微調整を行う.この finetuning には Fig. 3.1 に示
すような 2 通りの方法がある.1 つは,最上位層のさらに上に,最上位層の出力を入力とするニュー
ラルネットワークを接続し,全体を 1 つのニューラルネットワークと見なし,誤差逆伝播法により教
師あり学習を行う.もう 1 つは,全体を大きな Autoencoder と見なし,教師無しでパラメータの微調
整を行う. その場合,最下位層への入力 x に対し,ここから順方向の伝播によって最上位のユニット
の状態 hk を計算し,逆にここから x を再現した y を求めその差が小さくなるように誤差逆伝播法に
より学習を行うことになる 4) .
7
第 3 章 Deep Learning
3.2Convolutional Neural Network(CNN)
3.2
Convolutional Neural Network(CNN)
脳の初期視覚野 (V1) には特定の傾きに選択的に反応する単純細胞 (simple cells) と,同様の選択性
を持ちつつ,多少位置をずらしても変わらず反応する複雑細胞 (complex cells) が存在する.CNN は
この単純細胞と複雑細胞の働きをモデルとして,単純細胞に対応する畳み込みと,複雑細胞に対応す
るプーリングを行い,誤差逆伝播法により学習を行う.これにより,特徴量を自動抽出し,正しい識
別を行うことができる.Fig. 3.2 に CNN の処理の概要を示す.まず,入力画像に対して重みフィル
タを畳み込み処理する.この畳み込み処理の出力は特徴マップと呼ばれるマップ上に出力され,出力
された特徴マップを入力としてプーリング処理を行う. プーリング処理により新たな特徴マップが
生成される.この動作を繰り返すことにより,特徴量を自動生成できる.そして,最後に得られた特
徴マップを全結合型のニューラルネットワークなどの識別部に入力し,識別を行う.
੎ाইॕঝॱ
႙ा੢ाಽ উ‫ش‬জথॢಽ
োৡपৌૢघॊ
ॡছ५दँॊન૨
৸੥়ಽ
ઇపਦಀ
…
0.94 (Aである確率)
A
…
…
0.02 (Bである確率)
ෙ୷
0
…
…
…
…
…
…
…
…
0.01 (Zである確率)
1
0
…
્ඉঐॵউ
Fig. 3.2 Convolutional Neural Network(CNN) の処理の流れ (自作)
3.2.1
畳み込み層
単純細胞の性質を入力に対して重みとなるフィルタを畳み込み処理することによって再現する.そ
して,この重みフィルタはニューラルネットワークの重みと同様に誤差逆伝搬法による勾配降下法に
よって学習される.画素数 nx × nx の画像 x に対する,画素数 nw × nw のフィルタ w の畳み込みを
考える.この畳み込みを h = x ∗ w とすると,出力 h のサイズ nh は式 (3.3) のようになる.ただし,
実際には画像の周辺部で適当な処理を行い,nh = nx とする場合が多い.
nh ≡ nx − nw + 1
(3.3)
例として,文字認識で「A」という文字を認識させたい場合を考える.入力画像は 32 × 32 の画素数
を持ち,畳み込みフィルタを 5 × 5 の大きさのものを使用するものとする.Fig. 3.3 のように,フィ
ルタと入力画像を畳み込むことで,フィルタを通った値だけが特徴マップに特徴として抽出される 4)
.
3.2.2
プーリング層
プーリングとは,抽出特徴から認識に余分な情報を捨て,認識に必要な情報を保った表現に変換す
ることである.CNN でよく使われているのは max pooling である.max pooling とはフィルタ出力
8
第 3 章 Deep Learning
3.2Convolutional Neural Network(CNN)
Fig. 3.3 畳み込み処理の例 (参考文献 4) より引用)
′
hj の小領域 Pi (i = 1,2,…) の中で最大値を取り出す処理のことで,プーリング後の出力 hi は 式
(3.4) のように与えられる.
′
hi = maxhj
j∈Pi
(3.4)
例として,Fig. 3.3 で行った畳み込み処理の後の特徴マップから 4 × 4 の領域をとり,maxpooling を
行う.すると, 4 × 4 の領域の中で最大値のみを取り出し,畳み込み後の画素数を 1/4 に,つまり
8 × 8 のサイズに落とすことができる (Fig. 3.4).これによって,畳み込み処理の際に位置が多少ずれ
てしまっても,同じ表現に変換することができる.従って,複雑細胞の性質がプーリングによって実
現されている 4) .
Fig. 3.4 プーリング処理の例 (参考文献 4) より引用)
3.2.3
CNN が解決した問題
CNN は重みを共有し,従来のニューラルネットワークと比べ,ネットワークの結合が疎であるた
め,多層になっても逆伝搬する勾配が拡散せず,誤差を出力層から入力層に正しく伝えることができ
る.これにより,ニューラルネットワークでは不可能であった多層での識別を可能にしている.さら
に,畳み込みとプーリング処理を複数回行うことで,特徴量を自動抽出することができる 4) .
9
第 4 章 Deep Learning の有用性
Deep Learning は従来の機械学習アルゴリズムと決定的に違う点がある.それは,今まで専門家に
よって行われてきた特徴量の抽出も習得できることである.生データを入力して学習させると,デー
タから自動的に素性を作り,より抽象的な表現を習得することが出来る.これは,機械学習で最も難
しい問題とされる表現の学習に対する突破口を与えている.さらに,冒頭でも述べたが,画像認識,
音声認識など分野の様々なコンテストで Deep Learning を用いたチームが優勝し,その優れた性能が
示された.2014 年には Facebook によって開発された顔認証技術である「Deep Face」が 4030 人の
顔写真 440 万枚を用いた大規模学習によって認識率が 97.53 %と,ほぼ人間並の人物識別性能を達成
した 5) .2015 年 1 月には Audi と Nvidia の共同開発による自動車「Jack」が Deep Learning を用い
た技術によって,カメラで捉えた物体を識別し,シリコンバレーからラスベガスまで完全自動走行を
行うなど,各企業が続々と Deep Learning を取り入れている 6)
10
7)
.
第 5 章 Deep Learning の問題点と今後の展望
万能かと思われる Deep Learning であるが,実は問題点もある. それは中間層とその中のユニットの
数,学習係数の決定までは自動で行えないことだ. これらのパラメータは使用するデータ及びタスク
に強く依存するため,層やユニットの数に対してデータがより単純であったり複雑すぎる場合,アル
ゴリズムがその特徴を掴みきれずに悪い性能を出してしまう.今後この問題が解決されれば,人間と
同様にあらゆる入力に対して学習を行うことが可能になり,データ,タスクによって分けられていた
アルゴリズムを Deep Learning で一貫して行うことができるようになるということが期待できる.
11
第 6 章 まとめ
本稿では Deep Learning の基となるニューラルネットワークの概要とその問題点,さらにその問題点
を改善した Deep Learning の一種である Deep Autoencoder と Convolutional Neural Network のそ
れぞれの特徴を述べ,Deep Learning の具体的な応用例について触れた.Deep Learning の精度の高
い多層での識別によって,従来の機械学習アルゴリズムでは成し得なかった特徴量抽出を可能にし,
より抽象度の高い表現の獲得が可能になった.その汎用性は高く,様々な企業が既に取り入れ始めて
いる.しかし,まだ数々パラメータの決定が自動化できていないという問題点が残っており,更なる
発展が期待される.
12
参考文献
1) F. Seide, G. Li and D. Yu, “Conversational speech transcription using context-dependent deep
neural networks,” INTERSPEECH2011, pp.437–440, 2011.
2) ILSVRC2012, “Image net large scale visual recognition challenge 2012,” http://www.
image-net.org/challenges/LSVRC/2012/results.html, 閲覧日:2015 年 4 月 18 日.
3) 銅谷賢治, 計算神経科学への招待 脳の学習機構の理解を目指して, サイエンス社, 2007.
4) 八木康史, 斉藤英雄, コンピュータビジョン最先端ガイド 6, アドコム・メディア株式会社, 2013.
5) Y. Taigman, M. Yang, M. Ranzato and L. Wolf, “Deepface: Closing the gap to human-level
performance in face verification,” Computer Vison Papers, pp.1–8, 2014.
6) Nvidia, “How nvidia drive px will help automakers slim down self-driving cars — nvidia blog,”
http://blogs.nvidia.com/blog/2015/03/17/nvidia-drive-px, 閲覧日:2015 年 4 月 18 日.
7) Audi,
“Audi piloted driving,”
http://www.audi.com/com/brand/en/vorsprung_durch_
technik/content/2014/10/piloted-driving.html, 閲覧日:2015 年 4 月 18 日.
13