スキップコネクションとは、深層学習のニューラルネットワークにおいて、ある層の出力を中間の層を飛ばして先の層へ直接伝達する技術です。層を深くした際に生じる勾配消失問題などを防ぎ、モデルの学習を安定化・高速化させる役割を果たします。ResNetなどの代表的なモデルで広く採用されています。
スキップコネクションとは
スキップコネクションを一言でいうと、ニューラルネットワークの途中の処理を飛び越えて信号を直接先の層へと渡すバイパス構造のことです。
詳しく解説
深層学習では、ニューラルネットワークの層を増やすほど複雑な表現を学習できるようになりますが、層が過剰に深くなると学習時に勾配消失問題が発生し、かえって精度が低下することがあります。スキップコネクションは、入力信号をそのまま後続の層の出力に加算または結合することで、情報や勾配がネットワーク全体へスムーズに伝達されるようにします。代表的な実装としてResNetの残差接続があり、これにより数百層を超える超深層モデルの安定した学習が可能となりました。また、画像分割に用いられるU-Netのように、浅い層の高解像度な特徴量を直接深い層へ渡す目的でも使用されます。
具体例・使われ方
主な利用例として、画像認識で高い性能を示すResNetがあります。ResNetでは、処理前のデータをスキップコネクションで迂回させて処理後の出力に加算します。また、医療画像解析などで使われるU-Netでは、物体の細かい位置情報を保持するために、符号化器の特徴マップをスキップコネクションによって復号化器に直接連結して利用します。
似た用語との違い
スキップコネクションと残差接続はしばしば同じ意味で使われますが、正確には残差接続はスキップコネクションの一種です。スキップコネクションは層を飛ばして情報を伝える仕組み全般を指す一般的な概念であり、要素ごとに加算するタイプ(残差接続)や、特徴量をそのまま結合・連結するタイプ(DenseNetなどで用いられる構造)などのバリエーションが含まれます。
注意点
スキップコネクションを導入しても、無条件にモデルの性能が無限に向上するわけではありません。情報を結合するタイプの構成では、途中の特徴量を保持し続けるためメモリ使用量が増大する傾向があります。また、対象とするタスクやデータに対してネットワーク構成が不適切である場合、期待した効果が得られないことや過学習の原因となることもあります。