我正在尝试为卷积神经网络实现随机对角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/

10-13 03:05