我正在尝试为卷积神经网络实现随机对角线Levenberg-Marquardt方法,以便反向传播学习权重。 我是新手,并且非常困惑,所以我几乎没有问题,希望你能帮助我。
1)如何从两个输出计算输出层的二阶导数。 由于我在一阶导数中,我必须从所需输出中减去输出并将其乘以输出的导数。 但在二阶导数中我该怎么做?
2)在卷积神经网络的MaxPooling层中,我选择2x2窗口中的最大值,并将其与权重相乘,现在我是否必须通过激活函数?
有人可以给我解释如何在opencv中进行,或者如何使用数学解释或任何显示数学的参考。 提前致谢。
答案 0 :(得分:2)
如果你已经计算了雅可比矩阵(部分一阶导数的矩阵),那么你可以得到 Hessian 的近似值(部分二阶导数的矩阵) )乘以 J ^ T * J (如果残差很小)。
您可以通过以下方式计算两个输出的二阶导数: y 和 f(X)和 Jacobian :
换句话说,选择Hessian近似 B 来满足:
在本文中,您可以找到更多相关信息。 Ananth Ranganathan: The Levenberg-Marquardt Algorithm