1 計算グラフ
定義 1.1. n , N ∈ N ≥ 1 n,N\in\NN n , N ∈ N ≥ 1 をn < N n<N n < N を満たす整数とし、U ⊆ R n U\subseteq\R^n U ⊆ R n を開集合とする。U U U 上のn n n 入力N N N 節点の 計算グラフ (computational graph ) とは、次のデータの組である。
各整数k k k (n < k ≤ N n<k\le N n < k ≤ N )に対する、空でない部分集合P k ⊆ { 1 , … , k − 1 } P_k\subseteq\{1,\dots,k-1\} P k ⊆ { 1 , … , k − 1 } 、開集合W k ⊆ R P k W_k\subseteq\R^{P_k} W k ⊆ R P k 、C 1 C^1 C 1 級関数φ k : W k → R \varphi_k\colon W_k\to\R φ k : W k → R 。ここでR P k \R^{P_k} R P k はP k P_k P k で添字づけた実数の族( w j ) j ∈ P k (w_j)_{j\in P_k} ( w j ) j ∈ P k の空間であり、R ∣ P k ∣ \R^{|P_k|} R ∣ P k ∣ と同一視する。
m ∈ N ≥ 1 m\in\NN m ∈ N ≥ 1 と、相異なる添字o 1 , … , o m ∈ { 1 , … , N } o_1,\dots,o_m\in\{1,\dots,N\} o 1 , … , o m ∈ { 1 , … , N } 。
添字1 , … , N 1,\dots,N 1 , … , N を 節点 (node ) という。j ∈ P k j\in P_k j ∈ P k のときj j j をk k k の 先行節点 (predecessor ) 、k k k をj j j の 後続節点 (successor ) といい、j j j の後続節点の集合をS j : = { k ∣ n < k ≤ N , j ∈ P k } S_j:=\{k\mid n<k\le N,\ j\in P_k\} S j := { k ∣ n < k ≤ N , j ∈ P k } と書く。S j ⊆ { max ( j , n ) + 1 , … , N } S_j\subseteq\{\max(j,n)+1,\dots,N\} S j ⊆ { max ( j , n ) + 1 , … , N } である。
集合Ω k ⊆ U \Omega_k\subseteq U Ω k ⊆ U と関数v k : Ω k → R v_k\colon\Omega_k\to\R v k : Ω k → R をk k k について帰納的に次で定める。Ω n : = U \Omega_n:=U Ω n := U とし、1 ≤ i ≤ n 1\le i\le n 1 ≤ i ≤ n についてv i ( x ) : = x i v_i(x):=x_i v i ( x ) := x i とする。n < k ≤ N n<k\le N n < k ≤ N について、v j v_j v j (j < k j<k j < k )がΩ k − 1 \Omega_{k-1} Ω k − 1 上で定まっているとき、
Ω k : = { x ∈ Ω k − 1 ∣ ( v j ( x ) ) j ∈ P k ∈ W k } , v k ( x ) : = φ k ( ( v j ( x ) ) j ∈ P k ) ( x ∈ Ω k ) \Omega_k:=\bigl\{x\in\Omega_{k-1}\bigm|(v_j(x))_{j\in P_k}\in W_k\bigr\},\qquad v_k(x):=\varphi_k\bigl((v_j(x))_{j\in P_k}\bigr)\quad(x\in\Omega_k) Ω k := { x ∈ Ω k − 1 ( v j ( x ) ) j ∈ P k ∈ W k } , v k ( x ) := φ k ( ( v j ( x ) ) j ∈ P k ) ( x ∈ Ω k ) とする。Ω : = Ω N \Omega:=\Omega_N Ω := Ω N を計算グラフの定義域といい、F : Ω → R m F\colon\Omega\to\R^m F : Ω → R m 、F ( x ) : = ( v o 1 ( x ) , … , v o m ( x ) ) F(x):=(v_{o_1}(x),\dots,v_{o_m}(x)) F ( x ) := ( v o 1 ( x ) , … , v o m ( x )) を計算グラフが定める写像という。x ∈ Ω x\in\Omega x ∈ Ω についてv 1 ( x ) , … , v N ( x ) v_1(x),\dots,v_N(x) v 1 ( x ) , … , v N ( x ) を添字の順に計算する手続きを、計算グラフによるF ( x ) F(x) F ( x ) の評価という。
n < k ≤ N n<k\le N n < k ≤ N 、x ∈ Ω k x\in\Omega_k x ∈ Ω k とする。j ∈ P k j\in P_k j ∈ P k について
c k j ( x ) : = ∂ φ k ∂ w j ( ( v i ( x ) ) i ∈ P k ) c_{kj}(x):=\frac{\partial\varphi_k}{\partial w_j}\bigl((v_i(x))_{i\in P_k}\bigr) c k j ( x ) := ∂ w j ∂ φ k ( ( v i ( x ) ) i ∈ P k ) を節点k k k のj j j に関する 局所偏導関数 (local partial derivative ) という。j ∈ { 1 , … , k − 1 } ∖ P k j\in\{1,\dots,k-1\}\setminus P_k j ∈ { 1 , … , k − 1 } ∖ P k についてはc k j ( x ) : = 0 c_{kj}(x):=0 c k j ( x ) := 0 と置く。
補題 1.2. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフを取り、記号を定義 1.1 のとおりとする。
各k ∈ { n , … , N } k\in\{n,\dots,N\} k ∈ { n , … , N } についてΩ k \Omega_k Ω k は開集合であり、各j ≤ k j\le k j ≤ k についてv j v_j v j はΩ k \Omega_k Ω k 上でC 1 C^1 C 1 級である。特にΩ \Omega Ω は開集合であり、F F F はΩ \Omega Ω 上でC 1 C^1 C 1 級である。
n < k ≤ N n<k\le N n < k ≤ N 、x ∈ Ω k x\in\Omega_k x ∈ Ω k について
D v k ( x ) = ∑ j ∈ P k c k j ( x ) D v j ( x ) Dv_k(x)=\sum_{j\in P_k}c_{kj}(x)\,Dv_j(x) D v k ( x ) = j ∈ P k ∑ c k j ( x ) D v j ( x )
が成り立つ。
証明. k = n k=n k = n のとき、Ω n = U \Omega_n=U Ω n = U は開集合であり、v i v_i v i (i ≤ n i\le n i ≤ n )は座標関数であるから線形であり、C 1 C^1 C 1 級である。
n < k ≤ N n<k\le N n < k ≤ N とし、Ω k − 1 \Omega_{k-1} Ω k − 1 が開集合であり、v j v_j v j (j < k j<k j < k )がΩ k − 1 \Omega_{k-1} Ω k − 1 上でC 1 C^1 C 1 級であると仮定する。w k : Ω k − 1 → R P k w_k\colon\Omega_{k-1}\to\R^{P_k} w k : Ω k − 1 → R P k をw k ( x ) : = ( v j ( x ) ) j ∈ P k w_k(x):=(v_j(x))_{j\in P_k} w k ( x ) := ( v j ( x ) ) j ∈ P k で定めると、w k w_k w k の各成分はC 1 C^1 C 1 級であるからw k w_k w k はC 1 C^1 C 1 級であり、特に連続である。Ω k = w k − 1 ( W k ) \Omega_k=w_k^{-1}(W_k) Ω k = w k − 1 ( W k ) は開集合Ω k − 1 \Omega_{k-1} Ω k − 1 における開集合W k W_k W k の連続写像による逆像であるから、R n \R^n R n の開集合である。Ω k \Omega_k Ω k 上でv k = φ k ∘ w k v_k=\varphi_k\circ w_k v k = φ k ∘ w k であり、§E4.3 定理 1.1 により、v k v_k v k は各x ∈ Ω k x\in\Omega_k x ∈ Ω k で全微分可能であって
D v k ( x ) = D φ k ( w k ( x ) ) D w k ( x ) = ∑ j ∈ P k ∂ φ k ∂ w j ( w k ( x ) ) D v j ( x ) = ∑ j ∈ P k c k j ( x ) D v j ( x ) Dv_k(x)=D\varphi_k(w_k(x))\,Dw_k(x)=\sum_{j\in P_k}\frac{\partial\varphi_k}{\partial w_j}(w_k(x))\,Dv_j(x)=\sum_{j\in P_k}c_{kj}(x)\,Dv_j(x) D v k ( x ) = D φ k ( w k ( x )) D w k ( x ) = j ∈ P k ∑ ∂ w j ∂ φ k ( w k ( x )) D v j ( x ) = j ∈ P k ∑ c k j ( x ) D v j ( x ) が成り立つ。c k j = ∂ φ k ∂ w j ∘ w k c_{kj}=\frac{\partial\varphi_k}{\partial w_j}\circ w_k c k j = ∂ w j ∂ φ k ∘ w k は連続関数の合成であるから連続であり、v k v_k v k の各偏導関数∑ j ∈ P k c k j ∂ i v j \sum_{j\in P_k}c_{kj}\,\partial_iv_j ∑ j ∈ P k c k j ∂ i v j はΩ k \Omega_k Ω k 上で連続である。したがってv k v_k v k はΩ k \Omega_k Ω k 上でC 1 C^1 C 1 級であり、v j v_j v j (j < k j<k j < k )の開集合Ω k ⊆ Ω k − 1 \Omega_k\subseteq\Omega_{k-1} Ω k ⊆ Ω k − 1 への制限もC 1 C^1 C 1 級である。F F F の各成分はv o i v_{o_i} v o i のΩ \Omega Ω への制限であるから、F F F はC 1 C^1 C 1 級である。▨
補題 1.3. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフとx ∈ Ω x\in\Omega x ∈ Ω を取り、記号を定義 1.1 のとおりとする。全微分を標準基底に関する行列と同一視し、D v j ( x ) ∈ R 1 × n Dv_j(x)\in\R^{1\times n} D v j ( x ) ∈ R 1 × n 、D F ( x ) ∈ R m × n DF(x)\in\R^{m\times n} D F ( x ) ∈ R m × n とする。n ≤ k ≤ N n\le k\le N n ≤ k ≤ N について、第j j j 行がD v j ( x ) Dv_j(x) D v j ( x ) (1 ≤ j ≤ k 1\le j\le k 1 ≤ j ≤ k )である行列をJ k ( x ) ∈ R k × n J_k(x)\in\R^{k\times n} J k ( x ) ∈ R k × n とする。n < k ≤ N n<k\le N n < k ≤ N について、上のk − 1 k-1 k − 1 行が単位行列I k − 1 I_{k-1} I k − 1 であり第k k k 行が( c k 1 ( x ) , … , c k , k − 1 ( x ) ) (c_{k1}(x),\dots,c_{k,k-1}(x)) ( c k 1 ( x ) , … , c k , k − 1 ( x )) である行列をL k ( x ) ∈ R k × ( k − 1 ) L_k(x)\in\R^{k\times(k-1)} L k ( x ) ∈ R k × ( k − 1 ) とする。第i i i 行がR N \R^N R N の第o i o_i o i 標準単位行ベクトルである行列をΠ ∈ R m × N \Pi\in\R^{m\times N} Π ∈ R m × N とする。
J n ( x ) = I n J_n(x)=I_n J n ( x ) = I n であり、n < k ≤ N n<k\le N n < k ≤ N についてJ k ( x ) = L k ( x ) J k − 1 ( x ) J_k(x)=L_k(x)J_{k-1}(x) J k ( x ) = L k ( x ) J k − 1 ( x ) が成り立つ。
D F ( x ) = Π L N ( x ) L N − 1 ( x ) ⋯ L n + 1 ( x ) DF(x)=\Pi\,L_N(x)L_{N-1}(x)\cdots L_{n+1}(x) D F ( x ) = Π L N ( x ) L N − 1 ( x ) ⋯ L n + 1 ( x ) が成り立つ。
証明. i ≤ n i\le n i ≤ n についてv i v_i v i は第i i i 座標関数であるからD v i ( x ) Dv_i(x) D v i ( x ) は第i i i 標準単位行ベクトルであり、J n ( x ) = I n J_n(x)=I_n J n ( x ) = I n である。n < k ≤ N n<k\le N n < k ≤ N とする。L k ( x ) J k − 1 ( x ) L_k(x)J_{k-1}(x) L k ( x ) J k − 1 ( x ) の上のk − 1 k-1 k − 1 行はJ k − 1 ( x ) J_{k-1}(x) J k − 1 ( x ) の行D v 1 ( x ) , … , D v k − 1 ( x ) Dv_1(x),\dots,Dv_{k-1}(x) D v 1 ( x ) , … , D v k − 1 ( x ) であり、第k k k 行は∑ j < k c k j ( x ) D v j ( x ) = ∑ j ∈ P k c k j ( x ) D v j ( x ) \sum_{j<k}c_{kj}(x)Dv_j(x)=\sum_{j\in P_k}c_{kj}(x)Dv_j(x) ∑ j < k c k j ( x ) D v j ( x ) = ∑ j ∈ P k c k j ( x ) D v j ( x ) である。補題 1.2 (2) によりこの行はD v k ( x ) Dv_k(x) D v k ( x ) に等しいので、L k ( x ) J k − 1 ( x ) = J k ( x ) L_k(x)J_{k-1}(x)=J_k(x) L k ( x ) J k − 1 ( x ) = J k ( x ) である。
(1) を繰り返し用いるとJ N ( x ) = L N ( x ) ⋯ L n + 1 ( x ) J_N(x)=L_N(x)\cdots L_{n+1}(x) J N ( x ) = L N ( x ) ⋯ L n + 1 ( x ) である。Π J N ( x ) \Pi J_N(x) Π J N ( x ) の第i i i 行はJ N ( x ) J_N(x) J N ( x ) の第o i o_i o i 行D v o i ( x ) Dv_{o_i}(x) D v o i ( x ) であり、F F F の第i i i 成分はv o i v_{o_i} v o i の開集合Ω \Omega Ω への制限であるから、この行はD F ( x ) DF(x) D F ( x ) の第i i i 行に等しい。したがってD F ( x ) = Π L N ( x ) ⋯ L n + 1 ( x ) DF(x)=\Pi\,L_N(x)\cdots L_{n+1}(x) D F ( x ) = Π L N ( x ) ⋯ L n + 1 ( x ) である。▨
2 前進モード
定義 2.1. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフを取り、記号を定義 1.1 のとおりとする。x ∈ Ω x\in\Omega x ∈ Ω 、x ˙ ∈ R n \dot x\in\R^n x ˙ ∈ R n に対して、実数v ˙ 1 , … , v ˙ N \dot v_1,\dots,\dot v_N v ˙ 1 , … , v ˙ N を
v ˙ i : = x ˙ i ( 1 ≤ i ≤ n ) , v ˙ k : = ∑ j ∈ P k c k j ( x ) v ˙ j ( n < k ≤ N ) \dot v_i:=\dot x_i\quad(1\le i\le n),\qquad\dot v_k:=\sum_{j\in P_k}c_{kj}(x)\,\dot v_j\quad(n<k\le N) v ˙ i := x ˙ i ( 1 ≤ i ≤ n ) , v ˙ k := j ∈ P k ∑ c k j ( x ) v ˙ j ( n < k ≤ N ) によりk k k の小さい順に定める。k = n + 1 , … , N k=n+1,\dots,N k = n + 1 , … , N の順に、各段でv k ( x ) v_k(x) v k ( x ) 、c k j ( x ) c_{kj}(x) c k j ( x ) (j ∈ P k j\in P_k j ∈ P k )、v ˙ k \dot v_k v ˙ k を計算する手続きを、方向x ˙ \dot x x ˙ の 前進モード (forward mode ) といい、y ˙ : = ( v ˙ o 1 , … , v ˙ o m ) \dot y:=(\dot v_{o_1},\dots,\dot v_{o_m}) y ˙ := ( v ˙ o 1 , … , v ˙ o m ) をその出力という。
定理 2.2. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフ、x ∈ Ω x\in\Omega x ∈ Ω 、x ˙ ∈ R n \dot x\in\R^n x ˙ ∈ R n を取り、v ˙ 1 , … , v ˙ N \dot v_1,\dots,\dot v_N v ˙ 1 , … , v ˙ N とy ˙ \dot y y ˙ を定義 2.1 のとおりとする。任意のk ∈ { 1 , … , N } k\in\{1,\dots,N\} k ∈ { 1 , … , N } についてv ˙ k = D v k ( x ) x ˙ \dot v_k=Dv_k(x)\dot x v ˙ k = D v k ( x ) x ˙ であり、y ˙ = D F ( x ) x ˙ \dot y=DF(x)\dot x y ˙ = D F ( x ) x ˙ が成り立つ。
証明. J k ( x ) J_k(x) J k ( x ) 、L k ( x ) L_k(x) L k ( x ) 、Π \Pi Π を補題 1.3 のとおりとし、n ≤ k ≤ N n\le k\le N n ≤ k ≤ N についてw ( k ) : = J k ( x ) x ˙ ∈ R k w^{(k)}:=J_k(x)\dot x\in\R^k w ( k ) := J k ( x ) x ˙ ∈ R k と置く。w ( k ) w^{(k)} w ( k ) の第j j j 成分はD v j ( x ) x ˙ Dv_j(x)\dot x D v j ( x ) x ˙ である。補題 1.3 (1) によりw ( n ) = x ˙ w^{(n)}=\dot x w ( n ) = x ˙ であり、n < k ≤ N n<k\le N n < k ≤ N についてw ( k ) = L k ( x ) w ( k − 1 ) w^{(k)}=L_k(x)w^{(k-1)} w ( k ) = L k ( x ) w ( k − 1 ) 、すなわち
w j ( k ) = w j ( k − 1 ) ( j < k ) , w k ( k ) = ∑ j ∈ P k c k j ( x ) w j ( k − 1 ) w^{(k)}_j=w^{(k-1)}_j\quad(j<k),\qquad w^{(k)}_k=\sum_{j\in P_k}c_{kj}(x)\,w^{(k-1)}_j w j ( k ) = w j ( k − 1 ) ( j < k ) , w k ( k ) = j ∈ P k ∑ c k j ( x ) w j ( k − 1 ) である。w i ( n ) = x ˙ i = v ˙ i w^{(n)}_i=\dot x_i=\dot v_i w i ( n ) = x ˙ i = v ˙ i であり、w ( k ) w^{(k)} w ( k ) と( v ˙ 1 , … , v ˙ k ) (\dot v_1,\dots,\dot v_k) ( v ˙ 1 , … , v ˙ k ) は同じ漸化式に従うから、k k k についての帰納法によりw ( k ) = ( v ˙ 1 , … , v ˙ k ) w^{(k)}=(\dot v_1,\dots,\dot v_k) w ( k ) = ( v ˙ 1 , … , v ˙ k ) である。したがってv ˙ k = w k ( k ) = D v k ( x ) x ˙ \dot v_k=w^{(k)}_k=Dv_k(x)\dot x v ˙ k = w k ( k ) = D v k ( x ) x ˙ である。補題 1.3 (2) によりD F ( x ) x ˙ = Π J N ( x ) x ˙ = Π w ( N ) = ( v ˙ o 1 , … , v ˙ o m ) = y ˙ DF(x)\dot x=\Pi J_N(x)\dot x=\Pi w^{(N)}=(\dot v_{o_1},\dots,\dot v_{o_m})=\dot y D F ( x ) x ˙ = Π J N ( x ) x ˙ = Π w ( N ) = ( v ˙ o 1 , … , v ˙ o m ) = y ˙ である。▨
例 2.3. 条件分岐を含む手続きは、分岐の各場合ごとに一つの計算グラフを実行する。手続きが計算する関数f f f と、ある場合の計算グラフが定める写像F b F_b F b が点x x x のある開近傍の上で一致するならば、全微分は開近傍の上の値だけで定まるので、f f f はx x x で全微分可能でありD f ( x ) = D F b ( x ) Df(x)=DF_b(x) D f ( x ) = D F b ( x ) である。分岐の条件を満たす点の集合がx x x の開近傍を含まない場合には、f f f がx x x で微分可能であるとは限らず、微分可能であっても前進モードの出力がf f f の微分係数に等しいとは限らない。
実数x x x に対して、x ≥ 0 x\ge0 x ≥ 0 ならばy : = x y:=x y := x 、x < 0 x<0 x < 0 ならばy : = − x y:=-x y := − x を出力する手続きはf ( x ) = ∣ x ∣ f(x)=|x| f ( x ) = ∣ x ∣ を計算する。x ≥ 0 x\ge0 x ≥ 0 の場合の計算グラフはn = 1 n=1 n = 1 、N = 2 N=2 N = 2 、P 2 = { 1 } P_2=\{1\} P 2 = { 1 } 、W 2 = R W_2=\R W 2 = R 、φ 2 ( w 1 ) = w 1 \varphi_2(w_1)=w_1 φ 2 ( w 1 ) = w 1 、o 1 = 2 o_1=2 o 1 = 2 であり、F + ( x ) = x F_+(x)=x F + ( x ) = x を定める。x = 0 x=0 x = 0 では手続きはこの場合を実行し、方向x ˙ = 1 \dot x=1 x ˙ = 1 の前進モードの出力はF + ′ ( 0 ) = 1 F_+'(0)=1 F + ′ ( 0 ) = 1 である。h > 0 h>0 h > 0 で( f ( h ) − f ( 0 ) ) / h = 1 (f(h)-f(0))/h=1 ( f ( h ) − f ( 0 )) / h = 1 、h < 0 h<0 h < 0 で( f ( h ) − f ( 0 ) ) / h = − 1 (f(h)-f(0))/h=-1 ( f ( h ) − f ( 0 )) / h = − 1 であるから、f f f は0 0 0 で微分可能でない。x > 0 x>0 x > 0 ではf f f とF + F_+ F + は開区間( 0 , ∞ ) (0,\infty) ( 0 , ∞ ) で一致し、f ′ ( x ) = 1 f'(x)=1 f ′ ( x ) = 1 である。
実数x x x に対して、x = 0 x=0 x = 0 ならばy : = 0 y:=0 y := 0 、x ≠ 0 x\ne0 x = 0 ならばy : = x y:=x y := x を出力する手続きはf ( x ) = x f(x)=x f ( x ) = x を計算し、f ′ ( 0 ) = 1 f'(0)=1 f ′ ( 0 ) = 1 である。x = 0 x=0 x = 0 の場合の計算グラフをn = 1 n=1 n = 1 、N = 2 N=2 N = 2 、P 2 = { 1 } P_2=\{1\} P 2 = { 1 } 、W 2 = R W_2=\R W 2 = R 、φ 2 ( w 1 ) = 0 \varphi_2(w_1)=0 φ 2 ( w 1 ) = 0 、o 1 = 2 o_1=2 o 1 = 2 とすると、c 21 = 0 c_{21}=0 c 21 = 0 であり、方向x ˙ = 1 \dot x=1 x ˙ = 1 の前進モードの出力は0 ≠ f ′ ( 0 ) 0\ne f'(0) 0 = f ′ ( 0 ) である。分岐の条件を満たす点の集合{ 0 } \{0\} { 0 } は0 0 0 の開近傍を含まない。
3 逆モード
定義 3.1. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフを取り、記号を定義 1.1 のとおりとする。x ∈ Ω x\in\Omega x ∈ Ω 、y ˉ ∈ R m \bar y\in\R^m y ˉ ∈ R m に対して、j ∈ { 1 , … , N } j\in\{1,\dots,N\} j ∈ { 1 , … , N } についてj = o i j=o_i j = o i ならばσ j : = y ˉ i \sigma_j:=\bar y_i σ j := y ˉ i 、j ∉ { o 1 , … , o m } j\notin\{o_1,\dots,o_m\} j ∈ / { o 1 , … , o m } ならばσ j : = 0 \sigma_j:=0 σ j := 0 と置く(o 1 , … , o m o_1,\dots,o_m o 1 , … , o m は相異なるのでσ j \sigma_j σ j は一意に定まる)。実数v ˉ N , v ˉ N − 1 , … , v ˉ 1 \bar v_N,\bar v_{N-1},\dots,\bar v_1 v ˉ N , v ˉ N − 1 , … , v ˉ 1 を、j j j の大きい順に
v ˉ j : = σ j + ∑ k ∈ S j v ˉ k c k j ( x ) \bar v_j:=\sigma_j+\sum_{k\in S_j}\bar v_k\,c_{kj}(x) v ˉ j := σ j + k ∈ S j ∑ v ˉ k c k j ( x ) により定める。ここで和はj j j のすべての後続節点k k k にわたり、S j = ∅ S_j=\emptyset S j = ∅ のとき和は0 0 0 である。S j ⊆ { j + 1 , … , N } S_j\subseteq\{j+1,\dots,N\} S j ⊆ { j + 1 , … , N } であるから、右辺のv ˉ k \bar v_k v ˉ k はv ˉ j \bar v_j v ˉ j より先に定まっている。v ˉ j \bar v_j v ˉ j を節点j j j の 随伴 (adjoint ) という。k = n + 1 , … , N k=n+1,\dots,N k = n + 1 , … , N の順にv k ( x ) v_k(x) v k ( x ) とc k j ( x ) c_{kj}(x) c k j ( x ) (j ∈ P k j\in P_k j ∈ P k )を計算した後、j = N , … , 1 j=N,\dots,1 j = N , … , 1 の順にv ˉ j \bar v_j v ˉ j を計算する手続きを、重みy ˉ \bar y y ˉ の 逆モード (reverse mode ) といい、x ˉ : = ( v ˉ 1 , … , v ˉ n ) \bar x:=(\bar v_1,\dots,\bar v_n) x ˉ := ( v ˉ 1 , … , v ˉ n ) をその出力という。
定理 3.2. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフ、x ∈ Ω x\in\Omega x ∈ Ω 、y ˉ ∈ R m \bar y\in\R^m y ˉ ∈ R m を取り、v ˉ 1 , … , v ˉ N \bar v_1,\dots,\bar v_N v ˉ 1 , … , v ˉ N とx ˉ \bar x x ˉ を定義 3.1 のとおりとする。このときx ˉ = D F ( x ) T y ˉ \bar x=DF(x)^{\mathsf T}\bar y x ˉ = D F ( x ) T y ˉ が成り立つ。特にm = 1 m=1 m = 1 、y ˉ = 1 \bar y=1 y ˉ = 1 ならばx ˉ = ∇ F ( x ) \bar x=\nabla F(x) x ˉ = ∇ F ( x ) である。
証明. L k ( x ) L_k(x) L k ( x ) 、Π \Pi Π を補題 1.3 のとおりとする。n ≤ k ≤ N n\le k\le N n ≤ k ≤ N についてa ( k ) ∈ R k a^{(k)}\in\R^k a ( k ) ∈ R k を
a j ( k ) : = σ j + ∑ l ∈ S j , l > k v ˉ l c l j ( x ) ( 1 ≤ j ≤ k ) a^{(k)}_j:=\sigma_j+\sum_{l\in S_j,\ l>k}\bar v_l\,c_{lj}(x)\qquad(1\le j\le k) a j ( k ) := σ j + l ∈ S j , l > k ∑ v ˉ l c l j ( x ) ( 1 ≤ j ≤ k ) で定める。
l > N l>N l > N を満たすl ∈ S j l\in S_j l ∈ S j は無いのでa j ( N ) = σ j a^{(N)}_j=\sigma_j a j ( N ) = σ j であり、Π T y ˉ = ∑ i = 1 m y ˉ i e o i \Pi^{\mathsf T}\bar y=\sum_{i=1}^m\bar y_i\,e_{o_i} Π T y ˉ = ∑ i = 1 m y ˉ i e o i の第j j j 成分もσ j \sigma_j σ j であるから、a ( N ) = Π T y ˉ a^{(N)}=\Pi^{\mathsf T}\bar y a ( N ) = Π T y ˉ である。
n < k ≤ N n<k\le N n < k ≤ N とする。L k ( x ) T a ( k ) ∈ R k − 1 L_k(x)^{\mathsf T}a^{(k)}\in\R^{k-1} L k ( x ) T a ( k ) ∈ R k − 1 の第j j j 成分はa j ( k ) + c k j ( x ) a k ( k ) a^{(k)}_j+c_{kj}(x)\,a^{(k)}_k a j ( k ) + c k j ( x ) a k ( k ) である。S k ⊆ { k + 1 , … , N } S_k\subseteq\{k+1,\dots,N\} S k ⊆ { k + 1 , … , N } であるからa k ( k ) = σ k + ∑ l ∈ S k v ˉ l c l k ( x ) = v ˉ k a^{(k)}_k=\sigma_k+\sum_{l\in S_k}\bar v_l\,c_{lk}(x)=\bar v_k a k ( k ) = σ k + ∑ l ∈ S k v ˉ l c l k ( x ) = v ˉ k である。j < k j<k j < k かつj ∈ P k j\in P_k j ∈ P k ならばk ∈ S j k\in S_j k ∈ S j であり、
a j ( k ) + c k j ( x ) v ˉ k = σ j + ∑ l ∈ S j , l ≥ k v ˉ l c l j ( x ) = a j ( k − 1 ) a^{(k)}_j+c_{kj}(x)\,\bar v_k=\sigma_j+\sum_{l\in S_j,\ l\ge k}\bar v_l\,c_{lj}(x)=a^{(k-1)}_j a j ( k ) + c k j ( x ) v ˉ k = σ j + l ∈ S j , l ≥ k ∑ v ˉ l c l j ( x ) = a j ( k − 1 ) である。j < k j<k j < k かつj ∉ P k j\notin P_k j ∈ / P k ならばc k j ( x ) = 0 c_{kj}(x)=0 c k j ( x ) = 0 かつk ∉ S j k\notin S_j k ∈ / S j であるから、a j ( k ) + c k j ( x ) v ˉ k = a j ( k ) = a j ( k − 1 ) a^{(k)}_j+c_{kj}(x)\,\bar v_k=a^{(k)}_j=a^{(k-1)}_j a j ( k ) + c k j ( x ) v ˉ k = a j ( k ) = a j ( k − 1 ) である。したがってa ( k − 1 ) = L k ( x ) T a ( k ) a^{(k-1)}=L_k(x)^{\mathsf T}a^{(k)} a ( k − 1 ) = L k ( x ) T a ( k ) である。
j ≤ n j\le n j ≤ n についてS j ⊆ { n + 1 , … , N } S_j\subseteq\{n+1,\dots,N\} S j ⊆ { n + 1 , … , N } であるからa j ( n ) = σ j + ∑ l ∈ S j v ˉ l c l j ( x ) = v ˉ j a^{(n)}_j=\sigma_j+\sum_{l\in S_j}\bar v_l\,c_{lj}(x)=\bar v_j a j ( n ) = σ j + ∑ l ∈ S j v ˉ l c l j ( x ) = v ˉ j であり、a ( n ) = x ˉ a^{(n)}=\bar x a ( n ) = x ˉ である。以上と補題 1.3 (2) により
x ˉ = L n + 1 ( x ) T ⋯ L N ( x ) T Π T y ˉ = ( Π L N ( x ) ⋯ L n + 1 ( x ) ) T y ˉ = D F ( x ) T y ˉ \bar x=L_{n+1}(x)^{\mathsf T}\cdots L_N(x)^{\mathsf T}\,\Pi^{\mathsf T}\bar y=\bigl(\Pi\,L_N(x)\cdots L_{n+1}(x)\bigr)^{\mathsf T}\bar y=DF(x)^{\mathsf T}\bar y x ˉ = L n + 1 ( x ) T ⋯ L N ( x ) T Π T y ˉ = ( Π L N ( x ) ⋯ L n + 1 ( x ) ) T y ˉ = D F ( x ) T y ˉ が成り立つ。
m = 1 m=1 m = 1 のとき、§E4.3 定理 3.2 により任意のh ∈ R n h\in\R^n h ∈ R n についてD F ( x ) h = ⟨ ∇ F ( x ) , h ⟩ DF(x)h=\langle\nabla F(x),h\rangle D F ( x ) h = ⟨ ∇ F ( x ) , h ⟩ であるから、行列D F ( x ) DF(x) D F ( x ) は行ベクトル∇ F ( x ) T \nabla F(x)^{\mathsf T} ∇ F ( x ) T であり、D F ( x ) T ⋅ 1 = ∇ F ( x ) DF(x)^{\mathsf T}\cdot1=\nabla F(x) D F ( x ) T ⋅ 1 = ∇ F ( x ) である。▨
例 3.3. U = R 2 U=\R^2 U = R 2 上の2 2 2 入力5 5 5 節点の計算グラフを、P 3 = P 4 = { 1 , 2 } P_3=P_4=\{1,2\} P 3 = P 4 = { 1 , 2 } 、P 5 = { 3 , 4 } P_5=\{3,4\} P 5 = { 3 , 4 } 、W k = R P k W_k=\R^{P_k} W k = R P k 、
φ 3 ( w 1 , w 2 ) = w 1 w 2 , φ 4 ( w 1 , w 2 ) = w 1 + w 2 , φ 5 ( w 3 , w 4 ) = w 3 w 4 , \varphi_3(w_1,w_2)=w_1w_2,\qquad\varphi_4(w_1,w_2)=w_1+w_2,\qquad\varphi_5(w_3,w_4)=w_3w_4, φ 3 ( w 1 , w 2 ) = w 1 w 2 , φ 4 ( w 1 , w 2 ) = w 1 + w 2 , φ 5 ( w 3 , w 4 ) = w 3 w 4 , m = 1 m=1 m = 1 、o 1 = 5 o_1=5 o 1 = 5 で定める。Ω = R 2 \Omega=\R^2 Ω = R 2 であり、F ( x ) = x 1 x 2 ( x 1 + x 2 ) F(x)=x_1x_2(x_1+x_2) F ( x ) = x 1 x 2 ( x 1 + x 2 ) である。局所偏導関数はc 31 = v 2 c_{31}=v_2 c 31 = v 2 、c 32 = v 1 c_{32}=v_1 c 32 = v 1 、c 41 = c 42 = 1 c_{41}=c_{42}=1 c 41 = c 42 = 1 、c 53 = v 4 c_{53}=v_4 c 53 = v 4 、c 54 = v 3 c_{54}=v_3 c 54 = v 3 であり、後続節点の集合はS 1 = S 2 = { 3 , 4 } S_1=S_2=\{3,4\} S 1 = S 2 = { 3 , 4 } 、S 3 = S 4 = { 5 } S_3=S_4=\{5\} S 3 = S 4 = { 5 } 、S 5 = ∅ S_5=\emptyset S 5 = ∅ である。
x = ( 2 , 3 ) x=(2,3) x = ( 2 , 3 ) とすると( v 1 , … , v 5 ) = ( 2 , 3 , 6 , 5 , 30 ) (v_1,\dots,v_5)=(2,3,6,5,30) ( v 1 , … , v 5 ) = ( 2 , 3 , 6 , 5 , 30 ) である。
方向x ˙ = ( 1 , 0 ) \dot x=(1,0) x ˙ = ( 1 , 0 ) の前進モードは( v ˙ 1 , … , v ˙ 5 ) = ( 1 , 0 , 3 , 1 , 21 ) (\dot v_1,\dots,\dot v_5)=(1,0,3,1,21) ( v ˙ 1 , … , v ˙ 5 ) = ( 1 , 0 , 3 , 1 , 21 ) を与え、ここでv ˙ 5 = c 53 v ˙ 3 + c 54 v ˙ 4 = 5 ⋅ 3 + 6 ⋅ 1 \dot v_5=c_{53}\dot v_3+c_{54}\dot v_4=5\cdot3+6\cdot1 v ˙ 5 = c 53 v ˙ 3 + c 54 v ˙ 4 = 5 ⋅ 3 + 6 ⋅ 1 である。方向x ˙ = ( 0 , 1 ) \dot x=(0,1) x ˙ = ( 0 , 1 ) の前進モードは( v ˙ 1 , … , v ˙ 5 ) = ( 0 , 1 , 2 , 1 , 16 ) (\dot v_1,\dots,\dot v_5)=(0,1,2,1,16) ( v ˙ 1 , … , v ˙ 5 ) = ( 0 , 1 , 2 , 1 , 16 ) を与える。直接の計算では∂ 1 F ( x ) = 2 x 1 x 2 + x 2 2 = 21 \partial_1F(x)=2x_1x_2+x_2^2=21 ∂ 1 F ( x ) = 2 x 1 x 2 + x 2 2 = 21 、∂ 2 F ( x ) = x 1 2 + 2 x 1 x 2 = 16 \partial_2F(x)=x_1^2+2x_1x_2=16 ∂ 2 F ( x ) = x 1 2 + 2 x 1 x 2 = 16 であり、二回の前進モードの出力と一致する。
重みy ˉ = 1 \bar y=1 y ˉ = 1 の逆モードは、σ 5 = 1 \sigma_5=1 σ 5 = 1 、σ 1 = ⋯ = σ 4 = 0 \sigma_1=\dots=\sigma_4=0 σ 1 = ⋯ = σ 4 = 0 から
v ˉ 5 = 1 , v ˉ 4 = v ˉ 5 c 54 = 6 , v ˉ 3 = v ˉ 5 c 53 = 5 , v ˉ 2 = v ˉ 3 c 32 + v ˉ 4 c 42 = 16 , v ˉ 1 = v ˉ 3 c 31 + v ˉ 4 c 41 = 21 \bar v_5=1,\quad\bar v_4=\bar v_5c_{54}=6,\quad\bar v_3=\bar v_5c_{53}=5,\quad\bar v_2=\bar v_3c_{32}+\bar v_4c_{42}=16,\quad\bar v_1=\bar v_3c_{31}+\bar v_4c_{41}=21 v ˉ 5 = 1 , v ˉ 4 = v ˉ 5 c 54 = 6 , v ˉ 3 = v ˉ 5 c 53 = 5 , v ˉ 2 = v ˉ 3 c 32 + v ˉ 4 c 42 = 16 , v ˉ 1 = v ˉ 3 c 31 + v ˉ 4 c 41 = 21
を与え、一回で∇ F ( x ) = ( 21 , 16 ) \nabla F(x)=(21,16) ∇ F ( x ) = ( 21 , 16 ) を得る。
節点1 1 1 は二つの後続節点3 , 4 3,4 3 , 4 を持つ。v ˉ 1 \bar v_1 v ˉ 1 の定義の和から節点4 4 4 の寄与v ˉ 4 c 41 = 6 \bar v_4c_{41}=6 v ˉ 4 c 41 = 6 を除くとv ˉ 3 c 31 = 15 ≠ ∂ 1 F ( x ) \bar v_3c_{31}=15\ne\partial_1F(x) v ˉ 3 c 31 = 15 = ∂ 1 F ( x ) となり、定理 3.2 の結論は成り立たない。
4 演算費用
命題 4.1. U ⊆ R n U\subseteq\R^n U ⊆ R n 上の計算グラフとx ∈ Ω x\in\Omega x ∈ Ω を取り、記号を定義 1.1 のとおりとする。実数の加算・減算・乗算をそれぞれ費用1 1 1 と数える。各k k k (n < k ≤ N n<k\le N n < k ≤ N )についてφ k \varphi_k φ k の値の計算の費用を表す実数t k ≥ ∣ P k ∣ t_k\ge|P_k| t k ≥ ∣ P k ∣ が与えられているとし、計算グラフによるF ( x ) F(x) F ( x ) の評価の費用をT : = ∑ k = n + 1 N t k T:=\sum_{k=n+1}^Nt_k T := ∑ k = n + 1 N t k とする。定数C ≥ 1 C\ge1 C ≥ 1 が存在して、各k k k について( v j ( x ) ) j ∈ P k (v_j(x))_{j\in P_k} ( v j ( x ) ) j ∈ P k からv k ( x ) v_k(x) v k ( x ) とc k j ( x ) c_{kj}(x) c k j ( x ) (j ∈ P k j\in P_k j ∈ P k )をあわせて費用C t k Ct_k C t k 以下で計算することができると仮定する。
一つの方向x ˙ ∈ R n \dot x\in\R^n x ˙ ∈ R n の前進モードの費用は( C + 2 ) T (C+2)T ( C + 2 ) T 以下である。
一つの重みy ˉ ∈ R m \bar y\in\R^m y ˉ ∈ R m の逆モードの費用は( C + 2 ) T (C+2)T ( C + 2 ) T 以下である。特にm = 1 m=1 m = 1 のとき、∇ F ( x ) \nabla F(x) ∇ F ( x ) を費用( C + 2 ) T (C+2)T ( C + 2 ) T 以下で計算することができる。
すべてのv k ( x ) v_k(x) v k ( x ) とc k j ( x ) c_{kj}(x) c k j ( x ) を一度計算した後、方向x ˙ = e 1 , … , e n \dot x=e_1,\dots,e_n x ˙ = e 1 , … , e n の前進モードのv ˙ \dot v v ˙ を計算するとD F ( x ) DF(x) D F ( x ) のすべての列が得られ、その費用の総和は( C + 2 n ) T (C+2n)T ( C + 2 n ) T 以下である。重みy ˉ = e 1 , … , e m \bar y=e_1,\dots,e_m y ˉ = e 1 , … , e m の逆モードのv ˉ \bar v v ˉ を計算するとD F ( x ) DF(x) D F ( x ) のすべての行が得られ、その費用の総和は( C + 2 m ) T (C+2m)T ( C + 2 m ) T 以下である。
証明. すべてのv k ( x ) v_k(x) v k ( x ) とc k j ( x ) c_{kj}(x) c k j ( x ) の計算の費用は仮定により∑ k C t k = C T \sum_kCt_k=CT ∑ k C t k = C T 以下である。
v ˙ i = x ˙ i \dot v_i=\dot x_i v ˙ i = x ˙ i (i ≤ n i\le n i ≤ n )は演算を要さない。v ˙ k \dot v_k v ˙ k (n < k ≤ N n<k\le N n < k ≤ N )の計算は∣ P k ∣ |P_k| ∣ P k ∣ 回の乗算と∣ P k ∣ − 1 |P_k|-1 ∣ P k ∣ − 1 回の加算であり、v ˙ n + 1 , … , v ˙ N \dot v_{n+1},\dots,\dot v_N v ˙ n + 1 , … , v ˙ N の費用の総和は2 ∑ k ∣ P k ∣ ≤ 2 T 2\sum_k|P_k|\le2T 2 ∑ k ∣ P k ∣ ≤ 2 T 以下である。これで(1) は示された。
o 1 , … , o m o_1,\dots,o_m o 1 , … , o m は相異なるのでσ j \sigma_j σ j はy ˉ \bar y y ˉ の成分または0 0 0 であり、演算を要さない。v ˉ j \bar v_j v ˉ j の計算は∣ S j ∣ |S_j| ∣ S j ∣ 回の乗算と∣ S j ∣ |S_j| ∣ S j ∣ 回の加算である。∑ j = 1 N ∣ S j ∣ \sum_{j=1}^N|S_j| ∑ j = 1 N ∣ S j ∣ と∑ k = n + 1 N ∣ P k ∣ \sum_{k=n+1}^N|P_k| ∑ k = n + 1 N ∣ P k ∣ はともにj ∈ P k j\in P_k j ∈ P k を満たす組( j , k ) (j,k) ( j , k ) の個数であるから、v ˉ 1 , … , v ˉ N \bar v_1,\dots,\bar v_N v ˉ 1 , … , v ˉ N の費用の総和は2 ∑ k ∣ P k ∣ ≤ 2 T 2\sum_k|P_k|\le2T 2 ∑ k ∣ P k ∣ ≤ 2 T 以下である。定理 3.2 によりm = 1 m=1 m = 1 、y ˉ = 1 \bar y=1 y ˉ = 1 の出力は∇ F ( x ) \nabla F(x) ∇ F ( x ) である。これで(2) は示された。
定理 2.2 により方向e l e_l e l の前進モードの出力はD F ( x ) e l DF(x)e_l D F ( x ) e l 、すなわちD F ( x ) DF(x) D F ( x ) の第l l l 列である。定理 3.2 により重みe i e_i e i の逆モードの出力はD F ( x ) T e i DF(x)^{\mathsf T}e_i D F ( x ) T e i 、すなわちD F ( x ) DF(x) D F ( x ) の第i i i 行の転置である。v ˙ \dot v v ˙ の計算をn n n 回、v ˉ \bar v v ˉ の計算をm m m 回行う費用はそれぞれ2 n T 2nT 2 n T 以下、2 m T 2mT 2 m T 以下であり、(3) が従う。▨
5 陰関数定理による感度
命題 5.1. k , q ∈ N ≥ 1 k,q\in\NN k , q ∈ N ≥ 1 とし、Q ⊆ R k × R q Q\subseteq\R^k\times\R^q Q ⊆ R k × R q を開集合、G : Q → R k G\colon Q\to\R^k G : Q → R k をC 1 C^1 C 1 級写像とする。( w , p ) ∈ Q (w,p)\in Q ( w , p ) ∈ Q について、D u G ( w , p ) ∈ R k × k D_uG(w,p)\in\R^{k\times k} D u G ( w , p ) ∈ R k × k とD p G ( w , p ) ∈ R k × q D_pG(w,p)\in\R^{k\times q} D p G ( w , p ) ∈ R k × q を、任意のh ∈ R k h\in\R^k h ∈ R k 、r ∈ R q r\in\R^q r ∈ R q についてD u G ( w , p ) h = D G ( w , p ) ( h , 0 ) D_uG(w,p)h=DG(w,p)(h,0) D u G ( w , p ) h = D G ( w , p ) ( h , 0 ) 、D p G ( w , p ) r = D G ( w , p ) ( 0 , r ) D_pG(w,p)r=DG(w,p)(0,r) D p G ( w , p ) r = D G ( w , p ) ( 0 , r ) を満たす行列とする。( u 0 , p 0 ) ∈ Q (u_0,p_0)\in Q ( u 0 , p 0 ) ∈ Q がG ( u 0 , p 0 ) = 0 G(u_0,p_0)=0 G ( u 0 , p 0 ) = 0 を満たし、D u G ( u 0 , p 0 ) D_uG(u_0,p_0) D u G ( u 0 , p 0 ) が正則であるとする。
p 0 p_0 p 0 の開近傍V ⊆ R q V\subseteq\R^q V ⊆ R q 、u 0 u_0 u 0 の開近傍B ⊆ R k B\subseteq\R^k B ⊆ R k 、C 1 C^1 C 1 級写像u : V → B u\colon V\to B u : V → B が存在して、u ( p 0 ) = u 0 u(p_0)=u_0 u ( p 0 ) = u 0 であり、任意のp ∈ V p\in V p ∈ V についてG ( u ( p ) , p ) = 0 G(u(p),p)=0 G ( u ( p ) , p ) = 0 が成り立ち、( w , p ) ∈ Q (w,p)\in Q ( w , p ) ∈ Q 、w ∈ B w\in B w ∈ B 、p ∈ V p\in V p ∈ V 、G ( w , p ) = 0 G(w,p)=0 G ( w , p ) = 0 ならばw = u ( p ) w=u(p) w = u ( p ) である。
(1) のV V V 、u u u について、任意のp ∈ V p\in V p ∈ V でD u G ( u ( p ) , p ) D_uG(u(p),p) D u G ( u ( p ) , p ) は正則であり、任意のp ˙ ∈ R q \dot p\in\R^q p ˙ ∈ R q についてu ˙ : = D u ( p ) p ˙ \dot u:=Du(p)\dot p u ˙ := D u ( p ) p ˙ は一次方程式
D u G ( u ( p ) , p ) u ˙ = − D p G ( u ( p ) , p ) p ˙ D_uG(u(p),p)\,\dot u=-D_pG(u(p),p)\,\dot p D u G ( u ( p ) , p ) u ˙ = − D p G ( u ( p ) , p ) p ˙
のただ一つの解である。
証明. 開集合Q ′ : = { ( p , w ) ∣ ( w , p ) ∈ Q } Q':=\{(p,w)\mid(w,p)\in Q\} Q ′ := {( p , w ) ∣ ( w , p ) ∈ Q } 上のC 1 C^1 C 1 級写像F ( p , w ) : = G ( w , p ) F(p,w):=G(w,p) F ( p , w ) := G ( w , p ) の第一変数、第二変数に関する全微分は、それぞれD p G ( w , p ) D_pG(w,p) D p G ( w , p ) 、D u G ( w , p ) D_uG(w,p) D u G ( w , p ) である。F ( p 0 , u 0 ) = 0 F(p_0,u_0)=0 F ( p 0 , u 0 ) = 0 であり、D u G ( u 0 , p 0 ) D_uG(u_0,p_0) D u G ( u 0 , p 0 ) は正則であるから、§E4.8 定理 2.1 (2) をn = q n=q n = q 、m = k m=k m = k 、( a , b ) = ( p 0 , u 0 ) (a,b)=(p_0,u_0) ( a , b ) = ( p 0 , u 0 ) として適用すると、p 0 p_0 p 0 の開近傍V V V 、u 0 u_0 u 0 の開近傍B B B 、C 1 C^1 C 1 級写像u : V → B u\colon V\to B u : V → B が存在して、( p , w ) ∈ V × B (p,w)\in V\times B ( p , w ) ∈ V × B についてF ( p , w ) = 0 F(p,w)=0 F ( p , w ) = 0 とw = u ( p ) w=u(p) w = u ( p ) は同値であり、u ( p 0 ) = u 0 u(p_0)=u_0 u ( p 0 ) = u 0 であり、任意のp ∈ V p\in V p ∈ V でD u G ( u ( p ) , p ) D_uG(u(p),p) D u G ( u ( p ) , p ) は正則であって
D u ( p ) = − D u G ( u ( p ) , p ) − 1 D p G ( u ( p ) , p ) Du(p)=-D_uG(u(p),p)^{-1}D_pG(u(p),p) D u ( p ) = − D u G ( u ( p ) , p ) − 1 D p G ( u ( p ) , p ) が成り立つ。同値性をw = u ( p ) w=u(p) w = u ( p ) に適用するとG ( u ( p ) , p ) = 0 G(u(p),p)=0 G ( u ( p ) , p ) = 0 を得る。これで(1) は示された。D u ( p ) Du(p) D u ( p ) の表示の両辺に左からD u G ( u ( p ) , p ) D_uG(u(p),p) D u G ( u ( p ) , p ) を掛けるとu ˙ = D u ( p ) p ˙ \dot u=Du(p)\dot p u ˙ = D u ( p ) p ˙ が一次方程式を満たすことが従い、係数行列が正則であるから解はただ一つである。▨
系 5.2. k , q ∈ N ≥ 1 k,q\in\NN k , q ∈ N ≥ 1 とし、P ⊆ R q P\subseteq\R^q P ⊆ R q を開集合、A : P → R k × k A\colon P\to\R^{k\times k} A : P → R k × k とb : P → R k b\colon P\to\R^k b : P → R k を各成分がC 1 C^1 C 1 級である写像とする。P 0 : = { p ∈ P ∣ A ( p ) は正則 } P_0:=\{p\in P\mid A(p)\text{ は正則}\} P 0 := { p ∈ P ∣ A ( p ) は正則 } は開集合であり、u ( p ) : = A ( p ) − 1 b ( p ) u(p):=A(p)^{-1}b(p) u ( p ) := A ( p ) − 1 b ( p ) で定まるu : P 0 → R k u\colon P_0\to\R^k u : P 0 → R k はC 1 C^1 C 1 級であって、任意のp ∈ P 0 p\in P_0 p ∈ P 0 、p ˙ ∈ R q \dot p\in\R^q p ˙ ∈ R q について
D u ( p ) p ˙ = A ( p ) − 1 ( D b ( p ) p ˙ − ( D A ( p ) p ˙ ) u ( p ) ) Du(p)\dot p=A(p)^{-1}\bigl(Db(p)\dot p-(DA(p)\dot p)\,u(p)\bigr) D u ( p ) p ˙ = A ( p ) − 1 ( D b ( p ) p ˙ − ( D A ( p ) p ˙ ) u ( p ) ) が成り立つ。ここで∂ l A ( p ) \partial_lA(p) ∂ l A ( p ) をA A A の各成分のp l p_l p l に関する偏導関数を並べた行列とし、D A ( p ) p ˙ : = ∑ l = 1 q p ˙ l ∂ l A ( p ) DA(p)\dot p:=\sum_{l=1}^q\dot p_l\,\partial_lA(p) D A ( p ) p ˙ := ∑ l = 1 q p ˙ l ∂ l A ( p ) と置く。
命題 5.3. k k k 、q q q 、Q Q Q 、G G G 、( u 0 , p 0 ) (u_0,p_0) ( u 0 , p 0 ) を命題 5.1 のとおりとし、同命題のV V V 、B B B 、u u u を取る。J : Q → R J\colon Q\to\R J : Q → R をC 1 C^1 C 1 級関数とし、j : V → R j\colon V\to\R j : V → R をj ( p ) : = J ( u ( p ) , p ) j(p):=J(u(p),p) j ( p ) := J ( u ( p ) , p ) で定める。p ∈ V p\in V p ∈ V について、∇ J ( u ( p ) , p ) ∈ R k × R q \nabla J(u(p),p)\in\R^k\times\R^q ∇ J ( u ( p ) , p ) ∈ R k × R q の前半k k k 成分を∇ u J ( u ( p ) , p ) \nabla_uJ(u(p),p) ∇ u J ( u ( p ) , p ) 、後半q q q 成分を∇ p J ( u ( p ) , p ) \nabla_pJ(u(p),p) ∇ p J ( u ( p ) , p ) と書く。このとき一次方程式
D u G ( u ( p ) , p ) T λ = ∇ u J ( u ( p ) , p ) D_uG(u(p),p)^{\mathsf T}\lambda=\nabla_uJ(u(p),p) D u G ( u ( p ) , p ) T λ = ∇ u J ( u ( p ) , p ) はただ一つの解λ ∈ R k \lambda\in\R^k λ ∈ R k を持ち、j j j はp p p で全微分可能であって
∇ j ( p ) = ∇ p J ( u ( p ) , p ) − D p G ( u ( p ) , p ) T λ \nabla j(p)=\nabla_pJ(u(p),p)-D_pG(u(p),p)^{\mathsf T}\lambda ∇ j ( p ) = ∇ p J ( u ( p ) , p ) − D p G ( u ( p ) , p ) T λ が成り立つ。
証明. p ∈ V p\in V p ∈ V を固定し、M : = D u G ( u ( p ) , p ) M:=D_uG(u(p),p) M := D u G ( u ( p ) , p ) 、E : = D p G ( u ( p ) , p ) E:=D_pG(u(p),p) E := D p G ( u ( p ) , p ) と置く。命題 5.1 (2) によりM M M は正則であるからM T M^{\mathsf T} M T も正則であり、λ \lambda λ はただ一つ存在する。ι : V → Q \iota\colon V\to Q ι : V → Q をι ( p ′ ) : = ( u ( p ′ ) , p ′ ) \iota(p'):=(u(p'),p') ι ( p ′ ) := ( u ( p ′ ) , p ′ ) で定めると、ι \iota ι はC 1 C^1 C 1 級であり、j = J ∘ ι j=J\circ\iota j = J ∘ ι である。§E4.3 定理 1.1 によりj j j はp p p で全微分可能であり、p ˙ ∈ R q \dot p\in\R^q p ˙ ∈ R q とu ˙ : = D u ( p ) p ˙ \dot u:=Du(p)\dot p u ˙ := D u ( p ) p ˙ について、§E4.3 定理 3.2 から
D j ( p ) p ˙ = D J ( ι ( p ) ) ( u ˙ , p ˙ ) = ⟨ ∇ u J ( u ( p ) , p ) , u ˙ ⟩ + ⟨ ∇ p J ( u ( p ) , p ) , p ˙ ⟩ Dj(p)\dot p=DJ(\iota(p))(\dot u,\dot p)=\langle\nabla_uJ(u(p),p),\dot u\rangle+\langle\nabla_pJ(u(p),p),\dot p\rangle D j ( p ) p ˙ = D J ( ι ( p )) ( u ˙ , p ˙ ) = ⟨ ∇ u J ( u ( p ) , p ) , u ˙ ⟩ + ⟨ ∇ p J ( u ( p ) , p ) , p ˙ ⟩ である。命題 5.1 (2) によりM u ˙ = − E p ˙ M\dot u=-E\dot p M u ˙ = − E p ˙ であるから
⟨ ∇ u J ( u ( p ) , p ) , u ˙ ⟩ = ⟨ M T λ , u ˙ ⟩ = ⟨ λ , M u ˙ ⟩ = − ⟨ λ , E p ˙ ⟩ = − ⟨ E T λ , p ˙ ⟩ \langle\nabla_uJ(u(p),p),\dot u\rangle=\langle M^{\mathsf T}\lambda,\dot u\rangle=\langle\lambda,M\dot u\rangle=-\langle\lambda,E\dot p\rangle=-\langle E^{\mathsf T}\lambda,\dot p\rangle ⟨ ∇ u J ( u ( p ) , p ) , u ˙ ⟩ = ⟨ M T λ , u ˙ ⟩ = ⟨ λ , M u ˙ ⟩ = − ⟨ λ , E p ˙ ⟩ = − ⟨ E T λ , p ˙ ⟩ であり、任意のp ˙ \dot p p ˙ についてD j ( p ) p ˙ = ⟨ ∇ p J ( u ( p ) , p ) − E T λ , p ˙ ⟩ Dj(p)\dot p=\langle\nabla_pJ(u(p),p)-E^{\mathsf T}\lambda,\dot p\rangle D j ( p ) p ˙ = ⟨ ∇ p J ( u ( p ) , p ) − E T λ , p ˙ ⟩ が成り立つ。§E4.3 定理 3.2 の勾配の一意性により∇ j ( p ) = ∇ p J ( u ( p ) , p ) − E T λ \nabla j(p)=\nabla_pJ(u(p),p)-E^{\mathsf T}\lambda ∇ j ( p ) = ∇ p J ( u ( p ) , p ) − E T λ である。▨
6 反復の微分
命題 6.1. k , q ∈ N ≥ 1 k,q\in\NN k , q ∈ N ≥ 1 とし、Q ⊆ R k × R q Q\subseteq\R^k\times\R^q Q ⊆ R k × R q を開集合、φ : Q → R k \varphi\colon Q\to\R^k φ : Q → R k をC 1 C^1 C 1 級写像、w 0 ∈ R k w_0\in\R^k w 0 ∈ R k とする。D u φ D_u\varphi D u φ 、D p φ D_p\varphi D p φ を命題 5.1 のD u G D_uG D u G 、D p G D_pG D p G と同じく定める。開集合A j ⊆ R q A_j\subseteq\R^q A j ⊆ R q と写像u j : A j → R k u_j\colon A_j\to\R^k u j : A j → R k を、A 0 : = R q A_0:=\R^q A 0 := R q 、u 0 ( p ) : = w 0 u_0(p):=w_0 u 0 ( p ) := w 0 、
A j + 1 : = { p ∈ A j ∣ ( u j ( p ) , p ) ∈ Q } , u j + 1 ( p ) : = φ ( u j ( p ) , p ) ( p ∈ A j + 1 ) A_{j+1}:=\{p\in A_j\mid(u_j(p),p)\in Q\},\qquad u_{j+1}(p):=\varphi(u_j(p),p)\quad(p\in A_{j+1}) A j + 1 := { p ∈ A j ∣ ( u j ( p ) , p ) ∈ Q } , u j + 1 ( p ) := φ ( u j ( p ) , p ) ( p ∈ A j + 1 ) により定める。
各A j A_j A j は開集合であり、u j u_j u j はA j A_j A j 上でC 1 C^1 C 1 級である。S j ( p ) : = D u j ( p ) ∈ R k × q S_j(p):=Du_j(p)\in\R^{k\times q} S j ( p ) := D u j ( p ) ∈ R k × q と置くと、S 0 ( p ) = 0 S_0(p)=0 S 0 ( p ) = 0 であり、p ∈ A j + 1 p\in A_{j+1} p ∈ A j + 1 について
S j + 1 ( p ) = D u φ ( u j ( p ) , p ) S j ( p ) + D p φ ( u j ( p ) , p ) S_{j+1}(p)=D_u\varphi(u_j(p),p)\,S_j(p)+D_p\varphi(u_j(p),p) S j + 1 ( p ) = D u φ ( u j ( p ) , p ) S j ( p ) + D p φ ( u j ( p ) , p )
が成り立つ。
p ∈ ⋂ j A j p\in\bigcap_jA_j p ∈ ⋂ j A j について、u j ( p ) u_j(p) u j ( p ) があるu ∗ u^* u ∗ に収束して( u ∗ , p ) ∈ Q (u^*,p)\in Q ( u ∗ , p ) ∈ Q であり、S j ( p ) S_j(p) S j ( p ) があるS ∈ R k × q S\in\R^{k\times q} S ∈ R k × q に収束するならば、u ∗ = φ ( u ∗ , p ) u^*=\varphi(u^*,p) u ∗ = φ ( u ∗ , p ) かつ( I k − D u φ ( u ∗ , p ) ) S = D p φ ( u ∗ , p ) (I_k-D_u\varphi(u^*,p))S=D_p\varphi(u^*,p) ( I k − D u φ ( u ∗ , p )) S = D p φ ( u ∗ , p ) が成り立つ。
(2) の仮定に加えてI k − D u φ ( u ∗ , p ) I_k-D_u\varphi(u^*,p) I k − D u φ ( u ∗ , p ) が正則ならば、p p p の開近傍V V V 、u ∗ u^* u ∗ の開近傍B B B 、C 1 C^1 C 1 級写像u ~ : V → B \tilde u\colon V\to B u ~ : V → B が存在して、u ~ ( p ) = u ∗ \tilde u(p)=u^* u ~ ( p ) = u ∗ 、任意のp ′ ∈ V p'\in V p ′ ∈ V についてu ~ ( p ′ ) = φ ( u ~ ( p ′ ) , p ′ ) \tilde u(p')=\varphi(\tilde u(p'),p') u ~ ( p ′ ) = φ ( u ~ ( p ′ ) , p ′ ) が成り立ち、( w , p ′ ) ∈ Q (w,p')\in Q ( w , p ′ ) ∈ Q 、w ∈ B w\in B w ∈ B 、p ′ ∈ V p'\in V p ′ ∈ V 、w = φ ( w , p ′ ) w=\varphi(w,p') w = φ ( w , p ′ ) ならばw = u ~ ( p ′ ) w=\tilde u(p') w = u ~ ( p ′ ) である。さらにS = D u ~ ( p ) S=D\tilde u(p) S = D u ~ ( p ) である。
証明. (1) を示す。u 0 u_0 u 0 は定数写像であるからC 1 C^1 C 1 級であり、S 0 = 0 S_0=0 S 0 = 0 である。A j A_j A j が開集合でありu j u_j u j がA j A_j A j 上でC 1 C^1 C 1 級であるとする。ι j ( p ) : = ( u j ( p ) , p ) \iota_j(p):=(u_j(p),p) ι j ( p ) := ( u j ( p ) , p ) で定まるι j : A j → R k × R q \iota_j\colon A_j\to\R^k\times\R^q ι j : A j → R k × R q はC 1 C^1 C 1 級であり、A j + 1 = ι j − 1 ( Q ) A_{j+1}=\iota_j^{-1}(Q) A j + 1 = ι j − 1 ( Q ) は開集合である。u j + 1 = φ ∘ ι j u_{j+1}=\varphi\circ\iota_j u j + 1 = φ ∘ ι j であるから、§E4.3 定理 1.1 によりu j + 1 u_{j+1} u j + 1 はA j + 1 A_{j+1} A j + 1 上で全微分可能であり、p ˙ ∈ R q \dot p\in\R^q p ˙ ∈ R q について
D u j + 1 ( p ) p ˙ = D φ ( ι j ( p ) ) ( S j ( p ) p ˙ , p ˙ ) = D u φ ( u j ( p ) , p ) S j ( p ) p ˙ + D p φ ( u j ( p ) , p ) p ˙ Du_{j+1}(p)\dot p=D\varphi(\iota_j(p))(S_j(p)\dot p,\dot p)=D_u\varphi(u_j(p),p)\,S_j(p)\dot p+D_p\varphi(u_j(p),p)\,\dot p D u j + 1 ( p ) p ˙ = D φ ( ι j ( p )) ( S j ( p ) p ˙ , p ˙ ) = D u φ ( u j ( p ) , p ) S j ( p ) p ˙ + D p φ ( u j ( p ) , p ) p ˙ である。右辺の係数はp p p について連続であるからu j + 1 u_{j+1} u j + 1 はC 1 C^1 C 1 級である。
(2) を示す。φ \varphi φ 、D u φ D_u\varphi D u φ 、D p φ D_p\varphi D p φ は( u ∗ , p ) ∈ Q (u^*,p)\in Q ( u ∗ , p ) ∈ Q で連続である。u j + 1 ( p ) = φ ( u j ( p ) , p ) u_{j+1}(p)=\varphi(u_j(p),p) u j + 1 ( p ) = φ ( u j ( p ) , p ) でj → ∞ j\to\infty j → ∞ とするとu ∗ = φ ( u ∗ , p ) u^*=\varphi(u^*,p) u ∗ = φ ( u ∗ , p ) を得る。(1) の漸化式でj → ∞ j\to\infty j → ∞ とするとS = D u φ ( u ∗ , p ) S + D p φ ( u ∗ , p ) S=D_u\varphi(u^*,p)S+D_p\varphi(u^*,p) S = D u φ ( u ∗ , p ) S + D p φ ( u ∗ , p ) を得る。
(3) を示す。G ( w , p ′ ) : = w − φ ( w , p ′ ) G(w,p'):=w-\varphi(w,p') G ( w , p ′ ) := w − φ ( w , p ′ ) で定まるG : Q → R k G\colon Q\to\R^k G : Q → R k はC 1 C^1 C 1 級であり、D u G = I k − D u φ D_uG=I_k-D_u\varphi D u G = I k − D u φ 、D p G = − D p φ D_pG=-D_p\varphi D p G = − D p φ である。(2) によりG ( u ∗ , p ) = 0 G(u^*,p)=0 G ( u ∗ , p ) = 0 であり、D u G ( u ∗ , p ) D_uG(u^*,p) D u G ( u ∗ , p ) は正則であるから、命題 5.1 を( u 0 , p 0 ) = ( u ∗ , p ) (u_0,p_0)=(u^*,p) ( u 0 , p 0 ) = ( u ∗ , p ) として適用すると、V V V 、B B B 、u ~ \tilde u u ~ が得られ、
D u ~ ( p ) = ( I k − D u φ ( u ∗ , p ) ) − 1 D p φ ( u ∗ , p ) D\tilde u(p)=\bigl(I_k-D_u\varphi(u^*,p)\bigr)^{-1}D_p\varphi(u^*,p) D u ~ ( p ) = ( I k − D u φ ( u ∗ , p ) ) − 1 D p φ ( u ∗ , p ) である。(2) の等式の両辺に左から( I k − D u φ ( u ∗ , p ) ) − 1 (I_k-D_u\varphi(u^*,p))^{-1} ( I k − D u φ ( u ∗ , p ) ) − 1 を掛けると、右辺はS S S に等しい。▨
例 6.2. k = q = 1 k=q=1 k = q = 1 、Q = ( 0 , ∞ ) × R Q=(0,\infty)\times\R Q = ( 0 , ∞ ) × R 、φ ( w , p ) = 1 2 ( w + p w ) \varphi(w,p)=\frac12\bigl(w+\frac pw\bigr) φ ( w , p ) = 2 1 ( w + w p ) 、w 0 = 1 w_0=1 w 0 = 1 とし、命題 6.1 のu j u_j u j 、S j S_j S j を考える。u j + 1 ( p ) = φ ( u j ( p ) , p ) u_{j+1}(p)=\varphi(u_j(p),p) u j + 1 ( p ) = φ ( u j ( p ) , p ) は方程式w 2 = p w^2=p w 2 = p に対する Newton 法の反復である。D u φ ( w , p ) = 1 2 ( 1 − p w 2 ) D_u\varphi(w,p)=\frac12\bigl(1-\frac p{w^2}\bigr) D u φ ( w , p ) = 2 1 ( 1 − w 2 p ) 、D p φ ( w , p ) = 1 2 w D_p\varphi(w,p)=\frac1{2w} D p φ ( w , p ) = 2 w 1 であるから、漸化式は
S j + 1 ( p ) = 1 2 ( 1 − p u j ( p ) 2 ) S j ( p ) + 1 2 u j ( p ) , S 0 ( p ) = 0 S_{j+1}(p)=\frac12\Bigl(1-\frac p{u_j(p)^2}\Bigr)S_j(p)+\frac1{2u_j(p)},\qquad S_0(p)=0 S j + 1 ( p ) = 2 1 ( 1 − u j ( p ) 2 p ) S j ( p ) + 2 u j ( p ) 1 , S 0 ( p ) = 0 である。u 0 ( p ) = 1 > 0 u_0(p)=1>0 u 0 ( p ) = 1 > 0 であり、w > 0 w>0 w > 0 、p > 0 p>0 p > 0 ならばφ ( w , p ) > 0 \varphi(w,p)>0 φ ( w , p ) > 0 であるから、u j ( 4 ) > 0 u_j(4)>0 u j ( 4 ) > 0 が帰納的に成り立ち、4 ∈ ⋂ j A j 4\in\bigcap_jA_j 4 ∈ ⋂ j A j である。p = 4 p=4 p = 4 で有理数として計算すると次のとおりである。
j 1 2 3 u j ( 4 ) 5 2 41 20 3281 1640 S j ( 4 ) 1 2 29 100 84349 336200 \begin{array}{c|ccc}
j&1&2&3\\\hline
u_j(4)&\dfrac52&\dfrac{41}{20}&\dfrac{3281}{1640}\\[2mm]
S_j(4)&\dfrac12&\dfrac{29}{100}&\dfrac{84349}{336200}
\end{array} j u j ( 4 ) S j ( 4 ) 1 2 5 2 1 2 20 41 100 29 3 1640 3281 336200 84349 p > 0 p>0 p > 0 、w > 0 w>0 w > 0 についてw = φ ( w , p ) w=\varphi(w,p) w = φ ( w , p ) とw 2 = p w^2=p w 2 = p は同値である。G ( w , p ) : = w 2 − p G(w,p):=w^2-p G ( w , p ) := w 2 − p (( w , p ) ∈ Q (w,p)\in Q ( w , p ) ∈ Q )と置くと、G ( 2 , 4 ) = 0 G(2,4)=0 G ( 2 , 4 ) = 0 、D u G ( 2 , 4 ) = 4 D_uG(2,4)=4 D u G ( 2 , 4 ) = 4 は正則、D p G ( 2 , 4 ) = − 1 D_pG(2,4)=-1 D p G ( 2 , 4 ) = − 1 である。命題 5.1 を( u 0 , p 0 ) = ( 2 , 4 ) (u_0,p_0)=(2,4) ( u 0 , p 0 ) = ( 2 , 4 ) として適用して得られる写像をu ~ : V → B \tilde u\colon V\to B u ~ : V → B とすると、p ′ ∈ V p'\in V p ′ ∈ V について( u ~ ( p ′ ) , p ′ ) ∈ Q (\tilde u(p'),p')\in Q ( u ~ ( p ′ ) , p ′ ) ∈ Q かつu ~ ( p ′ ) 2 = p ′ \tilde u(p')^2=p' u ~ ( p ′ ) 2 = p ′ であるから、V ⊆ ( 0 , ∞ ) V\subseteq(0,\infty) V ⊆ ( 0 , ∞ ) でありV V V 上でu ~ ( p ′ ) = p ′ \tilde u(p')=\sqrt{p'} u ~ ( p ′ ) = p ′ である。命題 5.1 (2) の一次方程式4 u ~ ′ ( 4 ) = 1 4\,\tilde u'(4)=1 4 u ~ ′ ( 4 ) = 1 からu ~ ′ ( 4 ) = 1 4 \tilde u'(4)=\frac14 u ~ ′ ( 4 ) = 4 1 である。S j ( 4 ) S_j(4) S j ( 4 ) はj j j 回の反復の出力u j u_j u j のp p p に関する微分係数であり、S 2 ( 4 ) − 1 4 = 1 25 S_2(4)-\frac14=\frac1{25} S 2 ( 4 ) − 4 1 = 25 1 、S 3 ( 4 ) − 1 4 = 299 336200 ≈ 8.89 × 10 − 4 S_3(4)-\frac14=\frac{299}{336200}\approx8.89\times10^{-4} S 3 ( 4 ) − 4 1 = 336200 299 ≈ 8.89 × 1 0 − 4 は0 0 0 でない。同じj j j でu 2 ( 4 ) − 2 = 1 20 u_2(4)-2=\frac1{20} u 2 ( 4 ) − 2 = 20 1 、u 3 ( 4 ) − 2 = 1 1640 ≈ 6.10 × 10 − 4 u_3(4)-2=\frac1{1640}\approx6.10\times10^{-4} u 3 ( 4 ) − 2 = 1640 1 ≈ 6.10 × 1 0 − 4 であり、j = 3 j=3 j = 3 では微分係数の誤差が解の誤差を上回る。u j ( 4 ) u_j(4) u j ( 4 ) が正の数u ∗ u^* u ∗ に収束し、S j ( 4 ) S_j(4) S j ( 4 ) が収束するならば、命題 6.1 (2) によりu ∗ = φ ( u ∗ , 4 ) u^*=\varphi(u^*,4) u ∗ = φ ( u ∗ , 4 ) からu ∗ = 2 u^*=2 u ∗ = 2 であり、D u φ ( 2 , 4 ) = 0 D_u\varphi(2,4)=0 D u φ ( 2 , 4 ) = 0 、D p φ ( 2 , 4 ) = 1 4 D_p\varphi(2,4)=\frac14 D p φ ( 2 , 4 ) = 4 1 からS j ( 4 ) S_j(4) S j ( 4 ) の極限は1 4 = u ~ ′ ( 4 ) \frac14=\tilde u'(4) 4 1 = u ~ ′ ( 4 ) である。
例 6.3. k = q = 1 k=q=1 k = q = 1 、Q = R × R Q=\R\times\R Q = R × R 、φ ( w , p ) = w − w 3 + p \varphi(w,p)=w-w^3+p φ ( w , p ) = w − w 3 + p 、w 0 = 1 2 w_0=\frac12 w 0 = 2 1 とし、命題 6.1 のu j u_j u j 、S j S_j S j をp = 0 p=0 p = 0 で考える。A j = R A_j=\R A j = R であり、u j : = u j ( 0 ) u_j:=u_j(0) u j := u j ( 0 ) 、S j : = S j ( 0 ) S_j:=S_j(0) S j := S j ( 0 ) と書くと
u j + 1 = u j − u j 3 , S j + 1 = ( 1 − 3 u j 2 ) S j + 1 , u 0 = 1 2 , S 0 = 0 u_{j+1}=u_j-u_j^3,\qquad S_{j+1}=(1-3u_j^2)S_j+1,\qquad u_0=\frac12,\ S_0=0 u j + 1 = u j − u j 3 , S j + 1 = ( 1 − 3 u j 2 ) S j + 1 , u 0 = 2 1 , S 0 = 0 である。
0 < u j ≤ 1 2 0<u_j\le\frac12 0 < u j ≤ 2 1 ならばu j + 1 = u j ( 1 − u j 2 ) ∈ ( 0 , u j ) u_{j+1}=u_j(1-u_j^2)\in(0,u_j) u j + 1 = u j ( 1 − u j 2 ) ∈ ( 0 , u j ) であるから、すべてのj j j について0 < u j ≤ 1 2 0<u_j\le\frac12 0 < u j ≤ 2 1 である。s ∈ [ 0 , 1 ) s\in[0,1) s ∈ [ 0 , 1 ) について( 1 + 2 s ) ( 1 − s ) 2 = 1 − 3 s 2 + 2 s 3 ≤ 1 (1+2s)(1-s)^2=1-3s^2+2s^3\le1 ( 1 + 2 s ) ( 1 − s ) 2 = 1 − 3 s 2 + 2 s 3 ≤ 1 であるから、s = u j 2 s=u_j^2 s = u j 2 として
1 u j + 1 2 = 1 u j 2 ( 1 − u j 2 ) 2 ≥ 1 + 2 u j 2 u j 2 = 1 u j 2 + 2 \frac1{u_{j+1}^2}=\frac1{u_j^2(1-u_j^2)^2}\ge\frac{1+2u_j^2}{u_j^2}=\frac1{u_j^2}+2 u j + 1 2 1 = u j 2 ( 1 − u j 2 ) 2 1 ≥ u j 2 1 + 2 u j 2 = u j 2 1 + 2
を得る。したがってu j 2 ≤ 1 2 j + 4 u_j^2\le\frac1{2j+4} u j 2 ≤ 2 j + 4 1 であり、u j → 0 u_j\to0 u j → 0 である。0 0 0 はφ ( ⋅ , 0 ) \varphi(\cdot,0) φ ( ⋅ , 0 ) のただ一つの不動点である。
S 1 = 1 S_1=1 S 1 = 1 である。j ≥ 1 j\ge1 j ≥ 1 についてS j ≥ j + 2 3 S_j\ge\frac{j+2}3 S j ≥ 3 j + 2 ならば、1 − 3 u j 2 ≥ 1 − 3 2 j + 4 ≥ 0 1-3u_j^2\ge1-\frac3{2j+4}\ge0 1 − 3 u j 2 ≥ 1 − 2 j + 4 3 ≥ 0 とS j ≥ 0 S_j\ge0 S j ≥ 0 から
S j + 1 ≥ ( 1 − 3 2 j + 4 ) j + 2 3 + 1 = j + 2 3 + 1 2 ≥ j + 3 3 S_{j+1}\ge\Bigl(1-\frac3{2j+4}\Bigr)\frac{j+2}3+1=\frac{j+2}3+\frac12\ge\frac{j+3}3 S j + 1 ≥ ( 1 − 2 j + 4 3 ) 3 j + 2 + 1 = 3 j + 2 + 2 1 ≥ 3 j + 3
である。したがってj ≥ 1 j\ge1 j ≥ 1 についてS j ≥ j + 2 3 S_j\ge\frac{j+2}3 S j ≥ 3 j + 2 であり、S j S_j S j は収束しない。
I 1 − D u φ ( 0 , 0 ) = 3 ⋅ 0 2 = 0 I_1-D_u\varphi(0,0)=3\cdot0^2=0 I 1 − D u φ ( 0 , 0 ) = 3 ⋅ 0 2 = 0 は正則でない。各p ∈ R p\in\R p ∈ R についてφ ( ⋅ , p ) \varphi(\cdot,p) φ ( ⋅ , p ) のただ一つの不動点はw 3 = p w^3=p w 3 = p の実数解p 1 / 3 p^{1/3} p 1/3 であり、p ↦ p 1 / 3 p\mapsto p^{1/3} p ↦ p 1/3 はp = 0 p=0 p = 0 で微分可能でない。
反復u j u_j u j は収束するが、その微分係数S j S_j S j は収束せず、命題 6.1 (2) の仮定のうちS j ( p ) S_j(p) S j ( p ) の収束はu j ( p ) u_j(p) u j ( p ) の収束から従わない。
7 有限差分との比較
例 7.2. t i : = i t_i:=i t i := i 、( y 0 , y 1 , y 2 ) : = ( 1 , 1 2 , 1 4 ) (y_0,y_1,y_2):=(1,\frac12,\frac14) ( y 0 , y 1 , y 2 ) := ( 1 , 2 1 , 4 1 ) とし、減衰曲線a e − b t a e^{-bt} a e − b t の当てはめの損失
L ( a , b ) : = 1 2 ∑ i = 0 2 ( a e − b t i − y i ) 2 L(a,b):=\frac12\sum_{i=0}^2\bigl(ae^{-bt_i}-y_i\bigr)^2 L ( a , b ) := 2 1 i = 0 ∑ 2 ( a e − b t i − y i ) 2 を考える。L L L を定めるR 2 \R^2 R 2 上の2 2 2 入力15 15 15 節点の計算グラフを、入力v 1 = a v_1=a v 1 = a 、v 2 = b v_2=b v 2 = b と、各i i i についてe i = exp ( − t i v 2 ) e_i=\exp(-t_iv_2) e i = exp ( − t i v 2 ) 、z i = v 1 e i z_i=v_1e_i z i = v 1 e i 、r i = z i − y i r_i=z_i-y_i r i = z i − y i 、s i = 1 2 r i 2 s_i=\frac12r_i^2 s i = 2 1 r i 2 を値とする4 4 4 個の節点、およびL = s 0 + s 1 + s 2 L=s_0+s_1+s_2 L = s 0 + s 1 + s 2 を値とする節点で構成する。局所偏導関数は∂ e i / ∂ v 2 = − t i e i \partial e_i/\partial v_2=-t_ie_i ∂ e i / ∂ v 2 = − t i e i 、∂ z i / ∂ v 1 = e i \partial z_i/\partial v_1=e_i ∂ z i / ∂ v 1 = e i 、∂ z i / ∂ e i = v 1 \partial z_i/\partial e_i=v_1 ∂ z i / ∂ e i = v 1 、∂ r i / ∂ z i = 1 \partial r_i/\partial z_i=1 ∂ r i / ∂ z i = 1 、∂ s i / ∂ r i = r i \partial s_i/\partial r_i=r_i ∂ s i / ∂ r i = r i 、∂ L / ∂ s i = 1 \partial L/\partial s_i=1 ∂ L / ∂ s i = 1 である。
重み1 1 1 の逆モードはs ˉ i = 1 \bar s_i=1 s ˉ i = 1 、r ˉ i = z ˉ i = r i \bar r_i=\bar z_i=r_i r ˉ i = z ˉ i = r i 、e ˉ i = r i v 1 \bar e_i=r_iv_1 e ˉ i = r i v 1 を与え、節点1 1 1 の後続節点z 0 , z 1 , z 2 z_0,z_1,z_2 z 0 , z 1 , z 2 と節点2 2 2 の後続節点e 0 , e 1 , e 2 e_0,e_1,e_2 e 0 , e 1 , e 2 からの寄与の和として
v ˉ 1 = ∑ i = 0 2 r i e i , v ˉ 2 = − v 1 ∑ i = 0 2 t i r i e i \bar v_1=\sum_{i=0}^2r_ie_i,\qquad\bar v_2=-v_1\sum_{i=0}^2t_ir_ie_i v ˉ 1 = i = 0 ∑ 2 r i e i , v ˉ 2 = − v 1 i = 0 ∑ 2 t i r i e i
を与える。方向( 0 , 1 ) (0,1) ( 0 , 1 ) の前進モードはe ˙ i = − t i e i \dot e_i=-t_ie_i e ˙ i = − t i e i 、z ˙ i = v 1 e ˙ i \dot z_i=v_1\dot e_i z ˙ i = v 1 e ˙ i 、r ˙ i = z ˙ i \dot r_i=\dot z_i r ˙ i = z ˙ i 、s ˙ i = r i r ˙ i \dot s_i=r_i\dot r_i s ˙ i = r i r ˙ i を経てL ˙ = − v 1 ∑ i t i r i e i \dot L=-v_1\sum_it_ir_ie_i L ˙ = − v 1 ∑ i t i r i e i を与える。これらは手計算による∂ a L = ∑ i r i e − b t i \partial_aL=\sum_ir_ie^{-bt_i} ∂ a L = ∑ i r i e − b t i 、∂ b L = − a ∑ i t i r i e − b t i \partial_bL=-a\sum_it_ir_ie^{-bt_i} ∂ b L = − a ∑ i t i r i e − b t i に一致する。
( a , b ) = ( 1 , 1 2 ) (a,b)=(1,\frac12) ( a , b ) = ( 1 , 2 1 ) では、有効数字15桁でe 1 = 0.606530659712633 e_1=0.606530659712633 e 1 = 0.606530659712633 、e 2 = 0.367879441171442 e_2=0.367879441171442 e 2 = 0.367879441171442 、r 0 = 0 r_0=0 r 0 = 0 、r 1 = 0.106530659712633 r_1=0.106530659712633 r 1 = 0.106530659712633 、r 2 = 0.117879441171442 r_2=0.117879441171442 r 2 = 0.117879441171442 であり、∂ a L ( 1 , 1 2 ) = 0.107979534258878 \partial_aL(1,\frac12)=0.107979534258878 ∂ a L ( 1 , 2 1 ) = 0.107979534258878 、∂ b L ( 1 , 1 2 ) = − 0.151344957202630 \partial_bL(1,\frac12)=-0.151344957202630 ∂ b L ( 1 , 2 1 ) = − 0.151344957202630 である。
g ( s ) : = L ( 1 , 1 2 + s ) g(s):=L(1,\frac12+s) g ( s ) := L ( 1 , 2 1 + s ) とし、刻みh = 2 − k h=2^{-k} h = 2 − k の中心差分D h 0 g ( 0 ) D^0_hg(0) D h 0 g ( 0 ) で∂ b L ( 1 , 1 2 ) = g ′ ( 0 ) \partial_bL(1,\frac12)=g'(0) ∂ b L ( 1 , 2 1 ) = g ′ ( 0 ) を近似する。g ′ ′ ′ ( 0 ) = − ∑ i t i 3 e i ( 4 e i − y i ) ≈ − 4.763 g'''(0)=-\sum_it_i^3e_i(4e_i-y_i)\approx-4.763 g ′′′ ( 0 ) = − ∑ i t i 3 e i ( 4 e i − y i ) ≈ − 4.763 である。表の「binary64」は、各演算を binary64 の最近接偶数丸めで行い、指数関数の値を真の値の最近接偶数丸めとし、和をi = 0 , 1 , 2 i=0,1,2 i = 0 , 1 , 2 の順にとってg ( ± h ) g(\pm h) g ( ± h ) と差分商を計算した値の誤差、「厳密」は実数としての差分商D h 0 g ( 0 ) D^0_hg(0) D h 0 g ( 0 ) の誤差を80桁の10進演算で計算した値であり、有効数字4桁で示す。
k k k
binary64 の誤差
厳密な差分商の誤差
h 2 6 g ′ ′ ′ ( 0 ) \frac{h^2}6g'''(0) 6 h 2 g ′′′ ( 0 )
4
− 3.110 × 10 − 3 -3.110\times10^{-3} − 3.110 × 1 0 − 3
− 3.110 × 10 − 3 -3.110\times10^{-3} − 3.110 × 1 0 − 3
− 3.101 × 10 − 3 -3.101\times10^{-3} − 3.101 × 1 0 − 3
8
− 1.211 × 10 − 5 -1.211\times10^{-5} − 1.211 × 1 0 − 5
− 1.211 × 10 − 5 -1.211\times10^{-5} − 1.211 × 1 0 − 5
− 1.211 × 10 − 5 -1.211\times10^{-5} − 1.211 × 1 0 − 5
12
− 4.732 × 10 − 8 -4.732\times10^{-8} − 4.732 × 1 0 − 8
− 4.732 × 10 − 8 -4.732\times10^{-8} − 4.732 × 1 0 − 8
− 4.732 × 10 − 8 -4.732\times10^{-8} − 4.732 × 1 0 − 8
16
− 1.845 × 10 − 10 -1.845\times10^{-10} − 1.845 × 1 0 − 10
− 1.848 × 10 − 10 -1.848\times10^{-10} − 1.848 × 1 0 − 10
− 1.848 × 10 − 10 -1.848\times10^{-10} − 1.848 × 1 0 − 10
20
5.026 × 10 − 13 5.026\times10^{-13} 5.026 × 1 0 − 13
− 7.220 × 10 − 13 -7.220\times10^{-13} − 7.220 × 1 0 − 13
− 7.220 × 10 − 13 -7.220\times10^{-13} − 7.220 × 1 0 − 13
24
3.779 × 10 − 11 3.779\times10^{-11} 3.779 × 1 0 − 11
− 2.820 × 10 − 15 -2.820\times10^{-15} − 2.820 × 1 0 − 15
− 2.820 × 10 − 15 -2.820\times10^{-15} − 2.820 × 1 0 − 15
28
− 1.257 × 10 − 9 -1.257\times10^{-9} − 1.257 × 1 0 − 9
− 1.102 × 10 − 17 -1.102\times10^{-17} − 1.102 × 1 0 − 17
− 1.102 × 10 − 17 -1.102\times10^{-17} − 1.102 × 1 0 − 17
32
− 1.490 × 10 − 9 -1.490\times10^{-9} − 1.490 × 1 0 − 9
− 4.304 × 10 − 20 -4.304\times10^{-20} − 4.304 × 1 0 − 20
− 4.304 × 10 − 20 -4.304\times10^{-20} − 4.304 × 1 0 − 20
36
2.235 × 10 − 9 2.235\times10^{-9} 2.235 × 1 0 − 9
− 1.681 × 10 − 22 -1.681\times10^{-22} − 1.681 × 1 0 − 22
− 1.681 × 10 − 22 -1.681\times10^{-22} − 1.681 × 1 0 − 22
40
− 3.157 × 10 − 6 -3.157\times10^{-6} − 3.157 × 1 0 − 6
− 6.567 × 10 − 25 -6.567\times10^{-25} − 6.567 × 1 0 − 25
− 6.567 × 10 − 25 -6.567\times10^{-25} − 6.567 × 1 0 − 25
厳密な差分商の誤差は§E20.19 定理 1.2 (2) によりh 2 6 g ′ ′ ′ ( ξ ) \frac{h^2}6g'''(\xi) 6 h 2 g ′′′ ( ξ ) (ξ ∈ [ − h , h ] \xi\in[-h,h] ξ ∈ [ − h , h ] )であり、g ′ ′ ′ g''' g ′′′ の連続性からh 2 6 g ′ ′ ′ ( 0 ) \frac{h^2}6g'''(0) 6 h 2 g ′′′ ( 0 ) との比はh → 0 h\to0 h → 0 で1 1 1 に近づく。5 ≤ k ≤ 45 5\le k\le45 5 ≤ k ≤ 45 では、binary64 で計算したg ( ± h ) g(\pm h) g ( ± h ) の値の差と2 h 2h 2 h による除算は丸めを生じない(有理数として確かめた)。したがってこの範囲では、binary64 の誤差と厳密な差分商の誤差の差はg ( ± h ) g(\pm h) g ( ± h ) の計算値の誤差の中心差分に等しく、§E20.19 命題 2.1 (1) によりg ( ± h ) g(\pm h) g ( ± h ) の計算値の誤差の上界の1 h \frac1h h 1 倍以下である。1 ≤ k ≤ 45 1\le k\le45 1 ≤ k ≤ 45 の範囲で binary64 の誤差の絶対値が最小になるのはk = 20 k=20 k = 20 であり、その値は5.03 × 10 − 13 5.03\times10^{-13} 5.03 × 1 0 − 13 である。
同じ丸めの規則で前進モードと逆モードを binary64 で実行すると、得られた∂ a L \partial_aL ∂ a L 、∂ b L \partial_bL ∂ b L の値と真の値との差は、それぞれ5.5 × 10 − 18 5.5\times10^{-18} 5.5 × 1 0 − 18 、− 2.7 × 10 − 17 -2.7\times10^{-17} − 2.7 × 1 0 − 17 であった。この値は観察であり、本記事はこの差の上界を証明しない。
8 演習
解答. det A ( p ) \det A(p) det A ( p ) はA ( p ) A(p) A ( p ) の成分の多項式であるからp p p について連続であり、P 0 = { p ∈ P ∣ det A ( p ) ≠ 0 } P_0=\{p\in P\mid\det A(p)\ne0\} P 0 = { p ∈ P ∣ det A ( p ) = 0 } は開集合である。
p 1 ∈ P 0 p_1\in P_0 p 1 ∈ P 0 を固定する。G : R k × P → R k G\colon\R^k\times P\to\R^k G : R k × P → R k をG ( w , p ) : = A ( p ) w − b ( p ) G(w,p):=A(p)w-b(p) G ( w , p ) := A ( p ) w − b ( p ) で定めると、G G G の各成分はC 1 C^1 C 1 級関数の積と和であるからG G G はC 1 C^1 C 1 級であり、h ∈ R k h\in\R^k h ∈ R k 、p ˙ ∈ R q \dot p\in\R^q p ˙ ∈ R q について
D u G ( w , p ) h = A ( p ) h , D p G ( w , p ) p ˙ = ( D A ( p ) p ˙ ) w − D b ( p ) p ˙ D_uG(w,p)h=A(p)h,\qquad D_pG(w,p)\dot p=(DA(p)\dot p)\,w-Db(p)\dot p D u G ( w , p ) h = A ( p ) h , D p G ( w , p ) p ˙ = ( D A ( p ) p ˙ ) w − D b ( p ) p ˙ である。G ( u ( p 1 ) , p 1 ) = 0 G(u(p_1),p_1)=0 G ( u ( p 1 ) , p 1 ) = 0 でありD u G ( u ( p 1 ) , p 1 ) = A ( p 1 ) D_uG(u(p_1),p_1)=A(p_1) D u G ( u ( p 1 ) , p 1 ) = A ( p 1 ) は正則であるから、命題 5.1 によりp 1 p_1 p 1 の開近傍V V V とC 1 C^1 C 1 級写像u ~ : V → R k \tilde u\colon V\to\R^k u ~ : V → R k が存在して、任意のp ∈ V p\in V p ∈ V でA ( p ) u ~ ( p ) = b ( p ) A(p)\tilde u(p)=b(p) A ( p ) u ~ ( p ) = b ( p ) が成り立ち、A ( p ) A(p) A ( p ) は正則である。A ( p ) A(p) A ( p ) が正則ならばA ( p ) w = b ( p ) A(p)w=b(p) A ( p ) w = b ( p ) の解はA ( p ) − 1 b ( p ) A(p)^{-1}b(p) A ( p ) − 1 b ( p ) だけであるから、V ⊆ P 0 V\subseteq P_0 V ⊆ P 0 でありV V V 上でu ~ = u \tilde u=u u ~ = u である。したがってu u u はp 1 p_1 p 1 の近傍でC 1 C^1 C 1 級である。命題 5.1 (2) により
A ( p 1 ) D u ( p 1 ) p ˙ = − ( D A ( p 1 ) p ˙ ) u ( p 1 ) + D b ( p 1 ) p ˙ A(p_1)\,Du(p_1)\dot p=-(DA(p_1)\dot p)\,u(p_1)+Db(p_1)\dot p A ( p 1 ) D u ( p 1 ) p ˙ = − ( D A ( p 1 ) p ˙ ) u ( p 1 ) + D b ( p 1 ) p ˙ であり、左からA ( p 1 ) − 1 A(p_1)^{-1} A ( p 1 ) − 1 を掛けると主張の等式を得る。p 1 ∈ P 0 p_1\in P_0 p 1 ∈ P 0 は任意であるから、u u u はP 0 P_0 P 0 上でC 1 C^1 C 1 級である。▨
問題 8.2. k k k 、q q q 、P P P 、A A A 、b b b 、P 0 P_0 P 0 、u u u を系 5.2 のとおりとし、c ∈ R k c\in\R^k c ∈ R k に対してj ( p ) : = c T u ( p ) j(p):=c^{\mathsf T}u(p) j ( p ) := c T u ( p ) (p ∈ P 0 p\in P_0 p ∈ P 0 )と置く。p ∈ P 0 p\in P_0 p ∈ P 0 についてA ( p ) T λ = c A(p)^{\mathsf T}\lambda=c A ( p ) T λ = c の解をλ \lambda λ とすると、任意のl ∈ { 1 , … , q } l\in\{1,\dots,q\} l ∈ { 1 , … , q } について
∂ l j ( p ) = λ T ( ∂ l b ( p ) − ∂ l A ( p ) u ( p ) ) \partial_lj(p)=\lambda^{\mathsf T}\bigl(\partial_lb(p)-\partial_lA(p)\,u(p)\bigr) ∂ l j ( p ) = λ T ( ∂ l b ( p ) − ∂ l A ( p ) u ( p ) ) が成り立つことを、命題 5.3 を用いて示せ。
解答. p ∈ P 0 p\in P_0 p ∈ P 0 を固定し、G ( w , p ′ ) : = A ( p ′ ) w − b ( p ′ ) G(w,p'):=A(p')w-b(p') G ( w , p ′ ) := A ( p ′ ) w − b ( p ′ ) (( w , p ′ ) ∈ R k × P (w,p')\in\R^k\times P ( w , p ′ ) ∈ R k × P )、J ( w , p ′ ) : = c T w J(w,p'):=c^{\mathsf T}w J ( w , p ′ ) := c T w と置く。問題 8.1 の解答(p 1 = p p_1=p p 1 = p )により、命題 5.1 を( u 0 , p 0 ) = ( u ( p ) , p ) (u_0,p_0)=(u(p),p) ( u 0 , p 0 ) = ( u ( p ) , p ) として適用して得られる写像u ~ : V → B \tilde u\colon V\to B u ~ : V → B はV ⊆ P 0 V\subseteq P_0 V ⊆ P 0 上でu u u に一致し、V V V 上でj ( p ′ ) = J ( u ~ ( p ′ ) , p ′ ) j(p')=J(\tilde u(p'),p') j ( p ′ ) = J ( u ~ ( p ′ ) , p ′ ) である。∇ u J = c \nabla_uJ=c ∇ u J = c 、∇ p J = 0 \nabla_pJ=0 ∇ p J = 0 であり、D p G ( u ( p ) , p ) e l = ∂ l A ( p ) u ( p ) − ∂ l b ( p ) D_pG(u(p),p)e_l=\partial_lA(p)\,u(p)-\partial_lb(p) D p G ( u ( p ) , p ) e l = ∂ l A ( p ) u ( p ) − ∂ l b ( p ) であるから、命題 5.3 により
∂ l j ( p ) = ⟨ ∇ j ( p ) , e l ⟩ = − ⟨ D p G ( u ( p ) , p ) T λ , e l ⟩ = − λ T D p G ( u ( p ) , p ) e l = λ T ( ∂ l b ( p ) − ∂ l A ( p ) u ( p ) ) \partial_lj(p)=\langle\nabla j(p),e_l\rangle=-\langle D_pG(u(p),p)^{\mathsf T}\lambda,e_l\rangle=-\lambda^{\mathsf T}D_pG(u(p),p)e_l=\lambda^{\mathsf T}\bigl(\partial_lb(p)-\partial_lA(p)\,u(p)\bigr) ∂ l j ( p ) = ⟨ ∇ j ( p ) , e l ⟩ = − ⟨ D p G ( u ( p ) , p ) T λ , e l ⟩ = − λ T D p G ( u ( p ) , p ) e l = λ T ( ∂ l b ( p ) − ∂ l A ( p ) u ( p ) ) である。▨