上一篇講了mse函數 , 這次gradient_descent_levenberg_marquardt
@see ${root}/tiny_cnn/optimizer/optimizer.h
這個函數現在也是沒有用到, 但是可以先看看一下:
通過注釋可以了解到:
float_t alpha; 是學習率 , 和反饋階段有關
float_t mu 是一個常數防止步長過大時H很小
此函數的理論基礎可以在下圖的論文找到:
好了 , 聰明的你和親愛會發現:gradient_descent_levenberg_marquardt 這個結構體還繼承自optimizer
順便把optimizer 也看看:
optimizer 是優化器, 這個就是所有優化器的基類
usesHessian :這個是一個成員變量用來標識似乎否使用黑塞矩陣 ,
這個是用來修改權值的時候起作用的, 現在可以不考慮
<<<<好了, 現在返回到main函數中
將來會在C3的時候用到 ,現在先忽略
看到第74行之後 , 可以看他的構造函數:
這個接受5個參數的構造函數是調用了init()方法 . 該方法的內容如下: