残差接続(residual connection)

1. 残差接続とは [概要]

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

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

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

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

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

ResNetの残差ブロックと 残差接続(residual connection)
図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}
\]

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

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

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

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

この「残差(ブロック)の多層化」の設計により,多様な伝搬経路が存在するResNetでは,右の残差接続ばかりずっと選んだ経路が,(U-NetSegNetの長いスキップ接続のように)奥の層まで直接(色々な長さで)接続されるようにもなる.よって,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で提案された「残差接続」と,「残差ブロックの直列的繰り返し」について,仕組み(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)

参照外部リンク