上一篇讲了mse函数 , 这次gradient_descent_levenberg_marquardt

@see ${root}/tiny_cnn/optimizer/optimizer.h

tiny_cnn代码阅读(2)-LMLPHP

这个函数现在也是没有用到, 但是可以先看看一下:

通过注释可以了解到:

float_t alpha; 是学习率 , 和反馈阶段有关

tiny_cnn代码阅读(2)-LMLPHP

 

float_t mu 是一个常数防止步长过大时H很小

tiny_cnn代码阅读(2)-LMLPHP

 

此函数的理论基础可以在下图的论文找到:

tiny_cnn代码阅读(2)-LMLPHP

 

 

好了 , 聪明的你和亲爱会发现:gradient_descent_levenberg_marquardt  这个结构体还继承自optimizer

顺便把optimizer 也看看:

tiny_cnn代码阅读(2)-LMLPHP

 

optimizer 是优化器, 这个就是所有优化器的基类

usesHessian :这个是一个成员变量用来标识似乎否使用黑塞矩阵  ,

这个是用来修改权值的时候起作用的, 现在可以不考虑

tiny_cnn代码阅读(2)-LMLPHP

 

 

 

<<<<好了, 现在返回到main函数中

tiny_cnn代码阅读(2)-LMLPHP

 

tiny_cnn代码阅读(2)-LMLPHP

 

将来会在C3的时候用到 ,现在先忽略

 

 

tiny_cnn代码阅读(2)-LMLPHP

看到第74行之后 , 可以看他的构造函数:

tiny_cnn代码阅读(2)-LMLPHP

这个接受5个参数的构造函数是调用了init()方法 . 该方法的内容如下:

 

tiny_cnn代码阅读(2)-LMLPHP

05-11 11:17