最近我开始思考实现Levenberg-Marquardt算法来学习人工神经网络(ANN)。实现的关键是计算雅可比矩阵。我花了几个小时学习这个主题,但我无法确切地计算它。
假设我有一个简单的前馈网络,有3个输入,隐藏层有4个神经元和2个输出。层之间完全连接。我还有一个5行长的学习集。
- 雅可比矩阵的大小应该是多少?
- 导数应该放在哪里?(对于左上角和右下角的公式及其一些解释的示例将非常完美)
这真的没有帮助:
在神经网络中,F和x分别代表什么?
最近我开始思考实现Levenberg-Marquardt算法来学习人工神经网络(ANN)。实现的关键是计算雅可比矩阵。我花了几个小时学习这个主题,但我无法确切地计算它。
假设我有一个简单的前馈网络,有3个输入,隐藏层有4个神经元和2个输出。层之间完全连接。我还有一个5行长的学习集。
这真的没有帮助:
在神经网络中,F和x分别代表什么?
根据我的经验,与人工神经网络和反向传播算法的工作
Jacobian矩阵将所有偏导数组织成一个m x n的矩阵, 其中m是输出数量,n是输入数量。 所以在你的情况下应该是2x3
假设有1到k个输出(在你的图片中为F)和1到i个输入(在你的图片中为x),那么公式应该如下:
Fk
Jki = ----
xi
很抱歉我不知道如何在这里写公式格式,但我希望我的回答足够清晰。
如果您对我的回答有任何问题,请在评论中询问!
您有一个形状为(3,1)的输入向量X和一个将其映射到形状为(4,1)的输出向量Y的函数G(x),这是您的隐藏层。这个函数G(x)也被称为权重矩阵W,其形状为(4,3)。因此,在矩阵乘法方面,您有
Y = WX + b
,b:偏置,与Y具有相同的形状,即(4,1)在这种情况下,Y对X的Jacobian矩阵是您的权重矩阵W。W包含每个元素在X中的每个元素的Y的梯度。
2.左上角和右下角由输入和输出向量维度决定
描述 Y(F) 每个元素对 X 的每个元素的导数的矩阵将具有形状为 (m,n) 且包含 m*n 个元素。
有关详细计算和进一步阅读,请查看以下链接