最近我开始考虑实现 Levenberg-Marquardt 算法来学习人工神经网络 (ANN)。实现的关键是计算雅可比矩阵。我花了几个小时研究这个主题,但我不知道如何准确计算它。
假设我有一个简单的前馈网络,其中包含 3 个输入、隐藏层中的 4 个神经元和 2 个输出。层是完全连接的。我还有 5 排长学习集。
- 雅可比矩阵的大小究竟应该是多少?
- 我究竟应该用什么来代替衍生品? (左上角和右下角的公式示例以及一些解释将是完美的)
这真的没有帮助:
就神经网络而言,F 和 x 是什么?
最佳答案
雅可比矩阵是向量值函数的所有一阶偏导数的矩阵。在神经网络的情况下,它是一个 N×W 矩阵,其中 N 是我们训练集中的条目数,W 是我们网络的参数总数(权重 + 偏差)。它可以通过对每个权重求每个输出的偏导数来创建,并具有以下形式:
其中 F(xi, w) 是使用权重向量 w 对训练集的第 i 个输入向量进行评估的网络函数,wj 是网络权重向量 w 的第 j 个元素。 在传统的 Levenberg-Marquardt 实现中,雅可比行列式是通过使用有限差分来近似的。然而,对于神经网络,可以通过使用微积分的链式法则和激活函数的一阶导数非常有效地进行计算。
关于algorithm - 人工神经网络的雅可比矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132620/