自動微分には、計算と同じ向きに導関数を伝える前進モード(接線線形モード)と、出力から入力へ逆向きに求める後退モード(随伴モード)があります1。前進モードは入力 1 つの方向ごとに計算を 1 回行い、後退モードは出力 1 つについて 1 回の計算で、すべての入力への導関数を求めます。

ソースコードから導関数を求めるコードを生成する方式と、値と導関数を組にした型で演算を置き換える方式(演算子のオーバーロード)があります2。仕組みと使われる場面は「AAD(随伴自動微分)」のページで扱います。

注

  1. Homescu, "Adjoints and automatic (algorithmic) differentiation in computational finance"(arXiv、2011 年)の 3 ページ(1 節)。 ↩

  2. Giles, "Advanced Monte Carlo Methods: Computing Greeks"(Oxford University、講義資料)の 19 ページ。 ↩