# 誤差逆伝播法 ## 定義 誤差逆伝播法(backpropagation, delta rule)とは、ニューラルネットワークの誤差関数 $R(\theta)$ を重み $\theta$ について勾配降下法で最小化する際、モデルの合成関数としての構造を利用し連鎖律で全パラメータの勾配を効率よく計算する2パスの手続きである。順方向パスで現在の重みのもとで予測値を計算し、逆方向パスで出力層の誤差 $\delta_{ki}=-2(y_{ik}-f_k(x_i))g_k'(\beta_k^Tz_i)$ を求めたのち、逆伝播方程式 $s_{mi}=\sigma'(\alpha_m^Tx_i)\sum_k\beta_{km}\delta_{ki}$ で隠れ層の誤差 $s_{mi}$ へ伝播させる。各パラメータについての勾配は $\partial R_i/\partial\beta_{km}=\delta_{ki}z_{mi}$、$\partial R_i/\partial\alpha_{m\ell}=s_{mi}x_{i\ell}$ という局所的な積で得られる。各隠れユニットは接続を共有するユニットとだけ情報をやり取りするため、並列計算機での実装に適する。バッチ学習(全訓練事例の和で更新)とオンライン学習(1事例ごとに更新)のいずれでも使え、オンライン学習では学習率を $\sum\gamma_r=\infty$、$\sum\gamma_r^2<\infty$ を満たすよう減衰させれば確率近似の理論により収束が保証される。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4) ## 収束の実務上の課題 誤差関数 $R(\theta)$ は一般に非凸で多数の局所解を持つため、誤差逆伝播法自体は収束が遅く、実務では共役勾配法や可変計量法のような、ヘッセ行列を陽に扱わずに済む高速な最適化法が好まれる。最終的な解は初期値に強く依存するため、複数の乱数初期値から訓練して比較検討する必要がある。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4-§11.5.5) ## 横断的知見 - **誤差逆伝播法と勾配ブースティングは、いずれも「最急降下法の類推」だが、降下する空間が異なる**: 本ページの誤差逆伝播法は、誤差関数 $R(\theta)$ をパラメータ空間 $\theta$ 上の関数とみなし、連鎖律で得た厳密な勾配方向へ重みを更新する。一方、[[@2009__Springer__The Elements of Statistical Learning - Chapter 10 Boosting and Additive Trees]] の勾配ブースティングは、誤差関数 $L(f)=\sum_iL(y_i,f(x_i))$ を訓練事例上の予測値ベクトル $f\in\mathbb R^N$ の関数とみなし、その最急降下方向(負の勾配)へ「無制約に」動きたいところを、木という制約された関数族で最小二乗近似する。誤差逆伝播法は勾配を**厳密に**計算できる(モデルの関数形が既知で微分可能なため)のに対し、勾配ブースティングは勾配を**関数近似でしか**再現できない(木の集合という制約された仮説空間しか使えないため)。両者は「勾配降下法をモデルの構造に合わせてどう実装するか」という共通の問いに対する、パラメトリック/ノンパラメトリックそれぞれの解答になっている。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4, [[@2009__Springer__The Elements of Statistical Learning - Chapter 10 Boosting and Additive Trees]] §10.10) - **誤差逆伝播法は、より一般的な計算原理である[[自動微分]]の reverse mode の特殊例であり、ESL の局所的な逆伝播方程式は MML の計算グラフによる連鎖律の機械的適用と同じ計算を異なる抽象度で記述したものである**: [[誤差逆伝播法]](本ページ、The Elements of Statistical Learning §11.4)は、出力層の誤差 $\delta_{ki}$ から隠れ層の誤差 $s_{mi}$ へ伝播させる具体的な逆伝播方程式として backpropagation を導入し、非凸最適化としての収束(局所解・学習率スケジュール)に力点を置く統計学習の視点を取る。一方 [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 5 Vector Calculus]] §5.6 は同じ計算を、中間変数の計算グラフに連鎖律を機械的に適用する一般手続き(自動微分)の reverse mode として位置づけ、forward mode との計算量の非対称性(パラメータ数 ≫ 損失のスカラー1個のとき reverse mode が有利)から backpropagation の効率性を説明する。ESL が「統計モデルの学習アルゴリズム」として与える手続きに対し、MML は「なぜその手続きが計算量的に効率的なのか」という数学的基礎を与えるという非対称性が、両ソースを並べて初めて見える。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4, [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 5 Vector Calculus]] §5.6) - **誤差逆伝播法の計算効率(層数に対して線形で済む理由)は、「動的計画法による共通部分式の再利用」と「多入力・少出力という構造の非対称性」の2つで説明できる**: 『ディープラーニングを支える技術』第3章は、誤差逆伝播法を歯車の例(隣接する歯車間の回転比の積で遠く離れた歯車間の回転比が求まる)から導入し、合成関数の微分∂y/∂x=(∂y/∂h)(∂h/∂x)の一般化として位置づけたうえで、計算経路が合流する箇所(h=f₁(x₁)+f₂(x₂)+f₃(x₃)に対するe_h=∂y/∂h)で微分の共通部分が生じることを示す。この共通部分を出力側から入力側へ向かって1回だけ計算し再利用することで、素朴な偏微分の逐次計算がΩ(m²)時間かかるのに対し、誤差逆伝播法はΩ(m)時間・前向き計算の約3倍のコストで済む。ESLが局所的な逆伝播方程式 $s_{mi}=\sigma'(\alpha_m^Tx_i)\sum_k\beta_{km}\delta_{ki}$ として与える計算と、MMLが計算グラフの連鎖律として与える計算は、いずれもこの「後ろ向きの動的計画法による再利用」を異なる抽象度で記述したものであり、3ソースを並べると同じ計算量的性質(パラメータ数に対して線形)が、統計学習の具体的更新式・自動微分の一般理論・工学的な歯車の類推という3通りの語り口で独立に導かれていることが分かる。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4, [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 5 Vector Calculus]] §5.6, [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 3 ディープラーニングの技術基礎]] §3.5) - **『ディープラーニングを支える技術』は誤差逆伝播法を表現学習を実現する手段として位置づけ、収束問題(局所解)には立ち入らない**: ESLが誤差逆伝播法を非凸最適化としての収束問題(局所解・学習率スケジュール)に力点を置いて説明するのに対し、同書第3章は「なぜ勾配計算がΩ(m)時間で済むか」という計算効率の説明に紙面を割き、収束の議論は行わない。同書はむしろ誤差逆伝播法を[[表現学習]]を可能にする計算基盤として位置づけ、パラメータ数1000万・前向き計算1秒の例でランダム探索の300万倍高速だと定量的に示す。ESLの「収束の実務上の課題」(本ページ上部)と同書の「計算量の効率性」は補完的であり、片方だけでは誤差逆伝播法の実用上の価値(速く動く)と理論上の課題(どこに収束するか)を両方説明できない。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4-§11.5.5, [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 3 ディープラーニングの技術基礎]] §3.5) - **SRE実務向け入門(2018年)は、誤差逆伝播法をNumPyのみによる十数行のコード例として提示し、ESL・MML・Gihyoが与える連鎖律・計算グラフの理論的枠組みには一切触れない**: 『SREの探求』第18章は、3層のニューラルネットワークをNumPyのみでゼロから実装する例で、シグモイド関数の微分`nonlin(x,deriv=True)`を使い、出力層の誤差(`layer2_error`)から隠れ層の誤差(`layer1_delta`)へ「バックプロパゲーション(誤差逆伝播法)」という訳語つきで伝播させ、100,000回のループでシナプス行列を更新する。この実装は、本ページが積み増したESL §11.4の逆伝播方程式($s_{mi}=\sigma'(\alpha_m^Tx_i)\sum_k\beta_{km}\delta_{ki}$)と数学的に同型だが、SRE章は連鎖律や計算グラフといった一般原理を明示せず、動くコードと収束するエラー値の実行例(0.4345→0.0012)だけを示す。3つの専門書ソース(ESL・MML・Gihyo)がそれぞれ異なる抽象度(統計学習の更新式・自動微分の一般理論・工学的な歯車の類推)で同じ計算を語ることを既に確認していた本ページに、「動くコード」という第4の、最も抽象度の低い語り口が加わる。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] §11.4, [[@2021__OReillyJapan__SREの探求 - Chapter 18 SREのための機械学習入門]] §18.6.2.3) ## 未解決の問い - 誤差逆伝播法によるパラメータ空間での厳密な最急降下と、勾配ブースティングによる関数空間での近似的な最急降下は、どのような条件で同じ最終モデルに近づくか(あるいは近づかないか)。 - 学習率 $\gamma_r$ の選択(バッチ学習での定数・直線探索、オンライン学習での減衰スケジュール)は、重み減衰による正則化の強さとどう相互作用するか。 - 非凸な $R(\theta)$ における複数局所解の問題は、共役勾配法・可変計量法のような2次的な情報を使う手法でどこまで緩和されるか、それとも複数初期値からの再訓練以外に本質的な対処法はないか。 - MML が与える自動微分の一般的な計算グラフ定式化は、ESL が扱う非凸最適化の収束問題(局所解・学習率)とは独立の問題設定である。両者を接続する理論(計算グラフの構造が損失関数の非凸性にどう影響するか)はどの文献で扱われるか。 - 『ディープラーニングを支える技術』が示す「前向き計算の約3倍」という係数は、どのようなネットワーク構造・活性化関数の組み合わせで成り立つ経験則か。理論的な上界として厳密に証明されているか、それとも典型的な構成における実測的な目安か。 ## 関連 - 概念: [[基底展開]](学習される基底関数の枠組み) / [[縮小推定]](重み減衰による正則化) / [[勾配ブースティング]](関数空間での類似の最急降下法) / [[自動微分]](本手法が特殊例となる一般原理) / [[表現学習]](誤差逆伝播法が可能にする学習対象) - ソース: [[@2009__Springer__The Elements of Statistical Learning - Chapter 11 Neural Networks]] / [[@2009__Springer__The Elements of Statistical Learning - Chapter 10 Boosting and Additive Trees]] / [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 5 Vector Calculus]] / [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 3 ディープラーニングの技術基礎]] / [[@2021__OReillyJapan__SREの探求 - Chapter 18 SREのための機械学習入門]] ## 出典 - Hastie, T., Tibshirani, R., Friedman, J., *The Elements of Statistical Learning*, 2nd Edition, Springer, 2009, Chapter 11, §11.4. - Deisenroth, M. P., Faisal, A. A., Ong, C. S., *Mathematics for Machine Learning*, Cambridge University Press, 2020, §5.6. - 岡野原大輔, 『ディープラーニングを支える技術』, 技術評論社, 2022, 第3章 §3.5. - [[@2021__OReillyJapan__SREの探求 - Chapter 18 SREのための機械学習入門]] §18.6.2.3.