Adam法を用いたパラメータフィッティングについて
解決したいこと
物理計算におけるパラメータフィッティングを行っております。パラメータ数は100オーダーです。
計算について、目的関数を1度回すのにそこそこ時間がかかることもあり、効率よくフィッティングが行える方法について現在調べております。コードはすべてCで書いております。
問題として、目的関数の微分形を計算することが困難(おそらく不可能)なこともあり、準ニュートン法やPowell法のような一回以上の微分を必要とする手法をとることができず、今は勾配を必要としないsimplex法を用いて計算しています。
質問としては機械学習に用いられているAdam法を用いて計算してみようと考えています。Adam法では勾配をこちらで与える必要があるのですが、Cを用いて数値微分を行わずに計算する方法はありますでしょうか。
実際の機械学習でも微分を用いているのかも正直疑問です。
また勾配を与える必要なく、simplex法以上に効率よく、数学的にも正しい手法があれば教えていただければありがたいです。