ロジスティック回帰やニューラルネットのコスト関数の最適化は敷居が高いので答えがわかっている簡単なコスト関数を最適化してパラメータを求めてみます。下のように定義します。それぞれのパラメータでコスト関数を偏微分すると下の二つの導関数が得られます。これをfmin_cg()とfmin_bfgs()で解けるか確かめてみます。返していることがわかります。(例2)次はもう少し複雑な例を。scipy.optimizeの例に載っていたサンプルです。J()とgradient()は最適化したいパラメータの関数にする必要があるみたいなので、それ以外のデータはまとめてargsに渡す必要があります。今回は例題として関数の係数を引数としてargsに渡してみます。下のように定義します。それぞれのパラメータでコスト関数を偏微分すると下の二つの導関数が得られます。これをfmin_cg()とfmin_bfgs()で解けるか確かめてみます。-0.25531915]となり、手計算と同じになります。これはすごい・・・最適化アルゴリズムの詳細を調べてもいいけれど、けっこう難しいし、あまり興味がわかない。ブラックボックスとして使いこなせれば十分かな。導関数を自分で計算しなくちゃいけないのがちょっと面倒くさい。Sympyとかで自動的に計算できないのかな?あとでより複雑なコスト関数を持つロジスティック回帰やニューラルネットのパラメータ最適化にも応用してみたいと思います!*1:Shannonではなく、Shannoさんなのか。共役勾配法によるロジスティック回帰のパ...線形回帰による曲線フィッティング»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。