ニューロチップ説 〜いよいよ半導の出番(2-2)
2章:ディープ・ニューラルネットワークのニューロチップへの実◆舛修隆所は!!
2章では、ニューラルネットワークの代表的な\術としてCNN(Qみ込みニューラルネットワーク)をまず紹介し、ディープ・ニューラルネットワークの容を解説した(ニューロチップ説〜いよいよ半導の出番(2-1)参照。この2章の2-2では、それをpけてCNNのモデルの進化を紹介し、半導チップに落とすための勘所を解説する。(セミコンポータル集室)
著v: 元半導理工学研|センター(STARC)/元東 瀬 啓
2.4 CNNのモデルの進化 (1) 〜アーキテクチャの変:より広く?! より深く 152層〜
2012Qにトロントj学が発表したAlex Netから、2015Q12月に開された機械学{分野における最高峰の国際会議と言われているNIPS(the Annual Conference on Neural Information Processing Systems 2015)にてMSRA(Microsoft Research Asia)が発表したResNet (Residual Net)までのいくつかの代表的なCNNのモデルに関して説する。モデルはりのない限り、国際的な画鞠Ъ韻離灰鵐撻謄ションであるILSVRC/Imagenetが主するベンチマークのkつのk般認識靆腓忙臆辰畦ソ┐包T果(1位、VGGNetは2位)をしたモデルを採り屬欧襦
2.4Iではそれらのアーキテクチャ(構成)を、2.5Iでは内陲旅柔要素を、そして2.6IではLSIへの実△砲いて_要な積和演Qv数とパラメータ数に`して説する。最後の2.6Iでモバイルへ搭載した際のケーススタディを加える。それらの理解を通してQモデルをLSIへ実△垢觝櫃隆所をつかむのがこの章の主旨である。
(1) 代表的CNNモデル
CNNをベースとして、画気稜Ъ盈┐慮屬鰆`指しいくつものモデルが提案されてきた。根fにあるトレンドはネットワークの層をよりHく積み_ねることによる向屬任△(なお、H層が~Wだというある度の基礎的な理解は進んでいる(参考@料14、171頁))。図9に代表的モデルの推,鮨す。1998Qに最初に発表されたCNNの育て(擇澆痢某討噺世錣譴討いLeCunの考案したLeNet6(番、倭愎堯参考@料24)を参考として加えた。AlexNet8、VGGNet19(参考@料25)、ResNet152(参考@料28)まである。層数が6層から152層まで\加(よりディープに)している。ワイドになっているモデルもある(GoogLeNet22:参考@料27)。シンガポール国立j学が2014Q始めに発表したNiN (Network in Network:参考@料26)のモデルも加えてある。
図9 CNNの代表的なモデル: CF型(共T型)からC型(Qみ込み層主型)へ
図9の見気亡悗靴討蓮基本要素からなるAlexNetをいて説する。ここでは、I-C-N-P-C-N- 中S -F-F-F-Sと並べられている。Iは入Image、CはConv層、Nは化関数(Normalization)、PはPooling層、FはT合層(Fully Connected layer)、そして最後のSは性化関数のSoftmaxである。なお、Conv層の直後にある性化関数は省SされているのでRTが要である。ReLU (Rectified Linear Unit)がAlexNet以TてのモデルのてのConv層の直後で使されている。
H層化による@度向屬亮{求の流れの中でネットワークの構成に2つの変化が現れた。2013Q〜2014Q初頭に発表されたシンガポール国立j学のNiN(Network in Network、参考@料26)が先鞭をつけた。なお、図9にしたNiNの構成は、CIFAR-10(別のベンチマーク)である。ここで、図の端で区分けしているように、来のT合層が複数層入っているものを、CF型(Qみ込み層+T合層共T型)と}び、NiN以TのQみ込み層に主がかれ、かつConv層がモジュール化しているモデルをC型(Qみ込み層主型)と}ぶこととする。C型は単純なConv層ではなく、モジュール化されていることが徴である。
(2) C型の徴(その1)・・・モジュールの導入
CF型からC型への1つ`の変化はQみ込み層(C)の構成が複雑になった点だ。来のVGGNetまでの単純にQみ込み層がC-CもしくはC-C-C-Cと繰り返される形式から、それぞれのT図をeちながらモジュール形式(図9のMlpconv/NiN、Inceptionモジュール/GoogLeNet、残渣ブロック/ResNet)にき換わり、そのモジュールOがネット内で繰り返される(詳細は、参考@料26〜29のQb文、参考@料14、もしくはPurduej学の教bでかつTeraDeep CTOのCulurciello教bのブログ:Neural Network Architectures(参考@料32)を参照)。
図10がQモジュールの詳細構]である。~S化した説になるが、Q量/パラメータ数の単純\加を抑えるテクニックを入れつつ徴表現を屬欧Mlpconvモジュール(NiN:Conv層の直後に単純なT合のCCCP層[Cascaded Cross Channel Parametric Pooling]をいくつかU入)、NiNのテクニックをDり込み加えてQみ込み層を並`にし認識率アップを`bんだモジュール(Inception Layer/GoogLeNet)、そして両vの良い所をD捨Iし、かつ直Tした100層以屬燃{を可Δ箸垢觧爪屮屮蹈奪(Residual block/ResNet)の3つのモジュールがQ々のモデルで提案された。残渣ブロックにより新しい念の残渣学{(Residual learning)が可Δ箸覆襦これらのモジュールによりH層化が可Δ箸覆蝓認識率も向屬垢襦詳細は次Iで述べる。
図10:Qモジュールの構]
(a) Mlpconv/NiN(参考@料26) Cは著v{記、(b) Inception Layer/GoogLeNet (参考@料27)
(c) Residual net/ResNet (参考@料28)。
(3) C型の徴(その2)・・・T合層が極度に軽くなる
2つ`の変化は、i段の徴抽出陲虜能端にH数の徴マップ間を単純に平均化するGAP (Global Average Pooing:プーリング) 層が導入され、さらに後段陲嶺T合層の数が3層から1層と少なくなっている点である。i段の徴抽出陲帽發徴表現が△錣辰燭海箸ら後段陲良蘆瓦軽くなったT果と考えられている。すなわち、T合層のクラス化の作業が、i段陲徴抽出の作業にEり込まれたT果、T合層が不要となったと考えられる。なお、GoogLeNet、ResNetの後段陲昧T合層が1層入っているが、これは転ヽ{を容易とするためとGoogLeNetの開発v、Szegedyは述べている (参考@料27、14)。
2.5 CNNのモデルの進化 (2) 〜構成要素の勘所: ポイントは5、6カ所〜
本Iでは、モデルの進化を構成要素の点から切り込む。表1にiIで述べたQモデルの数値(崔)、および構成要素のk覧をした。
(1) 演Qv数・パラメータ数、そしてエラー率
k般認識のエラー率に関しては、当初の発表に、その後の改良値も加え記した。ResNet34のエラー値「+1.5%」はResNet152に瓦垢訌柑\加分である。層数、パラメータ、演Q数は2.3Iで述べた桔,納QしたT果である。パラメータ数と演Q数はモデル笋糧表値および参考@料6、14のT果等と合っていることを確認している。ResNetのパラメータ数は現時点でo開されていない。NiN、GoogLeNet以Tで数値にjきな変化がある。詳しくは、次Iで述べる。
表1 CNNのQネットモデルの構成k覧
(2) 構成要素
表1の下段にQネットモデルの構成要素のk覧をした。iIに{い、CF型(Qみ込み層+T合層共T型)とC型(Qみ込み層主型)に分けている。
表の黄色い所が、Q構成要素が最初に導入・提案されたモデルをしている。推,鯑匹瀑DるとAlexNetでj枠のネット構成の骨子(Qみ込み層、性化関数 ReLU、Softmax、学{桔Dropout)がwまり、引きき認識率改をターゲットとしてVGGNetでConv層のH層化{求と小型フィルタへのシフトが行われ、その後NiN以T、Conv層内のモジュール化へと流れてきていると見ることができる。Q々の説は、表1のRに記載した。_複をさけ説は割愛する。
表2にCNN構成のための勘所をまとめた。性化関数、学{時・\法はC型/CF型に共通だが、それ以外はC型主でまとめた。j気蓮wまってきたと考えられる。複雑なのはConv層モジュールで、今後どのように変わるかRすべきである。
表2:CNNの構成の勘所 C型主 (性化関数、学{時の\法は、C/CF型共通)
(3) 小型フィルタへのシフトとモジュール化
当初のAlexで使されたj型の11x11に代わり3x3の小型フィルタが使われる理yに、演Qv数が少なくなる点がある。以下のように説ができる。9x9の覦茲Qみ込みをXける場合9x9のフィルタだと(9x9)x(9x9)=81x81vの演Qが要である。3x3のフィルタだと(3x3)x(3x3)の演Qを9x9の覦茲砲垢覆錣9v行わないといけない。総数は(3x3)x(3x3)x(3x3)=81x9v。では3x3のフィルタだと演Q量は1/9とる。よってまずフィルタを小さくしてそれから認識率の改を狙う。
らした分を何かで償しようとすると、ディープ化かワイド化か、もしくはマップ数を\やすかである(小型フィルタの他の効果もあることがi提)。NiN以TのConv層のモジュール化も根っこはフィルタの小サイズ化による影xへの官策と考えるとわかりやすい。その折衷案的なものがGoogLeNetで、1x1、3x3と5x5 (Version3では5x5は廃V)を並`に入れている。すなわち小型フィルタ化の影x解消のためにワイド化を{求したと考えると、ある度はT図をつかめる。k機ResNetは単純にDeep化を{求し、学{が収Jしないこと/認識率がK化することから残渣学{(residual learning)の新念を導入した。なお、Convモジュールの中に共通して使されている\法にBottleneck層がある。徴マップ数をO在に変化させる\法である。例えばRGBの3色で分けていたが、より中間色の8色に徴マップを分ける。またその逆をやる、といったイメージである。 1x1のフィルタはそのマップ数調D/D合DりのためにHされている。
2.6 CNNのモデルの進化 (3) 〜演Q数とパラ-メータ数:34層位で良いのではないか⁈〜
本Iでは、Qモデルを、LSIの実△膨擾Tするパラメータと演Q数の菘世ら切り込む。
(1) CF型とC型の向
図11にiIの表1でしたQネットワークモデルの層数(9層から152層)に瓦垢襦ILSVRC/ImageNetでのエラー率(棒グラフと曲線:軸)、およびQモデルのパラメータ数(点線)と演Qv数(実線:ニューラルネットワークの演Qv数はほとんどが積和演Q数/MAC数であり、またMAC数はネットワークの層と層をつなぐ接数と等しい)の推,鬟廛蹈奪箸靴拭軸、左軸および下辺の層数を含めて歓軸となっている。AlexNet8とVGGNet19は掘CF型)で、またGoogLeNet22/ResNet152(C型)はEで表記した。エラー率に参考値としてResNet34とResNet50の値を加えた。VGGNetのVersion4で、3.08%の報告があるが、プロットしていない(参考@料30)。
図11 演Q数とパラメータの関係
(2) CF型では限c
AlexNetの8層からVGGNetの19層に\加すると、エラー率は16.4%から7.3%へと改された。しかし、パラメータ数は6200万個から1.44億個と2倍\、演Q数は11.4億v数から196億vと約20倍峺した。これ以屬硫を狙うとパラメータ数とに演Q数の\加が当予[される。また学{が収Jしないと言われている。さらに図12にすようにH層にすると(20層から56層に\やすと)エラー率がK化するというデータが報告されている(参考@料28/29:MSRAのHeのb文)。
図12 H層化によるエラー率\j(CIFAR-10)参考@料28/29:
横軸 学{v数、e軸 エラー率(%) 左図 来型(ResNetのShort Cut無)は劣化している。
図 ResNetは改されている。
(3) C型でブレークスルー
その壁をブレークし(壁と認識するiに解されてしまったようだ)よりH層化を可Δ箸靴織皀献紂璽/モデルの代表が、iIで説したMlpconv/NiN (Network in Network) Inception Layer/GoogLeNetと、さらにResidual Block/ResNetである。なお、GoogLeNetの層数は22層である。実際にはワイド(2あるいは4並`の霾もあり)になっていることからConv層をてカウントに入れると40層(図9でカウント)となる。ResNetはResidual Blockの導入により152層でも学{が可Δ箸覆辰拭エラー率は、GoogLeNetは6.67% (後に、4.82%/BN-V2、3.58%/V3、3.08%/V4とVersion Up)、ResNetは3.57%と共に人間のξ(5.1%:少しpしい基だが)を越えるT果をき出した。
C型のもうkつ_要な点は、図11の20層当たりでのVGGNet19とGoogLeNet22の数値の差である。パラメータ数が1.44億個から701万個に、演Qv数は196億vから15億vとQ々k桁以(20分の1)改されている点である。 16bit演Qとすると、GoogLeNetだと、112Mbit、ResNet34だと352Mbitのメモリが要となる。余裕をもって混載するレベルではないが、かなり扱いやすいレベルのメモリ量のJ疇に入ったと考えuる。
(4) C型は層数に比例して\加
~単な定量的な説をする。図11は歓凜哀薀佞任△襦パラメータ、演Q数共に層数にほぼ比例している。以下の関係をeつ。
- 層数に比例 演Q数 1億v/層、パラメータ数 50万個/層
- パラメータ数/演Q数の比 1/200〜1/300度 (入が224x224、クラス1000の場合)
パラメータ数が少ないのは、共通のパラメータを使している(_み共~:weight sharing:参考@料6)からで、その比(繰り返し使われるv数)はQ層の出のサイズの平均値にZいはず。両モデルともQ層の出のユニット数は14x14=256をi後にしたサイズである。この200〜300の値に瓦垢觚桐的な説(理解)は現時点ではできない(たぶん、入とクラス数と関連する)。
(5) H層化の{求 1202層まで しかし!
MSRAのHeらはCIFAR-10というk般認識のベンチマークでResNetの1202層までトライした(参考@料28)。学{は可Δ世7.93%とエラー率はK化した。110層が試した中ではベスト6.43%と報告されている。劣化原因に関しては、CIFAR-10の模が小さい(32x32ピクセルRGB 、10クラス)ことから、坡{/堙合(Overfitting)がこっているとの推Rが報告されている。驚きなのは小さな32x32クラスの入画気任盒砲瓩襪110層も要な点である(参考@料28、7頁)。
まとめると、来の「Qみ込み層+T合層型:CF型」からモジュール化した「Qみ込み層主型:C型」に,蝓100層以屬列H層での学{が可Δ箸覆辰拭そのT果、人間のξをえた3%(ILSVRC/Imagenetのベンチマーク)のエラー率に到達した。さらにパラメータ数(メモリ量)及び演Q数(演Q時間、高]性)もk桁(以屐砲侶旒が実現された。アプリケーションとのエラー容J囲との見合いだが、34層でもかなり良いレベルである。エッジ応で実△}に届くところまで来たと考えuる。
(6) R`は、GoogLeNetと ResNetでどちらが良いのか?
MSRAのHeらの提案のResNetの残渣学{という斬新なアイディアに瓦垢h価は高い。またResNetは昨QQ|のコンペティションで最高値を耀uしている。その中で認識よりM易度が高い検瑤Faster R-CNNのアルゴリズムをResNet屬房△掘検率で最高値をき出している点は筆すべきである。なお、このアルゴリズムのオリジナルもMSRAのHeのグループの発案である。最Z、別機関がRecurrent NNにResNet適した、などHくのt開の報告もある(参考@料29)。余iであるが、MSRAのKaming Heは5月MSRAを職し、今月7月にFacebookに転職した。別に、検瑤R-CNNおよびFast R-CNNで著@なR. Girshickも昨Q11月にMSからFacebookに転職した。今後、k層Facebook AI research (FAIR) の所長でCNNの育て(擇澆痢砲凌討LeCunさんの秣が荒くなると予[される。またFacebook(ResNet??)とGoogle(GoogLeNet)のkh]ちがk層しくなると予[される?!
k機Google笋2016Q2月に”Inception-V4, Inception-ResNet and the Impact of Residual Connections on Learning”なるタイトルのb文でGoogLeNet V4(version4:参考@料30)を発表している。GoogLeNetにResidual LearningをDり入れたモデルである。認識率(エラー率)は、3.08%を達成している。ただし、この発表に瓦靴胴暑]が複雑すぎるというT見もある。
かなりまとまりつつあるが、しばらくRが要と考える。
参考@料 (1〜23まではiv以i)
24. Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning applied to document recognition”, Proceedings of the IEEE, 86(11):2278–2324, November 1998, LeNet.
25. Karen Simonyan and Andrew Zisserman, “Very Deep Convolutional Networks for large-Scale Image Recognition”, in International Conference on Learning Representations (ICLR2015), 20150507. VGGNet
26. Min Lin, Qiang Chen, Shuicheng Yan, “Network In Network”, 2014Q3月4日(Ver3). NiN.
27. Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, “Going Deeper with Convolutions”, 2014Q9月17日. GoogLeNet V1.
28. Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, “Deep Residual Learning for Image Recognition”, 2015Q12月10日. ResNet.
29. Kaming He, “Deep Residual Networks, Deep Learning Gets Way Deeper”, ICML 2016 tutorial, 0160619, 最新のResNet情報
30. Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, “Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning”, 2016Q2月23日. GoogLeNet V4.
31. Sergey Ioffe, Christian Szegedy, “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, 2015Q3月2日(V3). GoogLeNet V2. w/BN (Batch Normalizationのb文)
32. Eugenio Culurciello, “Neural Network Architectures”, ブログ, 2016Q6月4日, Neural Network Architectureのサマリ.