G検定 › Web参考書 › 第5章

スキップ結合とResNet(残差学習、劣化問題、DenseNet・U-Netへの発展)

第5章 ディープラーニングの要素技術 / 節 5

シラバスのキーワード: ResNetスキップ結合残差学習

本文を読んだあと、覚えているか確認してください。

マンガで学ぶ スキップ結合(ResNet)

Ai と みお の4ページ。上から順に読んでください。

スキップ結合(ResNet)の解説マンガ 1/4ページスキップ結合(ResNet)の解説マンガ 2/4ページスキップ結合(ResNet)の解説マンガ 3/4ページスキップ結合(ResNet)の解説マンガ 4/4ページ

このマンガのページ マンガ一覧

深くすると起きる問題

ResNet以前、ネットワークを単純に深くしていくと、勾配消失によって学習が進まなくなり、訓練誤差さえ浅いモデルより悪化する劣化問題が起きていました。

スキップ結合(残差学習)

ResNet(2015年、マイクロソフトリサーチのカイミング・ヘーら)は、層の出力に入力をそのまま加えるスキップ結合を導入しました。層は「入力から出力への変換」ではなく「入力にどれだけ変化を加えるか」という残差だけを学習すればよく、必要なければ残差を0にして恒等写像を実現できます。勾配もスキップ結合を通って直接伝わるため、150層を超える深さでも学習でき、ILSVRC 2015で優勝しました。

発展モデル

試験で問われる観点

この節の練習問題(5問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    ResNetで導入された「スキップ結合」の仕組みと効果の説明として最も適切なものを選びなさい。
    1. 1畳み込みカーネルの要素の間隔を空けて適用する経路を設け、層はより広い範囲の文脈を一度に参照できるようになる。パラメータを増やさずに受容野が広がり、セグメンテーションで高解像度の出力を保てるようになった
    2. 2各層の入力をミニバッチ単位で平均0・分散1に正規化する処理を設け、層は入力分布の変化(内部共変量シフト)に左右されにくくなる。大きな学習率でも学習が安定し、重みの初期値への依存が小さくなった
    3. 3層の入力をいくつか先の層の出力に直接足し合わせる経路を設け、層は入力との差分(残差)だけを学習すればよくなる。勾配が経路を通って伝わりやすくなり、100層を超える深いネットワークでも学習できるようになった
    4. 4層の一部のノードを学習中にランダムに無効化する処理を設け、層は特定のノードに依存しない冗長な表現を学習するようになる。複数のネットワークを平均する効果が生まれ、過学習が抑えられるようになった
    答えと解説

    正解: 3

    2015年にHeらが提案したResNet(Residual Network)は、入力xを層の出力F(x)に加えてF(x)+xを次に渡すスキップ結合(残差結合)を導入しました。層は恒等写像からの差分を学ぶだけでよく、勾配が近道を通って入力側まで届くため勾配消失が緩和され、152層のモデルでILSVRC 2015に優勝しました。ランダムな無効化はドロップアウト、間隔を空ける畳み込みはDilated Convolution、ミニバッチ単位の正規化はバッチ正規化です。

  2. 問2
    ResNet以前、ネットワークを単純に深くしていくと起きていた問題として最も適切なものを選びなさい。
    1. 1層を増やすほど訓練誤差は下がり続けたが、テスト誤差だけが悪化する過学習が起き、ドロップアウトでは対処できなかった
    2. 2層を増やすと特徴マップのサイズが層ごとに大きくなり、GPUのメモリに収まらなくなって学習を続けられなかった
    3. 3層を増やすとパラメータの多くが学習中に0に収束し、実質的に浅いネットワークと同じ表現力しか持てなくなった
    4. 4層を増やしても精度が上がらず、むしろ訓練誤差まで悪化する劣化問題が起き、勾配消失によって深い層の学習が困難だった
    答えと解説

    正解: 4

    理論上は深いネットワークの方が表現力が高いはずですが、実際には20層程度を超えると訓練誤差すら悪化する「劣化問題」が観測されていました。誤差逆伝播で勾配が消失し、入力側の層が学習できないことが主な原因です。スキップ結合は勾配の通り道を確保することでこの問題を解決し、非常に深いネットワークの学習を可能にしました。

  3. 問3
    ResNetの残差ブロックにおいて、層が学習する対象の説明として最も適切なものを選びなさい。
    1. 1入力から出力への変換そのものではなく、入力と出力の差分(残差)を学習し、入力をそのまま足し合わせて出力する
    2. 2入力を前のブロックの出力との差分に置き換えて学習し、差分が0に近づいたブロックから順に取り除いて層数を減らしていく
    3. 3入力と出力の差分(残差)ではなく、入力から出力への変換そのものを学習し、入力は次のブロックには渡さずに破棄する
    4. 4前のすべての層の出力をチャネル方向に連結して次の層に渡し、各層はその連結された特徴から変換を学習する
    答えと解説

    正解: 1

    残差ブロックでは、層の出力に入力をそのまま加える(スキップ結合)ことで、層は「入力にどれだけ変化を加えるか」という残差だけを学習すればよくなります。必要なければ残差を0にして恒等写像を実現できるため、層を深くしても性能が劣化しにくく、勾配もスキップ結合を通って伝わりやすくなります。

  4. 問4
    スキップ結合の考え方を発展させたモデルに関する記述として、最も適切なものを選びなさい。
    1. 1DenseNetは各層の出力を1つ前の層にのみ戻すことでパラメータを削減し、U-Netはスキップ結合を用いて画像全体を1つのクラスに分類するモデルでセグメンテーションには使えない
    2. 2DenseNetは各層の出力を後続のすべての層に渡すことで特徴の再利用を促し、U-Netはエンコーダの特徴マップをデコーダの対応する層に結合して位置情報を保持する
    3. 3DenseNetとU-NetはいずれもResNetのスキップ結合を廃止して単純な直列構造に戻したモデルで、層を深くする代わりにカーネルサイズを大きくして受容野を広げている
    4. 4U-Netは各層の出力を後続のすべての層に渡すことで特徴の再利用を促し、DenseNetはエンコーダの特徴マップをデコーダの対応する層に結合して位置情報を保持する
    答えと解説

    正解: 2

    DenseNetはブロック内の各層が前のすべての層の出力を入力として受け取る密な結合を持ち、少ないパラメータで高い精度を実現します。U-Netはエンコーダ・デコーダ構造にスキップ結合を加え、縮小で失われる位置の情報をデコーダに渡すことでセマンティックセグメンテーションに高い性能を示します。スキップ結合はTransformerなど多くのモデルで使われる基本的な要素です。

  5. 問5
    ResNetの発展モデルのうち、深さの代わりにチャネル数(幅)を増やし、浅くても高精度で学習効率が良いものとして最も適切なものを選びなさい。
    1. 1DenseNet
    2. 2U-Net
    3. 3Wide ResNet
    4. 4Vision Transformer
    答えと解説

    正解: 3

    Wide ResNetはResNetの層を深くする代わりにチャネル数を増やしたモデルです。DenseNetはブロック内の各層が前のすべての層の出力を受け取る密な結合、U-Netはエンコーダの特徴マップをデコーダに結合するセグメンテーション向けのモデルです。Vision TransformerはTransformerを画像に応用したモデルで、ResNetの発展形ではありません。