このプロジェクトは、勾配法を可視化するためのもので、さまざまな勾配法を実装し、Rosenbrock関数を用いて最小値を求める過程を可視化します。
- 通常の勾配法 (NormalOptimizer)
- モーメンタム法 (MomentumOptimizer)
- ネステロフの勾配加速法 (NesterovOptimizer)
- AdaGrad (AdaGradOptimizer)
- RMSprop (RMSpropOptimizer)
- AdaDelta (AdaDeltaOptimizer)
- Adam (AdamOptimizer)
- メトロポリス法 (MetropolisOptimizer)
- ニュートン・ラフソン法 (NewtonRaphsonOptimizer)
以下に、各最適化アルゴリズムの設定値と可視化結果を示します。
optimizer.h: 最適化アルゴリズムのクラスと関数の宣言optimizer.cpp: 最適化アルゴリズムの実装gradient_descent.cpp: 勾配降下法の実行と結果の保存
- プロジェクトをクローンまたはダウンロードします。
makeコマンドを使用してプログラムをコンパイルします。make exeでプログラムを実行できます。実行時に、使用する最適化手法を選択します。- 結果は
gradient_descent.datに保存され、ヒートマップデータはheatmap.datに保存されます。 make plotを実行すると,gradient_descent.gifに結果が出力されます。
- C++11以上のコンパイラ
- 標準ライブラリ
- 各最適化アルゴリズムのパラメータは、必要に応じて調整できます。
- プロジェクトは教育目的であり、商用利用は推奨されません。








