人工神经网络的雅可比矩阵计算

And*_*Gis 6 algorithm artificial-intelligence matrix neural-network

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

假设我有一个简单的前馈网络,有3个输入,隐藏层有4个神经元,2个输出.图层完全连接.我也有5行学习集.

  1. 雅各比矩阵的大小到底应该是多少?
  2. 究竟应该用什么代替衍生物?(左上角和右下角的公式示例以及一些解释将是完美的)

这真的没有帮助:

在此输入图像描述

什么是神经网络的Fx

abh*_*ash 7

雅可比行列式是向量值函数的所有一阶偏导数的矩阵.在神经网络的情况下,它是一个N×W矩阵,其中N是我们训练集中的条目数,W是我们网络的参数总数(权重+偏差).它可以通过取每个权重的每个输出的偏导数来创建,并具有以下形式:

在此输入图像描述

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


Nik*_*ono 0

根据我使用 ANN 和反向传播的经验

  1. 雅可比矩阵将所有偏导数组织成一个 mxn 矩阵,其中 m 是输出的数量,n 是输入的数量。所以在你的情况下它应该是 2x3

  2. 假设有一组介于 1 和 k 之间的输出(图片中的 F),并且有 1 和 i 的输入(图片中的 x),所以公式应该是这样的

            Fk
    Jki =  ----
            xi
    
    Run Code Online (Sandbox Code Playgroud)

抱歉,我不知道如何在这里编写公式格式,但我希望我的答案足够清楚。
如果您对我的回答有任何疑问,请在评论中提问!