1. スキップ接続 (skip connection)とは [概要]
スキップ接続 (skip connection)とは,ディープニューラルネットワークにおいて,途中の複数層をN層分スキップして先の層へとつなげる迂回パスにより,離れた層間で順伝搬・逆伝搬を行えるようにする機構である.スキップした先では,元の特徴(マップ)をそのままコピーする場合もあれば,学習可能な層を設けて,スキップ後の結合具合も層に学習する場合もある.
Transformerでも,残差接続の仕組みが活用されるなど,その後はコンピュータビジョンやNLPなど,各ディープラーニング関連分野で,ResNet(もとい残差接続 )が活躍している.
この記事では,スキップ接続の(ディープラーニング向けの)初期実用例 (FCN, ResNet)(2節)と,その後の代表的な活用例 (U-Net, Feature Pyramid Networksなど) (3節)を述べる.
長いスキップ接続により,序盤層の低レベル特徴や,中盤層の中レベル特徴も,間の層による処理をショートカットして終盤まで伝搬させて,予測に積極的に使えるようになる利点がある.その対称操作として,逆伝搬時にも,終盤層における損失の偏微分値を,ショートカットして中盤層や序盤層まで迂回パスで逆伝搬できる.この逆方向についても,勾配消失や勾配爆発を防ぐ効果に加えて,「効率良く序盤層までロスを行き渡らせられる」という利点が出る.
また,ResNetで提案された,「残差ブロック」内で使用する残差接続(=短いブロック単位のスキップ接続)では,小ブロック内で毎回残差接続を使うことで,超深いResNetを超多数のパスを用いて学習しやすくさせることができる.
1.1記事の構成
1節で概要を述べたあと,2節以降は,時系列順で,2節→3節の構成で,スキップ接続とその主な活用例を順に整理する:
1.2 スキップ接続の基本型
スキップ接続では,1層以上の層をスキップした層同士を迂回経路で接続し,特徴マップを次の層以降の層へとショートカットして伝搬できるようにする(図1-a).(VGGNetスタイルの)スキップ接続がない直列的な層の接続設計だと,隣の層同士を順番に伝搬していき,全ての処理の計算を経ることになる(図1-b).しかし,これに図1-aのように,スキップ接続で迂回経路をつくると,$f_{n}$層処理後の特徴マップを,少し先の$f_{n+2}$層処理ごの特徴マップへと,移動+結合させることができる.すなわち,「あいだの層の$f_{n+1}$層の処理」を無視することが迂回経路側では可能となり,スキップ処理とスキップ無し処理の,2経路の並列処理を実現することができる.
そして,このスキップ接続を多用して,複数の層をスキップ(ショートカット)する迂回経路を多数設置して,複雑な特徴集約経路が可能なネットワークを設計することがよく行われる.DNN・CNNの層間・ブロック間に,多数のスキップ接続を設置すると,「多層ネットワークの実現」・「学習時間の短縮」・「多様な伝搬パスを通じた表現力向上」などの恩恵が得られる.その結果,ネットワークの精度向上や学習効率向上に,スキップ接続が貢献する.たとえば,ResNetの残差接続や DenseNetブロックやResNeXtブロック(3.2節)に, U-Net・FPN(3.1)や.Transformerを用いた各種ネットワーク(BERT, GPT, Vision Transformer, DETRなど) (3.3節)で,スキップ接続・残差接続が活躍している.
1.3 スキップ接続の活用の,大まかな変遷
スキップ接続は,まず2015年~2016年頃に,コンピュータビジョン向けCNN向けに多数同時研究され,初期の代表的な実用例が登場した.(1)セマンティックセグメンテーション向けFCNの研究 [Long et al., CVPR2015] でのスキップ接続の使用や,(2) 物体認識向けのResNet [He et al., CVPR2016] の残差接続が,その代表例である(2.1, 2.2節でそれぞれ紹介).
その後,U-Net・Feature Pyramid Networkにおいて「Encoder-Decoder内での同一スケール特徴間をつなぐスキップ接続(3.1節)」が提案されて以降,ディープラーニングの中でも究めて重要な機構の1つとなっている.U-Net ・FPN のような「特徴ピラミッド型・砂時計型ネットワーク構造のFCN」では,「スキップ接続と画像Encoder-Decoderの同時使用」により,低レベル特徴,中レベル特徴の,容易な終盤層への伝搬が可能になる.そのおかげで,(各サブスケール画像解像度も考慮した)多様なパスを用いての,表現力の高いマルチスケール画像認識が可能となる.
- 2節 スキップ接続のCNN向け初期実用例
- 2.1 FCNでのセマンティックセグメンテーション向け提案.
- 2.2 ResNetでの残差接続・残差ブロックへの活用
- 3節 その後の代表的な活用例
- 3.1 同一スケール特徴間をつなぐスキップ接続
- U-Net・Feature Pyramid Networks.(Stacked) Hourglassブロック(T.B.D)
- 3.1 同一スケール特徴間をつなぐスキップ接続
2. スキップ接続のCNN向け初期実用例
スキップ接続の目的は,名前の通り,間の層を複数スキップした迂回経路を容易し,特徴を別ルートで遠くに伝搬することである.すなわち「何度も畳み込み層とプーリング層を経て消失してしまう低レベル特徴も,後半の層へと,直接搬送して生き残らせる(迂回させて直接渡す)」ことである.
スキップ接続で迂回したN個の層は,順伝搬・逆伝搬をショートカット(スキップ)して無視できる.よって,誤差逆伝搬時には,勾配消失問題を回避して,損失の微分値を,奥の方の初期層まで,たやすくスキップして伝えやすくなる.一方で順伝搬時には,序盤層だけ経てつくられた受容野もまだ狭い低レベル特徴を,スキップして後半層まで加工しないまま使用できる.
2.1 FCNでの提案
セマンティックセグメンテーション向けに提案されたFully Convolutional Network(FCN)のネットワーク構造では,低レベル特徴と中レベル特徴も合成した特徴マップで最後の画素識別を行うために,Pool3層とPool4層の特徴マップも,スキップ接続でコピーしてきて,最後に使用することを提案した.
このFCNで提案されたスキップ接続が,U-Netで対称Encoder-Decoder構造化して汎用性が高まったのを皮切りに(3.1.1),多くの画像認識タスクで,「U-Net・FPN構造の中の部品」としてスキップ接続が多く活用される展開に進んだ.
2.2 ResNetでの残差接続の使用
ResNetは,残差接続(=スキップ接続)を用いることで「3層ごとに残差接続で区切って小ブロック化し,その残差ブロックを超多数直列につなぐ」ことを提案した.その後,Transformerにも残差ブロックが採用される意味でも,この提案は非常に重要である.
ちなみに ResNetの論文中(2節 「Shortcut connections)でも書かれているように,スキップ接続とゲート機構で,遠い層間をつなぐことを提案したHighway Networks [Srivastava et al., 2015a], [Srivastava et al., 2015b]でも,残差接続と同様な仕組みが同時研究されたといえる.ただし,Highway Networksではブロック化ではなく,ロングスキップ接続を提案しただけなので,(小刻みに,各残差ブロック内で用いる)残差接続とは提案内容が異なる (※ ちなみにResNet論文では,FCN論文でのスキップ接続の使用がreferされていない).
3. その後のスキップ接続の代表的な活用例
3.1 同一スケール特徴間をつなぐスキップ接続
3.1.1 U-Net・FPNでの活用
U-Net [Ronneberger et al., 2015]では,FCN(2.1節)を参考に拡張する形で,U構造ネットワークの同じ解像度になるEncoder層とDecoder層のあいだを,スキップ接続で橋渡し接続することが提案された(図2).
U-Netでは,スキップ接続により,前半でEncoderした特徴マップを,後段のチャンネルにまでスキップしてそのままコピーし合成する.
物体検出などむけにCNNバックボーンを(U-Netのように)拡張するFeature Pyramid Networks(FPN)でも,スキップ接続が使用された(図3).
FPNでCNNバックボーンを拡張すると,結果的に,U-Netとほぼ同じ「U型砂時計構造 + スキップ接続」のネットワークを構成する.FPNでは,スキップ接続後に,2者間を合成する層も設置して合成度合いも学習する(図3).
つまり,U-Net・FPN の2者は,同一スケールの特徴マップ間をつないで,マルチスケールEncoder-Decoderを「スキップ化 + 多様なパス化」する目的が同じであり,ネットワーク構造的にも似ている.FPNは「各スケールごとに出力ヘッドを用意する」ところだけが異なり,その手前までの「砂時計型Encoder-Decoder + スキップ接続」という構造は両者共通している.
ちなみにU型ネットワークを水平につなぐので,このケースのスキップ接続をラテラル接続(lateral connection)と呼ぶこともある.
3.2 スキップ接続を使用したブロック内
ResNet の残差ブロックと同様に,他のCNNバックボーンでも,ブロック内での,スキップ接続の使用が行われた.ResNetブロック以外の代表例を列挙しておく.
3.2.1 Denseブロック
DenseNetのブロック(図4)は,ブロック内の全ての層をDenseに全てスキップ接続で接続したものである.
3.2.2 ResNeXtブロック
ResNetの著者自身による発展版であるResNeXtのブロック(図5)でも,スキップ接続が使用されている.ResNetブロックの残差接続でない側を,32パスにワイド化したものがResNeXtのブロックである.よって,ResNet同様に,スキップ接続の使用が継承されている.
3.3 Transformerでの残差接続の使用
Transformer (図6: Encoder, 図7:Decoder)でも,各マルチヘッドアテンションとFFNブロックにも,ResNet方式の残差接続が採用された.これにより,大規模なTransformerネットワークを学習しやすくなっている
(そもそも差接続がないと,層が多く深すぎて,うまく学習できない).
4. まとめ
ディープニューラルネットワーク向けのスキップ接続について,FCNやResNetでの初期提案(2節)についてまず述べた.
3節では,その後の代表的な活用として, U-Net・FCNでのマルチスケール認識対応むけの「長いスキップ接続」の活用(3.1節)と,ResNeXtやDenseNetなどのブロック構造内での「ブロック単位での短いスキップ接続」の活用(3.2節) の2種類を述べたあと,3.2節のパターンは,近年Transformer系ネットワークでも(残差接続が)活用されていることを述べた(3.3節).
関連書籍
- Pythonで学ぶ画像認識 (機械学習実践シリーズ), 田村 雅人, 中村 克行, インプレス, 2023.
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- Probabilistic Machine Learning: An Introduction, Kevin Patrick Murphy , MIT Press, 2022.
References
- [He et al., 2016a] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016
- [Long et al., 2015] Long, J., Shelhamer, E.; Darrell, T. “Fully convolutional networks for semantic segmentation. In CVPR, 2015
- [Ronneberger et al., 2015] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolutional Networks for Biomedical Image Segmentation, pages 234–241. Springer International Publishing, Cham, 2015
- [Srivastava et al., 2015a] R. K. Srivastava, K. Greff, and J. Schmidhuber. Highway networks. arXiv:1505.00387, 2015.
- [Srivastava et al., 2015b] R. K. Srivastava, K. Greff, and J. Schmidhuber. Training very deep networks. In NIPS, 2015.