1 概要と背景

ディープラーニングの発展に伴い、より深いネットワークが高い性能をもたらすことが期待されたが、単純に層を積み重ねると学習が困難になる問題が顕在化した。ResNetはこの問題に対し、残差学習という革新的な手法を導入することで、超深層ネットワークの安定した学習を実現した。

1.1 深層学習における深いネットワークの課題

深いニューラルネットワークでは、勾配が逆伝播する際に層を経るごとに指数関数的に減少(消失)または増大(爆発)する現象が発生する。これにより、浅い層の重みがほとんど更新されず、学習が収束しないか、発散してしまう。従来の活性化関数正則化手法では、数十層を超えるネットワークの学習は極めて困難であった。

1.2 残差学習のアイデア

ResNetの核心は、学習対象を元の写像そのものではなく、入力と出力の差分(残差)にすることにある。具体的には、ある層の出力をH(x)とすると、残差ブロックはF(x)=H(x)-xを学習し、最終的な出力はF(x)+xとなる。これにより、恒等写像(x→x)が容易に学習可能となり、深いネットワークでも勾配がスムーズに流れる。

2 アーキテクチャ

ResNetは多数の残差ブロックを積み重ねた構造を持つ。各ブロックは畳み込み層バッチ正規化、活性化関数、そしてスキップ接続から構成される。ネットワークの深さに応じて、基本ブロックまたはボトルネックブロックが使用される。

2.1 残差ブロック

残差ブロックはResNetの基本構成単位であり、入力をそのまま出力に加算するショートカット経路を持つ。これにより、勾配の逆伝播が改善される。

2.1.1 恒等マッピングとスキップ接続

スキップ接続(ショートカット接続)は、1つ以上の層を飛び越えて入力を出力側に直接伝える経路である。入力をx、ブロック内の演算をF(x)とすると、出力はy = F(x) + xとなる。この恒等マッピングにより、誤差逆伝播時に勾配がスキップ経路を通り、浅い層まで届きやすくなる。

2.1.2 活性化関数とバッチ正規化

各畳み込み層の後にはバッチ正規化(Batch Normalization)とReLU活性化関数が配置される。バッチ正規化は内部共変量シフトを抑制し、学習を安定化させる。ReLUは非線形性を導入するが、残差ブロック内では最終加算後に再度ReLUを適用するか、加算前に適用するかなど、実装によってバリエーションがある。

2.2 ボトルネック設計

深いモデル(ResNet-50以上)では、計算効率を高めるためにボトルネックブロックが採用される。これは3層の畳み込み(1×1、3×3、1×1)で構成され、入出力のチャネル数を抑制する。

2.2.1 1×1畳み込みの役割

1×1畳み込みはチャネル数の次元削減復元に使われる。最初の1×1畳み込みでチャネル数を減らし(例:256→64)、3×3畳み込みの計算量を抑え、最後の1×1畳み込みで元のチャネル数に戻す。これにより、パラメータ数と計算コストが大幅に削減される。

2.2.2 計算効率の向上

ボトルネックブロックは、同じ層数の基本ブロックと比較して、約半分のパラメータ数で同等以上の表現力を得る。この設計により、ResNet-152のような超深層モデルでも現実的な計算リソースで学習可能となった。

2.3 主要なバリアント

ResNetには層数が異なる複数のバリアントが存在し、用途や計算リソースに応じて選択される。

2.3.1 ResNet-18・34(浅いモデル)

これらは基本ブロック(2層の3×3畳み込み)を使用し、比較的浅いネットワークである。ResNet-18は18層、ResNet-34は34層の重み層を持つ。軽量でありながら良好な性能を発揮し、組み込み機器やリアルタイム処理にも適する。

2.3.2 ResNet-50・101・152(深いモデル)

これらはボトルネックブロックを使用し、50層、101層、152層の重み層を持つ。特にResNet-152はILSVRC 2015でトップエラー率(3.57%)を達成し、深層学習の可能性を示した。高い精度が要求されるタスクで標準的に利用される。

3 学習と実装の詳細

ResNetの学習には、適切な初期化と最適化手法、データ拡張が重要である。また、大規模データセットで事前学習されたモデルは転移学習に広く活用される。

3.1 重み初期化と最適化手法

ResNetでは、He初期化(活性化関数ReLUに適した初期化)が用いられる。最適化手法としては、SGD(確率的勾配降下法)にモメンタムを組み合わせ、学習率を段階的に減衰させるポリシーが一般的である。バッチサイズは256程度、重み減衰(L2正則化)は0.0001が標準設定として知られる。

3.2 データ拡張と正則化

過学習を防ぐため、ランダムクロップ、水平反転、色相・彩度の変化などのデータ拡張が施される。さらに、DropoutはResNetではあまり使われず、バッチ正規化と重み減衰が主要な正則化手段である。近年では、ラベルスムージングやMixupなどの高度な拡張も適用される。

3.3 転移学習と事前学習済みモデル

ImageNetで事前学習されたResNetの重みは、多くのフレームワーク(PyTorch、TensorFlow)で公開されている。小規模データセットのタスクでは、この事前学習モデルを特徴抽出器として用いるか、全結合層を付け替えてファインチューニングすることで、短期間で高い性能を得られる。

4 応用分野

ResNetは画像認識以外にも、物体検出やセグメンテーションなど多様なタスクで基盤モデルとして利用されている。

4.1 画像分類(ImageNet, CIFAR)

ResNetはImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2015で優勝し、従来のVGGやGoogLeNetを凌駕する精度を達成。CIFAR-10/100などの小規模データセットでも、層数を調整して高い性能を示す。

4.2 物体検出(Faster R-CNN, YOLOへの応用)

Faster R-CNNやYOLOなどの物体検出器では、バックボーンネットワークとしてResNetが広く採用されている。特にResNet-50やResNet-101は、特徴抽出能力と計算効率のバランスが良く、多くのベンチマークで標準的な選択肢となっている。

4.3 セマンティックセグメンテーション

FCN(Fully Convolutional Network)やDeepLabシリーズでは、ResNetをエンコーダとして使用し、特徴マップをアップサンプリングして画素単位のラベル付けを行う。ResNetのスキップ接続は、空間情報の保存にも寄与する。

4.4 その他の領域(医療画像、自然言語処理など)

医療画像診断(CT、MRIの解析)、リモートセンシング、顔認識、映像理解など多岐にわたる分野でResNetが応用されている。また、自然言語処理でも、Transformer以前の時代にはテキスト分類にResNet風の残差接続が導入された例がある。

5 影響と発展

ResNetの残差学習のアイデアは、その後の多くのディープラーニングアーキテクチャに影響を与え、産業界でも広く普及した。

5.1 後続のアーキテクチャへの影響(ResNeXt, DenseNet, EfficientNet)

ResNetの成功を受け、ResNeXtはグループ畳み込みを導入して表現力を向上、DenseNetは密なスキップ接続で特徴再利用を促進、EfficientNetはネットワークの深さ・幅・解像度を同時にスケーリングして効率性を追求した。これらはいずれも残差接続の概念を基本としている。

5.2 産業界での採用とオープンソース実装

主要なクラウドプラットフォーム(AWS、GCP、Azure)の画像認識API、自動運転の物体検出、スマートフォンのカメラアプリなど、多くの実システムでResNetが搭載されている。PyTorch、TensorFlow、Keras、Caffeなどのフレームワークには標準実装があり、研究者やエンジニアが容易に利用できる。