数値微分

数値微分

執筆済 数学数値計算
f(x)f(x+h)f(x)h(前進差分) f(x)f(x+h)f(xh)2h(中心差分)

2 つの誤差の綱引き#

誤差 h を小さくすると
打ち切り誤差 𝒪(h) or 𝒪(h2) 減る
丸め誤差 𝒪(ε/h) 増える桁落ち

合計を最小にする h が存在する。

  • 前進差分 … hε108
  • 中心差分 … hε1/36×106

h を小さくすればよい、は誤り。

コスト#

n 次元の勾配を求めるには

  • 前進差分 … n+1 回の評価
  • 中心差分 … 2n 回の評価

この n 倍が、量子計算で SPSA(次元によらず 2 回)が 選ばれる直接の理由。

自動微分という別解#

自動微分は差分ではなく連鎖律を機械的に適用する。

  • 打ち切り誤差が無い(機械精度)
  • 逆モードなら、全パラメータの勾配が関数評価 1 回ぶん程度のコスト

微分可能な計算グラフとして書けるなら、数値微分を使う理由はほぼ無い。

参考文献#

ノート一覧を閉じる