上一篇讲了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()方法 . 该方法的内容如下: