1行定義
ResNetとは、数層ごとに入力を出力へ直接足し合わせるスキップ結合を使い、100層を超える深さでも学習できるようにしたCNNのことです。
くわしく
ResNet(Residual Network)は、Kaiming Heらが2015年に発表したCNNです。ImageNet向けには最大152層という当時としては非常に深いモデルを示し、2015年のILSVRCの画像分類部門で優勝しました。
深くすると起きる「劣化問題」
層を深くすれば、表現力は上がるはずです。ところが実際には、ある程度より深くすると、訓練データに対する誤差まで悪化しました。これは過学習ではありません。深いネットワークの最適化が難しいことによる現象で、劣化問題と呼ばれます。
残差学習とスキップ結合
ResNetは、数層ごとに入力を飛ばして出力に足し合わせる経路(スキップ結合、ショートカット接続)を設けました。間の層の出力をF(x)とすると、ブロックの出力はH(x) = F(x) + xになります。間の層は、目標の出力そのものではなく、入力との差分(残差)F(x)だけを学べばよくなります。これを残差学習といいます。
何もしないのが最善な層なら、F(x)を0に近づけるだけで済みます。そのため、層を足しても性能が悪化しにくくなります。また、誤差逆伝播のときに勾配がスキップ結合を通って直接伝わるため、勾配消失も起きにくくなります。
構成の工夫
50層以上のモデルでは、1×1、3×3、1×1の畳み込みを重ねたボトルネック構造で計算量を抑えています。各畳み込みの直後にはバッチ正規化を入れ、最後はグローバルアベレージプーリングでまとめます。
影響
ResNetの登場で、100層を超えるネットワークも学習できるようになりました。層の幅を広げたWide ResNetなどの派生モデルも生まれています。足し算の代わりに前の層の出力を連結するDenseNetは、ResNetとよく比べられるモデルです。スキップ結合の考え方は、Transformerにも取り入れられています。
覚え方
「全部を学ぶのではなく、入力との差分だけを学ぶ」と覚えます。
G検定での出題
出題のされ方
スキップ結合と残差学習の仕組み、深くしても劣化や勾配消失が起きにくい理由、2015年のILSVRCでの優勝、DenseNetやWide ResNetなどの派生モデルとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| ResNetこのページの用語 | 数層ごとに入力を出力へ直接足し合わせるスキップ結合を使い、100層を超える深さでも学習できるようにしたCNN |
| DenseNet | ブロック内の各層に、それより前のすべての層の出力をチャネル方向に連結して入力する、密な結合をもつCNN |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
ResNetは、2015年のILSVRCの画像分類部門で優勝したモデルである。
答えを見る
答え ◯ 正しい
152層のモデルを含むアンサンブルで、テストデータのtop-5誤り率3.57%を達成しました。VGGの約8倍の深さです。
-
ResNetの残差ブロックでは、間の層が、ブロックの出力そのものではなく、出力と入力の差分を学習する。
答えを見る
答え ◯ 正しい
ブロックの出力をH(x)とすると、間の層はF(x) = H(x) − xを学びます。何もしないのが最善なら、F(x)を0に近づけるだけで済みます。
-
ResNetの基本のスキップ結合は、学習するパラメータを大量に追加することで表現力を高める仕組みである。
答えを見る
答え × 誤り
基本のスキップ結合は入力をそのまま足すだけで、パラメータを追加しません。チャネル数などが変わる箇所でのみ、1×1の畳み込みなどで形をそろえます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目21 スキップ結合)
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目26 画像認識)
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition (2015)