「2019年前半に読むべきディープラーニング論文 19選」 Deep Residual Learning for Image Recognition

「2019年前半に読むべきディープラーニング論文 19選」 Deep Residual Learning for Image Recognition

 

はじめに

前回は2019年前半に読むべきディープラーニングの論文一覧をご紹介いたしましたが、今回からは、1論文ずつ紹介をして参ります。第一回は、DL講座の復習も兼ねて、モダンなCNNの主要技術であるResNetの原論文を紹介します。

論文タイトル:Deep Residual Learning for Image Recognition
著者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
公開: https://arxiv.org/abs/1512.03385

論文の概要

本論文の概要は以下の通りです。

●従来のCNNでは、深くしていくと勾配消失(Gradient vanishing, degradation)により学習がうまく進まなかった
  ・ニューラルネットワークでは出力層で計算した誤差を誤差逆伝播法で入力層まで戻していき学習する
  ・層が深すぎる(例:20層~)と逆伝播の際、誤差が入力層まで伝わらなかった
●Residual blockと呼ばれるSkip connectionを提案、勾配消失を回避
  ・学習したい関数との”差”(residual)を学習させることで勾配消失を回避している
●実質的に無限に層を増やしていくことが可能になった
  ・モダンなCNNアーキテクチャの元祖になった重要論文
  ・ただし、層を増やすと過学習の問題が発生する
●ILSVRC’15で優勝
  ・主要なCNNアーキテクチャの層数
	 ○ILSVRC’12: AlexNet8層
	 ○ILSVRC’14: VGG19層
	 ○ILSVRC’14: GoogLeNet22層
	 ○ILSVRC’15: ResNet152層

Residual blockについて

Residual blockのコンセプト(何故残差にするといいのか?)は以下だと読み取れます。

●単純な学習レイヤ(Weighted layer; 畳み込みなど)だけのPlain blockに対し、恒等写像でバイパスした値を足すという操作を加えたもの
●学習レイヤの出力を𝐹(𝑥)とするとResidulal blockは𝑥 + 𝐹(𝑥)
  ・𝑯(𝒙)そのものではなく入力𝒙との残差𝑭(𝒙)を学習
●学習したい対応𝐻(𝑥)が𝑥に近いならば𝐹は零写像になる
  ・Fが学習していなくても恒等写像の性能は持つため、層を深くした際に、訓練誤差が大きくなるということは起きなくなるはず
●このバイパスコネクションをSkip-connectionまたはResidual connectionという
●計算グラフが分岐するだけなので誤差逆伝播の計算も可能

 

Residual blockのケーススタディ

論文内ではケーススタディとして、Residual connectionの方法を変えた場合や、構成を変えた場合の検討がされています。

Residual connectionの実現方法

●Convolutionの結果、特徴マップの次元数が変わることがある
  ・特徴マップの大きさが変わる(Stride, kernel sizeの問題)
  ・チャネルが変わる(Conv kernelの数の問題)
●Zero paddingをする場合や、アフィン変換する場合が検討されている。
  ・精度にあまり違いはなく、どれでもよいという結果

 

Bottleneck block

●Residual blockの最もプレーンな構成は3x3のCNNを2段重ねたもの (VGG like)
  ・広さ方向より深さ方向に拡張したほうが性能はいいはず!
●学習コスト(パラメータ数)はあまり変わらない
  ・Plain Residual block (バイアス除く) (64 × 3 × 3 × 64) + (64 × 3 × 3 × 64) = 73728 [個]
  ・Bottleneck block (256 × 12 × 64) + 64 × 32 × 64 + 64 × 12 × 256 = 69632[個]
●実験的に性能はBottleneckのほうが上

 

Residual blockの効果

●Residual connectionを持たないモデル(Plain)とImageNetの性能を比較
  ・ResNetが有意に上回る
  ・層が深くなると性能差が顕著=> 勾配消失を回避できている

 

●ILSVRCのSotAモデルとの性能比較でもResNet-152layerが Top-1, Top-5 スコアの全てで勝利
  ・Residual moduleの有効性をアピール

 

●CIFAR-10で層数に関する検証
  ・Plainでは20layer > 56 layer
  ・ResNetにすると110layerでも うまく学習可能になる

 

 

●CIFAR-10を1202層のResNetで学習してもなんの問題もなく学習可能
  ・ただし汎化性能は110層より低い
  ・train error ≃ 0になっているので過学習と見られる

 

 

おわりに

ResNetの発表により、それまでの深さ(20層程度)とは比較にならない層の学習が可能になりました。次回は「Squeeze-and-Excitation Networks」を紹介する予定です。ご期待ください!

>>スキルアップAI講師陣が選ぶ「今読むべきディープラーニングの最新論文 19選」
 
Page Top