今回実装した論文
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, "Deep Residual Learning for Image Recognition", CVPR 2016.
リンクはこちら
どんなもの?
- ResNet (Residual Network, 2015, He et al.)
- 深層ニューラルネットで問題になっていた 勾配消失・勾配爆発 を根本的に緩和するために提案されたアーキテクチャ。
- 各ブロックに「恒等写像(skip connection)」を追加し、
$$
y = F(x) + x
$$
の形で次の層へ伝える。
- この仕組みによって、100層以上の超深層ネットでも実用的に学習できるようになり、ImageNet などで圧倒的な成果を出した。
どうやって有効だと検証したか?
ResNet 論文では以下の方法で有効性を確認している。
-
Plain Network との比較
深さを揃えたネットワークで残差接続あり/なしを比較。
→ 残差接続ありの方が訓練誤差・検証誤差とも低く、最適化が容易であることを確認。 -
深層化による性能向上
ResNet-50/101/152 と層を増やすと精度が向上。
→ ResNet-152 は ImageNet で Top-5 error 4.49%、アンサンブルで 3.57%(ILSVRC2015 優勝)。 -
CIFAR-10 での超深層実験
20〜110 層まで深くするほど誤差が減少。
→ 1000 層超(ResNet-1202)でも学習可能で、最適化の安定性を確認。 -
他タスクへの一般化
Faster R-CNN の backbone を ResNet に置換。
→ PASCAL VOC / COCO の検出・セグメンテーションでも精度大幅改善。
先行研究と比べてどこがすごいか?
- 従来の問題: 深層化すると性能が飽和・低下する(degradation problem)
- 先行研究では初期化手法や正規化(BatchNorm など)で緩和を試みたが、根本的に「勾配が伝わらない/大きくなりすぎる」問題は残っていた。
- ResNet は「恒等写像」を導入することで、
- 勾配消失: 確実に勾配が届く経路を保証
- 勾配爆発: 勾配のスケールが skip connection によって安定化
- その結果、深層化しても学習性能が下がらず、むしろ層を増やすほど表現力が向上することを示した。
良さ、悪さの議論はあるか?
ResNet は残差接続によって深いネットワークでも最適化が可能になり、ImageNet では層を増やすほど精度が向上した(ResNet-152 が SOTAを達成)。
一方で、小規模データセット(例: CIFAR-10)では層を増やしすぎると過学習が起こり、汎化性能が必ずしも向上するとは限らない。
データセットの規模に応じて適切な深さを選択することが重要。
技術や手法の肝はどこか?
スキップ接続による恒等写像
ResNet の核心は スキップ接続(skip connection) によって恒等写像が組み込まれている点にある。
1ブロックは次のように表せる:
$$
y = F(x) + x
$$
ここで $F(x)$ は学習すべき残差関数。
勾配伝播の数式的理解
逆伝播では
$$
\frac{\partial L}{\partial x}=
\frac{\partial L}{\partial y}
\cdot
\left(I + \frac{\partial F}{\partial x}\right)
$$
$I$ は恒等写像(ヤコビアンの単位行列)を表す。
-
勾配消失に効く理由
$ \frac{\partial F}{\partial x} $ が小さくても $I$ があるため、勾配がゼロにならず伝わる。 -
勾配爆発に効く理由
係数の積み重ねではなく $(I + \frac{\partial F}{\partial x})$ の形になるので、指数関数的な増幅が抑えられる。
直感的なイメージ
-
通常のネットワーク
勾配は各層で 0.9 倍や 1.5 倍され、指数的に縮小(消失)または増幅(爆発)する。 -
ResNet
勾配には 2つのルートがある:- 残差経路 $F(x)$ を通るルート(縮小や増幅の影響を受けやすい)
- スキップ接続 $x \to x$ のルート(恒等写像としてそのまま伝わる)
この ② の「直通経路」があることで、勾配が消えきったり爆発したりしにくくなる。
次に読むべき論文は何か?
ResNet は 2015 年の技術水準に基づいた研究であり、当時はまだ学習の安定化や正則化の工夫が十分に確立されていなかった。そのため、ResNet の後に登場した 学習スケーリング、正規化、正則化、活性化関数 などに関する論文を追い、これらがどのように実装されて現在の深層学習の基本技術として組み込まれていったのかを理解することが次のステップになる。
また計算資源が限られている環境では ResNet クラスの実験でも精一杯だが、近年の論文は必ずしも「大規模計算ありき」ではない。効率的な学習や軽量化を目的とした研究も多いため、そうした最新の動向にも少しずつ触れていく価値がある。