• 著者 : Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
  • 出典 : CVPR 2016
  • 一行要約 : CNNに残差学習を取り入れる事で勾配消失(Degradation)の問題に対処でき、ILSVRCのテストセットにてエラー率top-5 : 3.57%を記録し、ILSVRC-2015にて優勝したCNNモデルの論文。

何をしたか

  • 残差学習をCNNに取り入れる事で、既存のモデルよりもより深いモデルを容易に最適化した。
  • 残差学習の有無とモデルの深さに対して包括的な実験を行った。
  • ILSVRC-2015画像分類タスクにてTop-5エラー率3.57%で優勝した。
  • COCO物体検出タスク、ImageNet物体特定タスクなどにおいても優勝した。

何がうれしいか

  • 残差学習は、恒等写像により学習する写像に加算させる事によって、学習パラメータを増やすことなく用意に実装できる。
  • 残差学習によって勾配消失問題に対処できることにより、非常に深いモデルをSGDで容易に最適化可能になる。
  • モデルの計算量増加を抑え、非常に深く、認識精度の高いモデルを実現できる。

手法

Residual Learning (残差学習)

  • 複数の積み重ねたレイヤの写像を H(x)\mathcal{H} ( \mathbf{x} ) とする。 (x\mathbf{x} はレイヤの最初の入力を示す。)
  • ここで残差学習は F(x):=H(x)x\mathcal{F} ( \mathbf{x} ) := \mathcal{H} ( \mathbf{x} ) - \mathbf{x} を近似することを表す。
  • 従って元の学習対象の写像は H(x)=F(x)+x\mathcal{H} ( \mathbf{x} ) = \mathcal{F} ( \mathbf{x} ) + \mathbf{x} となる。
  • もし、恒等写像が最適である場合は学習対象の写像(solver)の重みを0に近づける事で学習ができる。
  • 実際には恒等写像が最適である可能性が低いが、実際の挙動を見ると学習対象の写像のみを学習させるよりも恒等写像を参照とした学習対象の写像の学習はより簡単になる。
  • 直接レイヤの応答(Response)を見ると恒等写像により微細な摂動であることが確認できる。(恒等写像が学習の手助けをしてくれている。)

Identity Mapping by Shortcuts (ショートカットによる恒等写像)

ショートカットコネクション

  • ショートカットコネクションにより恒等写像の加算を実現し、以下の定式で与えられる。
y=F(x,Wi)+x\mathbf{y} = \mathcal{F} ( \mathbf{x}, {W_{i}} ) + \mathbf{x}
  • ここで y,x\mathbf{y}, \mathbf{x} はそれぞれ出力、入力ベクトルを示す。

  • F(x,Wi)\mathcal{F} ( \mathbf{x}, {W_{i}} ) は学習対象の写像であり、上記の図のような2つのレイヤの場合は、 F=W2σ(W1x)\mathcal{F} = W_{2} \sigma ( W_{1}\mathbf{x} ) となる。

  • σ\sigma は活性化関数ReLUを示す。

  • 恒等写像を加算する際にベクトルの次元を合わせる必要があるため、もし次元が一致しない場合は以下の定式を学習する。

y=F(x,Wi)+Wsx\mathbf{y} = \mathcal{F} ( \mathbf{x}, {W_{i}} ) + W_{s} \mathbf{x}
  • ここで WsW_{s} は次元調整に使用されるレイヤの重みである。(よくlinear proction とも呼ばれる)

Network Architecture (モデル構造)

  • プレーンなモデルは VGG[1] から着想を得て設計するために、以下の2つのルールを設ける。

    • ルール(1): 同じ解像度の特徴マップを出力させる層間ではチャネル数(フィルタ数)を一致させる。
    • ルール(2): 解像度が1/2する場合にチャネル数(フィルタ数)を2倍にする。
  • 最後にはGlobal Average Pooling、全結合 w/ softmax層、を通してマルチクラス分類を行う。

  • 以下にVGG-19とプレーンモデル34とResNet34の比較を示す。

VGG-1934-layer plain34-layer residual
3x3 conv, 64
3x3 conv, 64
pool, 1/2
3x3 conv, 128
3x3 conv, 1287x7 conv, 64, 1/27x7 conv, 64, 1/2
pool, 1/2pool, 1/2pool, 1/2
3x3 conv, 2563x3 conv, 643x3 conv, 64
3x3 conv, 2563x3 conv, 643x3 conv, 64, add shortcut
3x3 conv, 2563x3 conv, 643x3 conv, 64
3x3 conv, 2563x3 conv, 643x3 conv, 64, add shortcut
3x3 conv, 643x3 conv, 64
3x3 conv, 643x3 conv, 64, add shortcut
pool, 1/23x3 conv, 128, /23x3 conv, 128, /2
3x3 conv, 5123x3 conv, 1283x3 conv, 128, add shortcut w/ down channels
3x3 conv, 5123x3 conv, 1283x3 conv, 128
3x3 conv, 5123x3 conv, 1283x3 conv, 128, add shortcut
3x3 conv, 5123x3 conv, 1283x3 conv, 128
3x3 conv, 1283x3 conv, 128, add shortcut
3x3 conv, 1283x3 conv, 128
3x3 conv, 1283x3 conv, 128, add shortcut
pool, 1/23x3 conv, 256, /23x3 conv, 256, /2
3x3 conv, 5123x3 conv, 2563x3 conv, 256, add shortcut w/ down channels
3x3 conv, 5123x3 conv, 2563x3 conv, 256
3x3 conv, 5123x3 conv, 2563x3 conv, 256, add shortcut
3x3 conv, 5123x3 conv, 2563x3 conv, 256
3x3 conv, 2563x3 conv, 256, add shortcut
3x3 conv, 2563x3 conv, 256
3x3 conv, 2563x3 conv, 256, add shortcut
3x3 conv, 2563x3 conv, 256
3x3 conv, 2563x3 conv, 256, add shortcut
3x3 conv, 2563x3 conv, 256
3x3 conv, 2563x3 conv, 256, add shortcut
pool, 1/23x3 conv, 512, /23x3 conv, 512, /2
3x3 conv, 5123x3 conv, 512, add shortcut w/ down channels
3x3 conv, 5123x3 conv, 512
3x3 conv, 5123x3 conv, 512, add shortcut
3x3 conv, 5123x3 conv, 512
3x3 conv, 5123x3 conv, 512, add shortcut
classiferclassiferclassifer

Implementation (実装)

  • データ水増しは AlexNet [2], VGG [1] を参照。
  • Batch Normalization を畳み込み層と活性化関数層の間に挟む。
  • moemntum SGD を使用し、validationのエラー率が停滞したら学習率を1/10する。
  • 分類層にはdropoutなし。
  • テスト時には10クロップ入力し、平均をとる。

実験

  • ImageNet分類タスク:
    • 18層と34層のプレーンネットワーク(残差結合なし)を比較すると、34層の方が学習エラーも検証エラーも高くなるという「Degradation(精度劣化)」問題が観測された。
    • 一方、ResNet構造を導入した18層と34層を比較すると、34層のResNetの方が18層よりもエラー率が低く(25.03% vs 27.88%)、勾配消失による学習阻害を解消できることが確認された。
    • VGG-16/19と同等以下の計算量(FLOPs)を保ちつつ、Bottleneckアーキテクチャを活用することで50層、101層、152層へと深くしたモデルを学習。152層のResNetアンサンブルによりTop-5エラー率3.57%を達成し、ILSVRC 2015で優勝を果たした。
  • CIFAR-10データセット:
    • CIFAR-10にて最大1202層のResNetを学習させたところ、最適化の困難さは見られず、訓練エラーを0.1%未満に抑えることに成功した。ただし、1202層では過学習の傾向が見られ、110層のモデルの方がテスト精度は若干良かった。
  • PASCAL VOC / MS COCO:
    • VGG-16をResNet-101に置き換えるだけで、Faster R-CNNを用いた物体検出(MS COCO)のmAP指標が相対的に28%向上。特徴表現力の高さが他のタスクでも有効であることを証明した。

議論

  • ResNetがなぜ最適化しやすいのかについて、論文では「個々の層が非線形変換(新しい特徴の学習)を行うより、恒等写像からの微小な変化(残差)を学習する方が、ソルバーにとって容易である」という仮説を立て、実験的に層の出力の標準偏差が小さいことを確認している。
  • Shortcut Connection(スキップ結合)はパラメータや計算量を追加せずに実装できるため、プレーンなモデルとの純粋な比較や、実用時のメモリ効率の面で非常に強力である。
  • 1000層を超えるような極端に深いモデルでは、最適化(学習を進めること自体)は可能になったものの、過学習(Overfitting)への対策(DropoutやMaxoutなどの強力な正則化)が今後の課題として残されている。

次に読むべき論文

  • Identity Mappings in Deep Residual Networks (He et al., 2016)
    • ResNetの著者らが、Activation (ReLU) や Batch Normalization の配置順序(Pre-activation)について改良を行い、さらに学習効率を高めた「ResNet v2」の提案論文。
  • Aggregated Residual Transformations for Deep Neural Networks (Xie et al., 2017)
    • ResNetの拡張版であり、ネットワークの幅(カーディナリティ)という新しい概念を導入した「ResNeXt」の提案論文。
  • Wide Residual Networks (Zagoruyko & Komodakis, 2016)
    • モデルを深くする代わりに、各層のチャネル数(幅)を広げることで、より少ない層数でもResNetと同等以上の精度を短時間で達成できることを示した論文。## Reference

Reference

  • He, Kaiming, et al. “Deep residual learning for image recognition.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. paper link

  • [1] Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014). paper link

  • [2] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems 25 (2012): 1097-1105. paper link