2

我想实现卷积神经网络的随机对角Levenberg-Marquardt方法,以便为学习权重进行反向传播。 我是新来的,它很混乱,所以我有几个问题,我希望你能帮助我。如何计算神经网络输出层的二阶导数?

1)如何计算输出层的二阶导数。 由于我在一阶导数,我必须从所需的输出中减去输出并将其与输出的导数相乘。 但在二阶导数中,我该怎么做?

2)在卷积神经网络的MaxPooling层中,我在2x2窗口中选择最大值,并将其乘以权重,现在是否必须通过激活函数传递它呢?

有人能给我解释如何在opencv中做到这一点,或者如何用数学解释或任何显示数学的参考。 在此先感谢。

+0

这更关系到math.stackexchange.com –

+0

你能解释一下你的函数,数据,变量,你想计算什么导数(与什么变量有关)?然后我可以帮你。 – 4pie0

回答

2

如果已计算雅可比矩阵已经(部分一阶导数的矩阵),则可以通过乘以J 1 T *Ĵ获得海森(部分二阶导数的矩阵)的近似(如果残差很小)。

可以从两个输出计算二阶导数:ÿF(X)雅可比这种方式:

enter image description here

在Hessian矩阵近似被选择为换句话说满足:

enter image description here

在本文中,您可以找到更多关于它的信息。 Ananth Ranganathan: The Levenberg-Marquardt Algorithm

+0

对不起,迟到了...谢谢你的回复。你的意思是一阶导数叫做雅卡比矩阵吗?如果是,那么我确实有。我在输出层使用S形函数。所以你的意思是Hessian是转置乘以原始矩阵。 (我的输出是2x1 Mat。[0,1]或[1,0]所以你的意思是2x1是我的Hessian矩阵) – khan

+0

更多信息? – khan

+1

@khan是的,雅可比矩阵是一阶偏导数矩阵,[Hessian](http://en.wikipedia.org/wiki/Hessian_matrix)是部分二阶导数矩阵。这些矩阵被平方。 – 4pie0