数値微分
2 つの誤差の綱引き#
| 誤差 | を小さくすると |
|---|---|
| 打ち切り誤差 or | 減る |
| 丸め誤差 | 増える(桁落ち) |
合計を最小にする が存在する。
- 前進差分 …
- 中心差分 …
を小さくすればよい、は誤り。
コスト#
次元の勾配を求めるには
- 前進差分 … 回の評価
- 中心差分 … 回の評価
この 倍が、量子計算で SPSA(次元によらず 2 回)が 選ばれる直接の理由。
自動微分という別解#
自動微分は差分ではなく連鎖律を機械的に適用する。
- 打ち切り誤差が無い(機械精度)
- 逆モードなら、全パラメータの勾配が関数評価 1 回ぶん程度のコスト
微分可能な計算グラフとして書けるなら、数値微分を使う理由はほぼ無い。
参考文献#
- William H. Press et al. Numerical Recipes, 3rd ed. Cambridge University Press, 2007. https://numerical.recipes/
- Atılım Güneş Baydin et al. Automatic Differentiation in Machine Learning: a Survey. JMLR 18, 2018. https://jmlr.org/papers/v18/17-468.html