スキップ結合(シラバス 技術21)

学習目標

層を深くすると学習がかえって難しくなる問題に対して、層を飛び越えて入力を出力に足すスキップ結合がどう働くかを理解し、それを使って非常に深いネットワークを実現したResNetの構成と、その考え方が他のモデルにどう広がったかを説明できるようにします。

要点

深くすると学習しにくくなる

層を重ねるほど複雑な特徴を学べるはずですが、単純に層を増やすと、かえって性能が落ちることがあります。ResNetの論文では、CIFAR-10という画像データで、56層の普通のネットワークが20層のものより訓練誤差もテスト誤差も大きくなりました。訓練誤差まで悪くなるので、過学習ではありません。深いネットワークは、うまく最適化すること自体が難しいのです。なお、この実験はバッチ正規化を入れて行われており、論文はこの劣化を勾配消失だけでは説明できない問題としています。

スキップ結合の仕組み

スキップ結合は、いくつかの層を飛び越えて入力をそのまま後ろへ渡し、層の出力に足し合わせる経路です。ショートカット接続とも呼ばれます。

  • 普通の層の積み重ね:入力xから、目標の出力H(x)を直接作ろうとします。
  • 残差ブロック:間の層はF(x)を作り、ブロックの出力は F(x) + x になります。間の層が学ぶのは、目標と入力の差 F(x) = H(x) − x(残差)です。

この形には2つの利点があります。

  • 入力をほぼそのまま通すのがよい場合、F(x)を0に近づけるだけで済みます。層を足しても性能を下げにくくなります。
  • 逆伝播のとき、勾配が足し算の経路を通って前の層へそのまま届くため、勾配消失が起きにくくなります。

ResNet

ResNetは、残差ブロックを積み重ねたCNNで、2015年にマイクロソフトの研究者らが発表しました。152層のモデルを含むアンサンブルでILSVRC 2015の画像分類部門に優勝し、CIFAR-10では1,000層を超えるモデルも学習できることを示しました。

  • 50層以上のモデルでは、1×1の畳み込みでチャンネル数を減らし、3×3で畳み込み、再び1×1で戻すボトルネック構造で計算量を抑えます。
  • 縦横のサイズやチャンネル数が変わるブロックでは、ショートカット側を1×1の畳み込みなどで変換して形をそろえます。

ResNetには、入力から出力まで長さの違う経路が多数あります。そのため、浅いネットワークをたくさん組み合わせたアンサンブルのように振る舞うという解釈もあります。学習後にブロックを1つ取り除いても、性能があまり落ちないことが報告されています。

似た仕組みとの違い

仕組み入力の合わせ方代表例
ResNetのスキップ結合入力を出力に足すResNet、Wide ResNet
ゲート付きの経路入力を通す割合をゲートで学習するHighway Network
連結特徴マップをチャンネル方向につなぐDenseNet、U-Net

スキップ結合の考え方は画像以外にも広がり、Transformerでも各層の入力と出力を足し合わせる残差接続が使われています。

G検定で問われる深さ

残差ブロックの形(出力=間の層の出力+入力)、深くしても学習しやすくなる2つの理由、ResNetが2015年のILSVRCで優勝したことを押さえれば十分です。ボトルネック構造の細部、各層のチャンネル数、派生モデルの精度の数値までは覚える必要はありません。

つまずきやすい点

  • 層を深くしたときの性能低下は、訓練誤差まで悪くなる現象であり、訓練誤差は小さいのにテスト誤差だけが大きい過学習とは別のものである点
  • ResNetのスキップ結合は入力を出力に足し合わせ、DenseNetやU-Netは特徴マップをチャンネル方向に連結する、という合わせ方の違い
  • 基本のスキップ結合は入力をそのまま渡すだけで重みを持たず、縦横のサイズやチャンネル数が変わる箇所でだけ1×1の畳み込みなどで形をそろえる点
  • スキップ結合はResNetだけの仕組みではなく、Transformerの各層にも残差接続として組み込まれている点

シラバスのキーワード

ResNet

練習問題

  1. 深層化による訓練誤差の悪化
  2. スキップ結合の働きと応用先
  3. 射影ショートカットの重みの数

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術21

改訂履歴

ディープラーニングの要素技術の中項目
  1. 全結合層
  2. 畳み込み層
  3. 正規化層
  4. プーリング層
  5. スキップ結合
  6. 回帰結合層
  7. Attention
  8. オートエンコーダ
  9. データ拡張

表示設定

テーマ
文字の大きさ
問題演習