April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
私たちはこれまで、2階微分を手計算で求めていました。ここでは、新しいDeZeroを使って、自動で2階微分を求めてみます。まずは簡単な計算を対象に2階微分を計算します。そして、それが上手くいくことを確認したら、続いてニュートン法を使った最適化を行います。
それでは早速、2階微分を求めてみましょう。ここでは、ステップ29で扱った
という計算を対象にします。私たちのDeZeroを使えば、これは次のように実装できます(次に示す実装には、実は1つだけ問題があります)。
importnumpyasnpfromdezeroimportVariabledeff(x):y=x**4-2*x**2returnyx=Variable(np.array(2.0))y=f(x)y.backward(create_graph=True)(x.grad)gx=x.gradgx.backward()(x.grad)
実行結果
variable(24.0) variable(68.0)
まずは、y.backward(create_graph=True)によって、1回目の逆伝播を行います。ここで、引数にcreate_graph=Trueと指定することで、逆伝播の計算に対しても計算グラフが作られます。続いて、逆伝播の計算グラフに対して、さらに逆伝播を行います。このとき、 ...
Read now
Unlock full access