Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

勾配法

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装』、4章「ニューラルネットワークの学習」まで読み終えました。Pythonに触れるのは初めてですが、順調に読み進めることができています。

自分の理解度を定着させるために、以下の問題をRubyで解いてみました。

問: {\displaystyle f(x_0,x_1) = x_0^{2} + x_1^{2} }の最小値を勾配法で求めよ。

実行

テキストと同じように初期値を(-3.0, 4.0)として、勾配法を使って最小値を探索しましたが、以下のように真の最小値(0,0)に近づきました。

$ ruby gradient_method.rb
-6.111107928998789e-10
8.148143905314271e-10