Skip to content

tazawa2002/gradient_descent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

勾配法の可視化

このプロジェクトは、勾配法を可視化するためのもので、さまざまな勾配法を実装し、Rosenbrock関数を用いて最小値を求める過程を可視化します。

実装されている最適化アルゴリズム

  1. 通常の勾配法 (NormalOptimizer)
  2. モーメンタム法 (MomentumOptimizer)
  3. ネステロフの勾配加速法 (NesterovOptimizer)
  4. AdaGrad (AdaGradOptimizer)
  5. RMSprop (RMSpropOptimizer)
  6. AdaDelta (AdaDeltaOptimizer)
  7. Adam (AdamOptimizer)
  8. メトロポリス法 (MetropolisOptimizer)
  9. ニュートン・ラフソン法 (NewtonRaphsonOptimizer)

rosenbrock関数での各勾配法の挙動の可視化

以下に、各最適化アルゴリズムの設定値と可視化結果を示します。

1. 通常の勾配法 (NormalOptimizer)

  • 学習率 (Learning Rate): 0.001
  • 可視化: NormalOptimizer

2. モーメンタム法 (MomentumOptimizer)

  • 学習率 (Learning Rate): 0.001
  • モーメンタム係数 (Momentum Coefficient): 0.9
  • 可視化: MomentumOptimizer

3. ネステロフの勾配加速法 (NesterovOptimizer)

  • 学習率 (Learning Rate): 0.001
  • モーメンタム係数 (Momentum Coefficient): 0.9
  • 可視化: NesterovOptimizer

4. AdaGrad (AdaGradOptimizer)

  • 学習率 (Learning Rate): 0.9
  • 可視化: AdaGradOptimizer

5. RMSprop (RMSpropOptimizer)

  • 学習率 (Learning Rate): 0.001
  • 減衰率 (Decay Rate): 0.9
  • 可視化: RMSpropOptimizer

6. AdaDelta (AdaDeltaOptimizer)

  • 減衰率 (Decay Rate): 0.9
  • 可視化: AdaDeltaOptimizer

7. Adam (AdamOptimizer)

  • 学習率 (Learning Rate): 0.001
  • β1: 0.9
  • β2: 0.999
  • 可視化: AdamOptimizer

8. メトロポリス法 (MetropolisOptimizer)

  • 温度 (Temperature): 20
  • 冷却率 (Cooling Rate): 0.99
  • 可視化: MetropolisOptimizer

9. ニュートン・ラフソン法 (NewtonRaphsonOptimizer)

  • 最大ステップ数 (Max Steps): 10000
  • 可視化: NewtonRaphsonOptimizer

プロジェクト構成

  • optimizer.h: 最適化アルゴリズムのクラスと関数の宣言
  • optimizer.cpp: 最適化アルゴリズムの実装
  • gradient_descent.cpp: 勾配降下法の実行と結果の保存

使用方法

  1. プロジェクトをクローンまたはダウンロードします。
  2. makeコマンドを使用してプログラムをコンパイルします。
  3. make exeでプログラムを実行できます。実行時に、使用する最適化手法を選択します。
  4. 結果はgradient_descent.datに保存され、ヒートマップデータはheatmap.datに保存されます。
  5. make plotを実行すると, gradient_descent.gifに結果が出力されます。

依存関係

  • C++11以上のコンパイラ
  • 標準ライブラリ

注意事項

  • 各最適化アルゴリズムのパラメータは、必要に応じて調整できます。
  • プロジェクトは教育目的であり、商用利用は推奨されません。

About

勾配法を可視化

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published