残差接続 (residual connection) [ResNet]

1. 残差接続 (residual connection)とは [概要]

残差接続 (residual connection)とは,CNNの1種である ResNet [He et al., 2016a], [He et al., 2016b] の構成部品である残差ブロックにおいて,毎ブロックに配置される「スキップ接続 + そのあとの2経路の出力の足し算」の部品のことである.

要は 「残差接続 ≒ スキップ接続」ではあるが,スキップ接続のうち,ResNetの場合の残差ブロックを形成する形を,特に残差接続と呼ぶ.ResNetで,提案された「残差ブロックの多層化」の文脈では,スキップ接続を「残差接続」と別途呼び分けたほうが「残差ブロックを反復して構成しているネットワーク構造である」ことが伝わりやすくなる.

この記事では,ResNetの「残差接続」および「残差ブロック」の構造と役割を復習したうえで,いつ「残差接続と呼ぶか」について整理し,スキップ接続との呼び分け・違いが明確になるようにしたい.

1.1節で,まず残差ブロック・残差接続の定義をあらためておこなう.次の1.2節では,「残差ブロック化の効果」についても復習する(ResNet全体についての詳細は,以下の親記事を参照のこと).最後に1.3節では「残差接続とスキップ接続の呼び分け」を,具体的なネットワーク設計の分類を通して区別し,両者の呼び分けもしっかりできるようにしたい.

1.1 残差接続・残差ブロックの定義

ResNet(Residual Neural Networks)の残差ブロック
図1. ResNetの残差ブロックと残差接続

図1は,ResNetの残差ブロックの全体像と,そのブロック中の 残差接続(=スキップ接続)を示したものである.

このブロック中では,まず入力$\bm{x}$に対して,残差ブロックが写像 $H(\bm{x})$ 側を担当したい.このとき,残差写像 (図1 畳み込み層ReLU 畳み込み層 )の前後に,残差接続を接続し,出口を加算演算子で合成するようにする.これにより,残差接続 側には $\bm{x}$ を元の値のまま( = 恒等写像として)スキップさせる分岐経路(=スキップ接続)も用意できる.

残差写像は,残差 $F(\bm{x}) = H(\bm{x}) – \bm{x} $となる.この右辺 $\bm{x}$ を左辺側に移すと,元のブロック全体の写像の式は以下のようになる:

\[
H(\bm{x}) = F(\bm{x}) + \bm{x} \tag{1.1}
\]

このように,残差接続を用いると,残差ブロック内の写像$F(x)$は,$x$に対する変化分である「非常に小さな変換」だけを担当できる.

ResNetをはじめとした,残差接続を多用したかなり深いディープニューラルネットワーク(例:ResNeXtTransformerなど)では,この残差ブロックを$N$回繰り返すことで,次の1.2節で述べるような効果が得られる.

1.2 残差接続を追加した残差ブロックで,多層化する効果

式1に示したように,残差ブロックを用いると,残差写像部分の$F(x)$は,非常に小さな差分関数を担当することになる.よって,この残差ブロックを大量に$n$個直列接続すると,各ブロックの左(残差写像)と右(残差接続)のいずれかを通り,合計で$2^n$の経路が,ネットワーク全体に存在することになる.

この「残差(ブロック)の多層化」の設計により,多様な伝搬経路が存在するResNetでは,右の残差接続ばかりずっと選んだ経路が,(U-NetFPNSegNetなどの長いスキップ接続のように)奥の層まで直接(色々な長さで)接続されるようにもなる.よって,U-Netなどのスキップ接続ネットと同様に,学習の逆伝搬時にも,奥や中間層にも大きな誤差が伝搬できるようになり.勾配消失・爆発問題や,劣化問題を回避できるようになった.

以上より,ResNetは,劣化問題を避けて収束性も良くなるので,より性能が高い大規模なモデルを多層化により学習できるようになった.この利点があるので,その後はResNetに限らず,残差接続・残差ブロックがよく使われることになる.

1.3 スキップ接続 と 残差接続 の呼び分け

InceptionNet ,Stacked Hourglass Networks,ResNetなどのCNNモデルや,Google NMT,Transformer などの系列対系列変換モデルなどにおいては,短い1~2層でスキップ接続したり,「残差ブロック」を形成してそれを何度も繰り返すので,各スキップ接続のことを,ResNetに習って「残差接続」と呼ぶ.

逆に,DenseNet,HighwayNetwork,「U-NetFeature Pyramid Networkを接続して拡張したCNN」のように,「2分岐が繰り返されて木構像化されたり,ショートカットが長かったり(=沢山の層を一気にスキップ)する場合」は,ResNetのような「細かな(残差)ブロックの直列的な繰り返し」にはなっていないので,「スキップ接続」と呼ぶのが普通で,それらを残差接続とは呼ばない.あくまでResNetにならって「残差ブロックを直列接続した場合」にのみ,スキップ接続のことを「残差接続」と呼び分けるのが通例である.

2. 残差接続(residual connection) のまとめ

以上,ResNetで提案された「残差接続(residual connection)」と,「残差ブロックの直列的繰り返し」について,仕組み(1.1節)と利点(1.2節)について短くまとめた.

また,スキップ接続と,その特殊型の1つである残差接続について,両者の使われどころの違いと呼び分けについて整理した(1.3節).

関連書籍

References

  • [Diba et al., 2018] Ali Diba, Mohsen Fayyaz, Vivek Sharma, M Mahdi Arzani, Rahman Yousefzadeh, Juergen Gall, and Luc Van Gool. Spatio-temporal channel correlation networks for action classification. In ECCV, 2018.
  • [Hara et al., 2018] Kensho Hara, Hirokatsu Kataoka, and Yutaka Satoh. Can spatiotemporal 3d cnns retrace the history of 2d cnns and imagenet. In CVPR, 2018.
  • [He et al., 2016a] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016
  • [He et al., 2016b] K. He, X. Zhang, S. Ren, and J. Sun. Identity mappings in deep residual networks. In ECCV, 2016
  • [He et al., 2017] K. He, G. Gkioxari, P. Doll ́ar, R. B. Girshick, Mask r-cnn, In ICCV, 2017.
  • [Krizhevsky et al,. 2012] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.
  • [Szegedy et al., 2015] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabi- novich. Going deeper with convolutions. In CVPR, 2015.
  • [Szegedy et al., 2016] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z.Wojna. Rethinking the inception architecture for computer vision. In CVPR, 2016.
  • [Veit et al,. 2016] Veit, Andreas, Michael J. Wilber, and Serge Belongie. “Residual networks behave like ensembles of relatively shallow networks.” In NIPS, 2016.
  • [Xie et al., 2017] Xie,S., Girshick, R., Dollar,P. , Tu,Z., He,K. :Aggregated residual transformations for deep neural networks. In: CVPR. (2017)

参照外部リンク