ニューラルネットワークの順伝播と逆伝播の仕組み考察|深層学習の基礎を理解する

ニューラルネットワークの順伝播と逆伝播の仕組み考察|深層学習の基礎を理解する

更新日:2025年12月14日

深層学習(ディープラーニング)を学ぶ上で避けて通れないのが、順伝播(フォワードプロパゲーション)と逆伝播(バックプロパゲーション)の理解です。これらの概念は数式が多く登場するため難しく感じる方も多いのではないでしょうか。筆者も深層学習の学習を進める中で、これらの仕組みがどのように連携して学習を実現しているのか、個人的な関心から調査・考察してみました。本記事では、順伝播と逆伝播の基本原理から活性化関数、勾配消失問題までを整理しています。深層学習の基礎を把握したい方の参考になれば幸いです。
ニューラルネットワークの順伝播と逆伝播の仕組み考察|深層学習の基礎を理解する

1. ニューラルネットワークの基本構造と順伝播

ニューラルネットワークは、人間の脳の神経回路を模倣した計算モデルである。ノード(ニューロン)とエッジ(結合)を微分可能な演算によって連結した構造を持ち、入力層、隠れ層(中間層)、出力層の3つの層から構成される。各エッジには重みが割り当てられ、この重みの調整によって「学習」が実現される。

1.1 順伝播の概念

順伝播(Forward Propagation)とは、ニューラルネットワークにおいて入力層から出力層への方向を順方向として、入力変数とパラメータを掛け合わせて予測値を計算する処理を指す。入力が与えられたとき、ニューラルネットワークの各層を順番に計算していき、出力まで計算を行うことが順伝播の本質である。

順伝播の計算では、主に2つの変換が繰り返される。1つ目は線形変換であり、入力値に重みを掛けてバイアスを加算する処理である。2つ目は非線形変換であり、活性化関数を通して出力値を変換する処理となる。

順伝播の計算式
線形変換:u = Wx + b(W:重み行列、x:入力、b:バイアス)
非線形変換:z = f(u)(f:活性化関数)

1.2 線形変換と重み付き和

各ノードへの入力は、前の層からの出力に重みを掛けた値の総和にバイアス項を加えた「重み付き線形和」として計算される。例えば、前の層に3つのノードがある場合、次の層の1つのノードへの入力uは、u = w₁x₁ + w₂x₂ + w₃x₃ + b という形式で表現される。

この線形変換だけでは、ニューラルネットワークは複雑なパターンを学習することができない。なぜなら、線形変換を何層重ねても、結果は1つの線形変換と等価になってしまうためである。そこで、非線形性を導入するために活性化関数が使用される。

1.3 活性化関数の役割

活性化関数は、ニューラルネットワークにおいてノードの線形変換後に適用する非線形変換を行う関数である。活性化関数を用いることでモデルの表現力が増し、複雑なパターンの学習が可能となる。

代表的な活性化関数として、シグモイド関数、tanh関数、ReLU関数などがある。出力層では、分類問題の場合はソフトマックス関数が、回帰問題の場合は恒等関数が使用されることが多い。ソフトマックス関数は出力値の総和を1に正規化するため、各クラスへの所属確率として解釈できる。

2. 誤差逆伝播法の仕組みと数学的背景

2.1 誤差逆伝播法とは

誤差逆伝播法(Backpropagation)は、ニューラルネットワークの学習において、出力と正解データとの差(誤差)をネットワークの各層に遡って伝播させるアルゴリズムである。1986年にRumelhartらによって提唱され、深層学習の基盤技術として広く普及した。

順伝播ではデータが入力層から隠れ層を通り出力層へと流れるのに対し、逆伝播は文字通り逆向きに、出力層から入力層に向かって損失関数の勾配を計算する。この勾配を用いてパラメータ(重みとバイアス)を更新することで、モデルの予測精度が向上していく。

2.2 連鎖律と勾配計算

誤差逆伝播法の数学的基盤となるのが、微分の連鎖律(Chain Rule)である。ニューラルネットワークは複数の関数の合成として表現できるため、合成関数の偏微分は連鎖律によって複数の偏微分の積の形に分解できる。

具体的には、出力側から入力側に向かって、順伝播とは逆向きに各関数における入力についての勾配を求めて掛け合わせていく。この計算過程で共通する項目を逆方向から伝播していくことで、計算量の削減が実現される。

連鎖律の適用例
損失関数Lをパラメータwで微分する場合:
∂L/∂w = (∂L/∂y) × (∂y/∂u) × (∂u/∂w)
各項を順に計算し、掛け合わせることで目的の勾配が得られる。

2.3 勾配降下法によるパラメータ更新

逆伝播によって計算された勾配を用いて、パラメータを更新するのが勾配降下法である。目的関数(損失関数)が最小値を与えるようなパラメータを探索するため、勾配の逆方向にパラメータを少しずつ更新していく。

更新式は w_new = w_old - η × (∂L/∂w) と表される。ここでηは学習率と呼ばれるハイパーパラメータであり、1回の更新でどの程度パラメータを変化させるかを制御する。学習率が大きすぎると最適値を飛び越えてしまい、小さすぎると学習に時間がかかるため、適切な設定が重要となる。

2.4 学習の全体フロー

ニューラルネットワークの学習は、以下のステップを繰り返すことで進行する。

ステップ 処理内容 計算方向
1. 順伝播 入力データから予測値を計算 入力層 → 出力層
2. 損失計算 予測値と正解との誤差を算出 出力層
3. 逆伝播 各パラメータの勾配を計算 出力層 → 入力層
4. パラメータ更新 勾配降下法で重みとバイアスを更新 全層
誤差逆伝播法の歴史
1960年代:自動微分の概念が登場
1986年:Rumelhartらが誤差逆伝播法を発表
1991年:Hochreiterが勾配消失問題を特定
2006年:Hintonらが深層学習の可能性を示す
2010年代:GPU活用により大規模学習が実用化

3. 活性化関数と勾配消失問題への対策

3.1 勾配消失問題とは

勾配消失問題(Vanishing Gradient Problem)は、機械学習において勾配ベースの学習手法と誤差逆伝播法を利用してニューラルネットワークを学習する際に、誤差逆伝播に必要な勾配が非常に小さくなり、学習が進まなくなる問題である。

この問題は、誤差逆伝播法が下位層(入力層側)に進んでいくにつれて顕著になる。シグモイド関数の微分値は最大でも0.25であるため、複数の層を通過するたびに勾配が指数関数的に小さくなってしまう。その結果、下位層のパラメータはほとんど更新されず、学習が最適値に収束しなくなる。

シグモイド関数と勾配消失
シグモイド関数 σ(x) = 1/(1+e^(-x)) の微分は σ'(x) = σ(x)(1-σ(x)) となる。この値の最大は入力が0のときの0.25であり、この小さな値が層を通過するごとに掛け合わされることで勾配が消失していく。

3.2 活性化関数の比較

勾配消失問題を緩和するため、様々な活性化関数が開発されてきた。以下の表に代表的な活性化関数の特徴を整理する。

活性化関数 出力範囲 微分値 特徴・用途
シグモイド 0〜1 最大0.25 確率出力に適するが勾配消失が起きやすい
tanh -1〜1 最大1.0 出力が0中心で学習が安定しやすい
ReLU 0〜∞ 0または1 現在最も広く使用、勾配消失が起きにくい
Leaky ReLU -∞〜∞ 0.01または1 ReLUの「死んだニューロン」問題を改善
ソフトマックス 0〜1(総和1) 多クラス分類の出力層で使用

3.3 ReLU関数の優位性

ReLU(Rectified Linear Unit)関数は、現在の深層学習で最も広く使用されている活性化関数である。正の入力に対してはそのままの値を出力し、負の入力に対しては0を出力するという単純な構造を持つ。

ReLU関数の最大の利点は、正の領域では微分値が常に1となるため、勾配消失が起きにくい点にある。また、計算式が単純であるため処理速度も向上する。ただし、負の領域では微分値が0となるため、一度ニューロンが「死んで」しまうと復活しないという問題(dying ReLU問題)も存在する。この問題を改善するため、Leaky ReLUやELU、SELUなどの派生版が開発されている。

3.4 その他の勾配消失対策

活性化関数の選択以外にも、勾配消失問題に対処するための様々な技術が開発されている。

勾配消失問題への対策手法

  • 重みの初期化:Xavier初期化やHe初期化など、活性化関数に応じた適切な初期値設定により勾配の伝播を安定化。
  • バッチ正規化:各層の入出力を正規化することで、勾配の消失や発散を防ぎ学習を安定化。2015年に提案され広く普及。
  • スキップ接続(ResNet):層を飛び越えて直接接続することで、勾配の情報損失を減少させ深層ネットワークの学習を可能に。
  • LSTM/GRU:RNNにおける勾配消失問題を解決するため、ゲート機構を導入した構造。時系列データの長期依存関係を学習可能。

3.5 実務への示唆

順伝播と逆伝播の仕組みを理解することは、ニューラルネットワークの設計や学習のトラブルシューティングにおいて重要となる。学習が進まない場合には、勾配消失が原因である可能性を検討し、活性化関数の変更や初期化方法の見直しを行うことが有効である。

また、深層学習フレームワーク(PyTorch、TensorFlowなど)は自動微分機能を備えており、逆伝播の計算を自動的に行ってくれる。しかし、その内部で何が行われているかを理解しておくことで、より適切なモデル設計やハイパーパラメータ調整が可能となる。

まとめ
順伝播は入力から予測値を計算する処理であり、逆伝播は誤差を基に各パラメータの勾配を計算する処理である。両者は微分の連鎖律によって数学的に結び付けられており、この仕組みがニューラルネットワークの学習を可能にしている。勾配消失問題に対しては、ReLU関数の採用や適切な重み初期化、バッチ正規化などの対策が有効である。
参考・免責事項
本記事は2025年12月14日時点の情報に基づいて作成されています。技術の進展は予測困難であり、本記事の内容が将来的に変更される可能性があります。記事内容は個人的な考察に基づくものであり、専門的な判断については関連分野の専門家にご相談ください。重要な決定については、複数の情報源を参考にし、自己責任で行ってください。