「層を深くすれば賢くなるはずなのに、深くすると学習できなくなる」──このジレンマを鮮やかに解決したのがResNetです。鍵となる残差接続(スキップ接続)のアイデアを、図解を交えて理解していきましょう。

📖 ひと言でいうと

ResNet(Residual Network)とは、層の入力を出力に直接足し合わせる「残差接続(スキップ接続)」を導入することで、非常に深いネットワークの学習を可能にしたCNNモデルです。2015年のImageNetコンペティション(ILSVRC)で優勝しました。

例えるなら、書類の伝言ゲームに「原本のコピーを一緒に回す」仕組みを足したようなものです。各担当者(層)は原本を書き換えるのではなく、「原本への修正メモ(残差)」だけを作り、原本に添えて次へ渡します。担当者が何十人いても原本は無傷で流れるので、情報や学習信号が途中で劣化しにくくなります。

🖼 1枚でわかるResNet

ResNet — 残差接続で「超深層」を学習可能に
  • 課題 — 層を深くすると勾配消失・劣化問題で学習が困難だった
  • 解決策 — 入力xを出力に直接加算する残差ブロック(スキップ接続)
  • 効果 — 勾配が減衰せず伝播し、152層もの深さで学習に成功
  • 実績 — 2015年ImageNetコンペティション(ILSVRC)優勝
  • 影響 — WideResNet・ResNeXt・DenseNetなど後続の土台に
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

深層ニューラルネットワークにおける学習の難しさを克服するために、残差接続(スキップ接続)を導入したモデルである。従来、ネットワークの層を深くすることで表現力が向上すると考えられていたが、実際には勾配消失問題や劣化問題が生じ、学習が困難になることが多かった。ResNetは、この問題を解決するために、層の入力を出力に直接加算する残差ブロックを採用し、情報の流れをスムーズにし、深いネットワークでも効果的な学習を可能にした。具体的には、ResNetは入力信号をそのまま次の層に伝達するショートカット接続を持つ。これにより、ネットワークは恒等写像を学習する際、パラメータをゼロに近づけるだけで済み、学習が容易になる。このアプローチにより、ResNetは152層にも及ぶ深いネットワークの学習を成功させ、2015年のImageNetコンペティションで優勝を果たした。

かみ砕くと、ResNet登場前の悩みは「深くしたいのに深くできない」でした。層が増えるほど誤差逆伝播の勾配が弱まって消えてしまう勾配消失問題に加え、「深いモデルの方が浅いモデルより訓練誤差まで悪くなる」という不思議な現象(劣化問題)が観測されていたのです。

ResNetの答えは、各ブロックに「入力をそのまま出口へ届ける近道(ショートカット接続)」を用意し、層には入力との差分=残差だけを学ばせることでした。もし何も変えないのが最善なら、層は残差をゼロに近づけるだけでよい。この「何もしないことが簡単にできる」構造が、深さのペナルティを取り除きました。

🔍 しっかり理解する

残差ブロックの中身

残差ブロックの計算は「出力 = F(x) + x」と書けます。xがブロックへの入力、F(x)が畳み込み層などで計算される変換(残差)、+xがスキップ接続による加算です。

入力 x
ここで2手に分岐
本線: F(x)
畳み込み層で
残差(修正分)を計算
合流: F(x)+x
近道してきたxを
そのまま加算
次のブロックへ
これを何十個も直列に

このブロックを何十個も積み重ねたのがResNetです。50層・101層・152層といったバリエーションが知られています。

なぜ学習が楽になるのか: 恒等写像の視点

深いネットワークで本来あってはならないのが「余分な層のせいで浅いモデルより悪くなる」ことです。理屈の上では、余分な層が「入力をそのまま出す変換(恒等写像)」を学べば、少なくとも浅いモデルと同じ性能は出せるはずです。ところが通常の層にとって、重みの組み合わせで恒等写像をぴったり作るのは意外に難しいことが分かっていました。

残差ブロックなら話は簡単です。恒等写像にしたければF(x)をゼロにすればよく、それは「パラメータをゼロに近づけるだけ」で実現できます。つまり各ブロックは「必要なときだけ、入力への修正分を上乗せする」ことに専念でき、不要な層が足を引っ張らなくなります。

勾配の流れから見る

誤差逆伝播の観点では、スキップ接続は勾配の「バイパス」として働きます。F(x)+xのxの経路は加算なので、勾配がそのまま(係数1で)手前の層まで通り抜けます。何十層の変換を経由するたびに勾配が縮んでいく従来構造と違い、各ブロックに必ず減衰しない通り道があるため、勾配消失が起きにくく、152層でも学習信号が最初の層まで届くのです。

💡 具体例で考える

ResNetは2015年にKaiming He(カイミン・ヘ)らが提案し、ILSVRC 2015で優勝しました。前年までの優勝モデルの深さは20層前後(GoogLeNetが22層)でしたから、152層という深さがいかに桁違いだったかが分かります。「深さこそ性能」という方向性を実際に証明してみせた転換点であり、以降の画像認識モデルはResNet系の構造を土台にするのが当たり前になりました。層の幅を広げたWideResNet、グループ化畳み込みを導入したResNeXt、すべての層を密に結合するDenseNetなどの発展形も生まれています。

さらに重要なのは、スキップ接続というアイデア自体が画像認識の枠を超えて標準部品になったことです。たとえばTransformerの各ブロックにも残差接続が組み込まれており、大規模言語モデルが深い層を安定して学習できるのも、この仕組みの恩恵です。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「層を飛ばして計算を省略する」のではない — スキップ接続は計算のショートカットではありません。本線F(x)もきちんと計算し、そこに入力xを加算します。飛ぶのは「情報の通り道」であって、層の計算を間引くわけではありません。
  • AlexNetとの混同 — AlexNetは2012年のILSVRC優勝モデルで、深層CNNブームの火付け役。ResNetは2015年優勝で「超深層化」を実現したモデルです。年と役割をセットで区別しましょう。
  • スキップ結合はResNet専用ではない — 残差接続はResNetが広めた汎用テクニックで、セマンティックセグメンテーションのU-NetやTransformerなど多くのモデルで使われます。ResNetは「残差接続を導入した代表的モデル」という位置づけです。
  • 勾配消失を「完全になくす」わけではない — 勾配が減衰しない経路を確保して問題を大幅に緩和した、と理解するのが正確です。バッチ正規化などの安定化技術とも併用されます。

📝 試験でのポイント

💡 ポイント
  • 「残差接続(スキップ接続)を導入」「層の入力を出力に直接加算」ときたらResNetを選ぶ、が基本パターンです。
  • 「2015年・ImageNet(ILSVRC)優勝・152層」の3点セットは、AlexNet(2012年)やVGG・GoogLeNet(2014年)との年代並べ替え問題で問われがちです。
  • 解決した課題として「勾配消失問題」「劣化問題」、仕組みの利点として「恒等写像の学習が容易(パラメータをゼロに近づけるだけ)」を対応づけられるようにしておきましょう。
  • 発展形(WideResNet・ResNeXt・DenseNet)がResNet系の系譜であることも、モデル名の対比問題で役立ちます。

📚 まとめ

💡 ポイント
  • ResNetは、残差接続(スキップ接続)により深層ネットワークの学習難を克服したCNNで、2015年のImageNetコンペティションで優勝しました。
  • 残差ブロックは「F(x)+x」の形で入力を出力に直接加算し、恒等写像の学習を容易にします。
  • スキップ接続は勾配の減衰しない通り道となり、勾配消失問題・劣化問題を緩和して152層の学習を可能にしました。
  • このアイデアはTransformerを含む現代のディープラーニング全般の標準部品になっています。