ResNet (G検定)

ResNet

1. 定義と概要

ResNet(Residual Network、残差ネットワーク)とは、畳み込みニューラルネットワーク(CNN。画像の特徴を効率よく捉えるディープラーニングの代表的な手法)のモデルです。Microsoft Research Asia所属のKaiming He(何愷明)氏らが2015年に発表した論文『Deep Residual Learning for Image Recognition』で提案されました。

仕組みの核になるのは残差学習です。層の入力をそのまま数層先の層の出力に足し合わせるスキップ接続を導入し、各層のブロックには入力と出力の差分(残差)を学習させます。この仕組みにより、152層という当時としては極端に深いネットワークの学習を実用的な範囲で可能にし、同年のILSVRC(ImageNetという大規模画像データセットを使った画像認識の国際コンペティション)画像分類部門で優勝しました。

背景には、深さと精度をめぐる当時の常識があります。従来、CNNは層を深く積み重ねるほど表現力が高まり精度が向上すると考えられてきました。VGGNet(3×3の小さいフィルタを直列に重ねた設計)が19層、GoogLeNet(複数サイズの畳み込みを並列に束ねたインセプションモジュール構成)が22層へと、深化が進められてきました。

しかし層をさらに深くすると、勾配消失問題(層をさかのぼるほど学習の手がかりとなる勾配が小さくなる現象)とは別に、訓練データに対する誤差そのものが増えてしまう劣化問題が観測されるようになりました。深くしたはずのモデルが、浅いモデルより訓練データすら当てられなくなるという状況です。

ResNetはこの劣化問題への解として、各層に望ましい変換そのものを学習させるのではなく、恒等写像(入力をそのまま出力として返す変換のこと)との差分を学習させる残差学習という発想へ切り替えました。差分がゼロに近づけば恒等写像に近い動作をするため、層を増やしても性能が悪化しにくくなり、152層という深さの学習が実現しています。

2. 試験対策ポイント

劣化問題とスキップ接続の関係は、まず整理したい論点です。層を深くすると訓練誤差さえ増加する劣化問題に対し、ResNetは各層のブロックに入力をそのまま出力へ足し合わせるスキップ接続を導入し、望ましい変換そのものではなく恒等写像からの差分にあたる残差を学習させる設計で応じました。出力は残差に入力を足し合わせた値として表され、残差がゼロに近づけば恒等写像に近い動作をするため、層を増やしても性能が悪化しにくくなるという関係にあります。

152層という数値は、VGGNetの19層やGoogLeNetの22層と比べても大幅に深いネットワークを実現した点として整理しておきたいところです。一方でパラメータ(モデル内部で学習される重みの数値)の総数や計算量はVGGNetより少なく抑えられています。ボトルネック構造(1×1畳み込みでチャンネル数を一度絞ってから3×3畳み込みを行い、再び1×1畳み込みで戻す設計)の採用が、その一因になっています。

スキップ接続は誤差逆伝播(出力側の誤差を逆方向にたどって各層の重みを更新する仕組み)の際に勾配が層を飛び越えて伝わる近道を作るため、勾配消失問題の緩和にも寄与します。ただし劣化問題と勾配消失問題は同一の現象ではなく、劣化問題は勾配消失だけでは説明しきれない現象として提起された点は取り違えやすいところです。

ILSVRC2015での成果も要点の一つです。ResNetは画像分類部門で優勝し、top-5エラー率(モデルが予測した上位5候補に正解が含まれていない割合を示す評価指標)は3.57%を記録し、当時の人間の認識誤り率とされる約5.1%を下回りました。

スキップ接続を使って入力と出力を足し合わせる残差学習という発想は、ResNet以降のCNNアーキテクチャに広く受け継がれた設計思想です。幅を広げる方向へ発展させたWide ResNetなど派生モデルは別のテーマとして扱われます。

3. 関連概念との比較・相違点

VGGNetとの最大の違いは、深さの限界という観点にあります。VGGNetは3×3の小さいフィルタを直列に重ねるシンプルな設計で19層まで深化させましたが、それ以上単純に層を重ねると劣化問題に直面します。ResNetはスキップ接続と残差学習の導入によりこの限界を打破し、152層まで深化を進めた点が最大の相違点になります。この違いは、単に層数を増やすだけでは精度が頭打ちになるという教訓を象徴しています。

GoogLeNetとの違いは、深さを稼ぐ仕組みの方向性にあります。GoogLeNetは複数サイズの畳み込みを並列に配置したインセプションモジュールを重ねる横方向の工夫で22層を実現しました。一方でResNetは層の入力を後方へそのまま足し合わせるスキップ接続という縦方向の工夫で152層を実現しており、深さを稼ぐアプローチの方向性が異なります。

三者の関係は、層数と深さを稼ぐ工夫を並べると見通しがよくなります。

モデル 層数 深さを稼ぐ工夫
VGGNet 19層 3×3の小さいフィルタを直列に重ねる
GoogLeNet 22層 複数サイズの畳み込みを並列に束ねるインセプションモジュール
ResNet 152層 入力を後方の層の出力へそのまま足し合わせるスキップ接続

深さを縦か横かで稼ぐという対比は、CNNアーキテクチャの設計思想を比較するうえで分かりやすい軸になります。層を積む向きが違えば、深さの限界にぶつかったときの打開策も変わってくるわけです。

4. ビジネス・実務での活用シナリオ

画像認識研究・コンピュータビジョン全般では、画像分類だけでなく物体検出やセグメンテーションなど後続の画像認識モデルが数多く存在します。これらのモデルで特徴抽出を担う土台部分にあたるバックボーン(別タスクのモデルで特徴抽出を担う土台部分のネットワークのこと)として、ResNetが広く採用されています。転移学習(学習済みモデルが持つ知識を別のタスクに応用する手法)のベースモデルとしての地位を確立している点が、研究分野での存在感を支えています。

医療画像診断の分野では、X線やCT画像から病変を検出する分類モデル(画像を種類ごとに識別するモデル)の特徴抽出部にResNetをバックボーンとして採用する事例があります。少量の医療データでも高精度な分類を実現する土台として活用されており、データ収集が難しい医療分野において実務上の意義が大きいところです。

製造業の外観検査では、製品の微細な傷や欠陥パターンを捉えるために深い層による表現力が有効とされています。劣化問題を回避しながら層を深くできるResNet系のモデルが外観検査AIの土台として採用されており、人の目では見落としやすい微細な異常の検出精度を高める役割を担っています。

5. 要点まとめ

  • ResNetは、層の入力をそのまま出力に足し合わせるスキップ接続を用いた残差学習によって、層を深くするほど訓練誤差が増える劣化問題を克服し、152層という深いネットワークの学習を実現したCNNモデルです。
  • 2015年のILSVRC画像分類部門で優勝し、top-5エラー率3.57%を記録して、当時の人間の認識誤り率とされる約5.1%を下回りました。
  • 3×3フィルタを直列に重ねるVGGNet(19層)やインセプションモジュールで並列構造を工夫するGoogLeNet(22層)とは異なり、スキップ接続という縦方向の工夫で深さの限界を打破した点がResNetの位置づけです。

6. 確認問題

問1ResNetは、層の入力をそのまま出力に足し合わせるスキップ接続(ショートカット接続)を導入し、層を深くするほど訓練誤差が増加する劣化問題への対処として登場したモデルである。

解答・解説をみる

○ 正しい

劣化問題は層を深くするほど訓練誤差そのものが増加する現象です。ResNetはスキップ接続により各層に恒等写像からの差分(残差)を学習させる残差学習でこれに対処しました。

問2ResNetは2015年のILSVRC画像分類部門において、深さの異なる複数のResNetを組み合わせたアンサンブルでtop-5エラー率3.57%を記録して優勝した。

解答・解説をみる

○ 正しい

Microsoft Research Asia所属のKaiming He氏らが発表したResNetは2015年のILSVRCで優勝しました。深さの異なる複数のResNetによるアンサンブルでtop-5エラー率3.57%を記録し、当時の人間の認識誤り率とされる約5.1%を下回りました。単体の152層モデルの検証誤差は4.49%です。

問3ResNetのスキップ接続は、GoogLeNetのインセプションモジュールと同じく、複数サイズの畳み込みを並列に配置して精度を高める仕組みである。

解答・解説をみる

× 誤り

正しくは、ResNetのスキップ接続は層の入力をそのまま後方の層の出力に足し合わせる縦方向の近道を作る仕組みです。GoogLeNetのインセプションモジュールのように複数サイズの畳み込みを並列配置する仕組みとは異なります。両者は深さを実現するための異なるアプローチという関係にあります。