我正在尝试为卷积神经网络实现随机对角Levenberg-Marquardt方法,以便向后传播以学习权重。
我是新手,对此很困惑,所以我有几个问题,希望您能帮帮我。
1)如何从两个输出计算输出层的二阶导数。
由于i是一阶导数,因此我必须从期望的输出中减去输出,然后将其乘以输出的导数。
但是在二阶导数中我该怎么做?
2)在卷积神经网络的MaxPooling层中,我在2x2窗口中选择最大值,然后将其乘以权重,现在我是否必须将其传递给激活函数?
有人可以给我解释一下如何在opencv中做到这一点,或如何用数学解释或任何显示数学的参考文献。
提前致谢。
最佳答案
如果您已经计算了雅可比矩阵(部分一阶导数的矩阵),则可以通过乘以 J ^ T * J (如果残差很小)来获得Hessian(部分二阶导数的矩阵)的近似值。
您可以通过以下两个输出来计算二阶导数: y 和 f(X)和Jacobian:
换句话说,选择Hessian近似 B 可以满足:
在本文中,您可以找到更多有关它的信息。
Ananth Ranganathan: The Levenberg-Marquardt Algorithm
关于opencv - 如何在神经网络的输出层计算二阶导数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22730240/