スキップ接続(Skip connection)

1. スキップ接続 (skip connection)とは [概要]

スキップ接続 (skip connection)とは,ディープニューラルネットワークにおいて,途中の複数層をN層分スキップして先のへとつなげる迂回パスにより,離れた層間での逆伝搬・逆伝搬を行えう機構である.スキップした先では,元の特徴(マップ)をそのままコピーする場合もあれば,学習可能なを設けて,スキップ後の結合具合も学習する場合もある.

この記事では,スキップ接続の(ディープラーニング向け)初期実用例(FCN, ResNet)(2節)と,その後の代表的な活用例(U-Net, FPNなど) (3節)を述べる.

長いスキップ接続により,序盤層の低レベル特徴や,中盤層の中レベル特徴も,間の層による処理をショートカットして終盤まで伝搬させて,予測に積極的に使えるようになる利点がある.その対称操作として,逆伝搬時にも,終盤層における損失の偏微分値を,ショートカットして中盤層や序盤層まで迂回パスで逆伝搬できるので,勾配消失や勾配爆発を防ぐのに加えて,効率良く序盤層までロスを行き渡らせられる利点がある.

また,ResNetで提案された,「残差ブロック」内で使用する残差接続(=短いブロック単位のスキップ接続)では,小ブロック内で毎回残差接続を使うことで,超深いResNetを超多数のパスを用いて学習しやすくさせることができる.Transformerでも,残差ブロック・残差接続の仕組みが利用されるなど,その後はコンピュータビジョンやNLPなど,ディープラーニングを用いたパターン認識の広い分野で,ResNet残差接続の仕組みは活躍している.

1.1 スキップ接続の基本型

スキップ接続(skip connection)
図1. スキップ接続(skip connection)

スキップ接続では,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-NetFPN(3.1)や.Transformerを用いた各種ネットワーク(BERT, GPT, Vision Transformer, DETRなど) (3.3節)で,スキップ接続・残差接続が活躍している.

1.2 スキップ接続の活用の,大まかな変遷

スキップ接続は,まず2015~2016年頃に,コンピュータビジョン向けCNN向けに多数同時研究され,初期の代表的な実用例が登場した.(1)セマンティックセグメンテーション向けFCNの研究 [Long et al., CVPR2015] でのスキップ接続の使用や,(2) 物体認識向けResNet [He et al., CVPR2016] の残差接続が,その代表例である(2.1, 2.2節でそれぞれ紹介).

その後,U-NetFeature Pyramid Networkにおいて「Encoder-Decoder内での同一スケール特徴間をつなぐスキップ接続(3.1節)」が提案されて以降,ディープラーニングの中でも究めて重要な機構の1つとなっている.U-NetFPN のような「特徴ピラミッド型・砂時計型ネットワーク構造のFCN」では,「スキップ接続と画像Encoder-Decoderの同時使用」により,低レベル特徴,中レベル特徴の,容易な終盤層への伝搬が可能になる.そのおかげで,(各サブスケール画像解像度も考慮した)多様なパスを用いての,表現力の高いマルチスケール画像認識が可能となる.

1.3 記事の構成

2節以降は,以下の時系列的な2節→3節の構成で,スキップ接続とその主な活用例を整理する:

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の構造
図 U-Netの構造

U-Net [Ronneberger et al., 2015]では,FCN(2.1節)を参考に拡張する形で,U構造ネットワークの同じ解像度になるEncoder層とDecoder層のあいだを,スキップ接続で橋渡し接続することが提案された.

スキップ接続後は,もってきた特徴マップを,後段のチャンネルにそのままコピーして合成する.

FPN(Feature Pyramid Networks, 特徴ピラミッドネットワーク)の構造 [詳細版]
図 Feature Pyramid Networks(FPN)の構造 [詳細版]

また,物体検出などむけにCNNバックボーンをU-Netのように拡張するFeature Pyramid Networks(FPN)でも,スキップ接続が使用された.FPNでCNNバックボーンを拡張すると,結果的に,U-Netとほぼ同じ「U型構造+スキップ接続」のネットワークを構成することになる (FPNでは,スキップ接続後に,2者を合成する計算を行う層も設置する).

つまり,U-Net・FPN の2者は,同一スケールの特徴マップ間をつないで,マルチスケールEncoder-Decoderを「スキップ化 + 多様なパス化」する目的が同じであり,ネットワーク構造的にも似ている.ちなみにU型ネットワークを水平につなぐので,このケースのスキップ接続をラテラル接続(lateral connection)と呼ぶこともある.

3.2 スキップ接続を使用したブロック内

ResNetの残差ブロックと同様に,他のCNNバックボーンでも,ブロックでの,スキップ接続の使用が行われた.ResNetブロック以外の代表例を列挙しておく.

3.2.1 Denseブロック

DenseNetの「Denseブロック」
図 DenseNetの「Denseブロック」

DenseNetのブロックは,ブロック内の全ての層をDenseに全てスキップ接続で接続したものである.

3.2.2 ResNeXtブロック

ResNeXtブロック
図 ResNeXtの「ワイド化した残差ブロック」

ResNetの著者自身による発展版であるResNeXtのブロックでも,スキップ接続が使用されている.ResNetブロックの残差接続でない側を,32パスにワイド化したものがResNeXtのブロックである.よって,ResNet同様に,スキップ接続の使用が継承されている.

3.3 Transformerでの残差接続の使用

TransformerのEncoder構成
図 TransformerのEncoder構成

TransformerのDecoder構造図 TransformerのDecoder構造

Transformerでも,各マルチヘッドアテンションとFFNには,ResNet方式の残差接続が採用された.これにより,大規模なTransformerネットワークが学習しやすくなっている

(そもそも差接続がないと,層が多く深すぎて,うまく学習できない).

4. まとめ

ディープニューラルネットワーク向けのスキップ接続について,FCNやResNetでの初期提案(2節)についてまず述べた.

3節では,その後の代表的な活用として, U-Net・FCNでのマルチスケール対応むけの「長いスキップ接続」の活用(3.1節)と,ResNeXtやDenseNetなどのブロック構造内での「ブロック単位での短いスキップ接続」の活用(3.2節) の2種類を述べたあと,3.2節のパターンは,近年Transformer系ネットワークでも(残差接続が)活用されていることを述べた(3.3節).

関連書籍

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.