2014-10-01 454 views
5

最近我开始考虑实施用于学习人工神经网络(ANN)的Levenberg-Marquardt算法。实现的关键是计算雅可比矩阵。我花了几个小时研究这个话题,但我无法弄清楚如何精确计算它。人工神经网络的雅可比矩阵计算

说我有一个简单的前馈网络,有3个输入,4个神经元在隐藏层和2个输出。层完全连接。我也有5排长的学习套装。

  1. 究竟应该是雅可比矩阵的大小?
  2. 究竟应该如何代替衍生工具? (公式与一些解释和说明的左上角和右下角的例子将是完美的)

这个真没有帮助:

enter image description here

什么是F and x用神经网络?

回答

0
从我的经验与ANN工作和反向传播

  1. 雅可比矩阵

    所以组织所有的偏导数为m×n个矩阵, 其中M是输出的数,n是输入的个数。 所以你的情况应该是2×3

  2. 所以我们可以说有1和输出的k个(F在画面中),并有 之间的设定为1和我输入的数量(X在您的图片)所以公式应该是这样的

     Fk 
    Jki = ---- 
         xi 
    

对不起,我不知道怎么写公式格式在这里,但我希望我的回答是非常明显的。
如果您对我的答案有任何疑问,请在评论中提问!

+0

F函数应该是什么样子?Abhinash在他的回答中提出,矩阵的大小与你所提议的不同(如果我理解他的话)。也许如果我看到F功能,它会更清晰。 – gisek 2014-10-01 22:00:20

7

雅可比矩阵是矢量值函数的所有一阶偏导数的矩阵。在神经网络案例中,它是一个N×W矩阵,其中N是我们训练集中条目的数量,W是我们网络的参数总数(权重+偏差)。它可以通过利用每个输出的偏导数在相对于每个权重来创建,并且具有以下形式:

enter image description here

其中F(XI,W)是用于第i个输入评价网络功能使用权重向量w和wj的训练集合的向量是网络的权重向量w的第j个元素。 在传统的Levenberg-Marquardt实现中,Jacobian通过使用有限差分来近似。然而,对于神经网络,可以通过使用微积分的链式规则和激活函数的一阶导数来非常有效地计算它。

+0

所以在我的问题的例子中,矩阵列的数量= 3 * 4 + 4 * 2 = 20(让我们暂时忘记偏差),并且矩阵行的数量与数据中的行数相同设置(5)? F函数应该是什么样子? – gisek 2014-10-01 15:50:51

+0

@abhinash梯度和雅可比相同吗?因为即使梯度矩阵的大小为NxW,我们也可以将其插入梯度下降方程中 – 2017-09-14 17:18:49