コンピュータービジョン

ResNet れすねっと

ResNet残差ネットワーク残差接続深層学習ImageNet画像認識
ResNetについて教えて

簡単に言うとこんな感じ!

ResNetは「残差接続(スキップ接続)」で100層以上の超深いネットワークを学習可能にしたモデルだよ。2015年のImageNetで152層のResNetが人間の認識精度を初めて超えて優勝!「層を足すほど精度が上がる」という常識を確立した歴史的なモデルなんだ!


ResNetとは

ResNet(Residual Network:残差ネットワーク) は、2015年にMicrosoftのKaiming Heらが発表した残差接続(Residual Connection)を使った深層CNNアーキテクチャです。ILSVRC 2015で全部門(分類・検出・局所化)を制覇し、エラー率3.57%で初めて人間の識別精度(約5%)を超えました

ResNet以前は層を重ねるほど精度が下がる「劣化問題(Degradation Problem)」があり、実用的なネットワークは約30層が限界でした。ResNetは H(x) = F(x) + x という残差接続により、「何もしない(恒等写像)」を学習しやすくすることでこの問題を解決し、152層のネットワークを実用化しました。

残差接続のアイデアはその後Transformerにも採用され、深層学習全体の設計原則となっています。


ResNetの主要バリアント

モデル層数パラメータ数Top-1精度主な用途
ResNet-18181100万69.8%軽量・組み込み
ResNet-34342100万73.3%バランス型
ResNet-50502500万76.1%最もよく使われる
ResNet-1011014400万77.4%高精度
ResNet-1521526000万78.3%ILSVRC 2015優勝
import torchvision.models as models

# 学習済みResNet-50をロード
resnet50 = models.resnet50(pretrained=True)

# 転移学習用にFC層を変更
import torch.nn as nn
resnet50.fc = nn.Linear(2048, 5)  # 5クラス分類

# ResNetのボトルネックブロックの構造
# 1×1 Conv(圧縮)→ 3×3 Conv(特徴抽出)→ 1×1 Conv(展開)+ Skip Connection

歴史と背景

  • 2015年12月:論文「Deep Residual Learning for Image Recognition」を発表
  • 2015年ILSVRC:152層ResNetがエラー率3.57%で人間の精度を超えて優勝
  • 2016〜現在:ResNetの残差接続がTransformerにも採用され、深層学習の設計原則に
  • 現在:ResNet-50が「転移学習の定番ベースモデル」として実務で幅広く使用

ResNetが解決した問題

問題詳細ResNetの解決策
劣化問題層を増やすと精度が下がる残差接続で恒等写像を学習しやすくする
勾配消失深い層に勾配が届かないスキップ接続で勾配の経路を確保
計算効率全パラメータ展開でコスト大ボトルネック構造(1×1→3×3→1×1)で削減

関連用語