ResNet れすねっと
ResNet残差ネットワーク残差接続深層学習ImageNet画像認識
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-18 | 18 | 1100万 | 69.8% | 軽量・組み込み |
| ResNet-34 | 34 | 2100万 | 73.3% | バランス型 |
| ResNet-50 | 50 | 2500万 | 76.1% | 最もよく使われる |
| ResNet-101 | 101 | 4400万 | 77.4% | 高精度 |
| ResNet-152 | 152 | 6000万 | 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)で削減 |
関連用語
- 残差接続(Residual Connection) — ResNetの核心技術
- VGGNet — ResNetの前身となったCNNアーキテクチャ
- EfficientNet — ResNetを効率的にスケールした後継モデル
- 勾配消失 / 勾配爆発 — ResNetが解決した問題
- 転移学習 — ResNet-50が定番ベースとして使われる技術