残差学習とは

残差学習は、ニューラルネットワークにおいて、入力と出力の間の直接的なマッピング(写像)を学習する代わりに、入力と出力の間の残差(Residual、差分)のみを学習させるための学習手法のことであり、恒等写像(Identity Mapping)を容易に学習できる構造(残差ブロック)を導入することで、勾配消失問題を防ぎ、極めて深い層を持つディープニューラルネットワーク(Residual Network, ResNet)の訓練を可能にした、ディープラーニングにおけるブレイクスルーとなった技術のことです。

残差学習の概要と深いネットワークの課題

残差学習(Residual Learning)は、2015年にResNet(Residual Network)として提案され、特に画像認識タスクにおいて、層を深くすることの限界を打ち破りました。

1. 勾配消失問題と退化問題

ニューラルネットワークにおいて層を深くすることは、より抽象的で複雑な特徴量を学習できるため、性能向上に不可欠であると考えられていました。しかし、層を深くすると、以下の二つの課題が顕著になります。

  • 勾配消失問題: 誤差逆伝播法において、勾配が前の層に伝わるにつれて指数関数的に小さくなり、入力層側の重み更新がほとんど行われなくなる現象です。
  • 退化問題(Degradation): 勾配消失とは独立に、ネットワークの層を増やしても、むしろ訓練誤差が増加し、性能が飽和または低下してしまう現象です。これは、深くした層が恒等写像(入力をそのまま出力する写像)を学習することが極めて困難であるために起こるとされていました。

2. 残差学習のアイデア

残差学習の核心は、「 $H(x)$ という複雑な写像全体を学習するよりも、恒等写像 $x$ との差分 $F(x)$ のみを学習する方が簡単ではないか」という発想に基づいています。

  • 目標とする写像: $H(x)$
  • 残差写像: $F(x) = H(x) – x$
  • 学習対象: ネットワークが直接学習するのは $F(x)$ のみです。

したがって、残差学習では、 $H(x)$ を $H(x) = F(x) + x$ として表現し、ネットワークは $x$ の情報に「残差 $F(x)$」を付け加えることで $H(x)$ を実現します。

残差ブロック(Residual Block)の構造

残差学習を実現するために導入されたのが、残差ブロック(Residual Block)です。このブロックは、入力 $x$ をスキップして出力に直接加算するショートカット接続(Skip Connection)を特徴とします。

1. 構造

残差ブロックの出力 $H(x)$ は、通常の層を通過した変換結果 $F(x)$ と、入力 $x$ をそのままバイパスしてきた値の合計として定義されます。

H(x) = F(x) + x

ここで、 $F(x)$ は通常、ReLUなどの非線形活性化関数と重み層(例:畳み込み層)の連なりを指します。

2. 恒等写像の学習容易性

このショートカット接続のおかげで、ネットワークが $H(x)$ を恒等写像($H(x) = x$)として学習する必要がある場合、単に残差写像 $F(x)$ をゼロにするという非常に簡単なタスクに帰着します。これは、重みが全てゼロに近い状態から学習を開始すれば容易に実現できます。

もし、深くした層が「何もしないこと(恒等写像)」を学習したい場合、従来のネットワークでは難しい一方で、残差ブロックは $F(x) \approx 0$ を学習することで効率的に恒等写像を達成できます。

3. 勾配伝播の改善

ショートカット接続は、誤差逆伝播においても決定的な役割を果たします。勾配は、通常のパス $F(x)$ を通るだけでなく、微分値が常に1であるバイパスパス $x$ を通って、前の層へそのまま伝達されます。

このパスが存在することにより、勾配が減衰することなく深い層に到達することが保証され、勾配消失問題が効果的に緩和されます。これにより、ResNetは150層を超えるような極めて深いネットワーク構造でも安定して訓練することが可能となり、ディープラーニングの応用範囲を大きく拡大しました。

関連用語

深層学習・ディープラーニング | 今更聞けないIT用語集
勾配消失問題 | 今更聞けないIT用語集
AIソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。