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

标签 algorithm matrix neural-network artificial-intelligence

最近我开始考虑实现 Levenberg-Marquardt 算法来学习人工神经网络 (ANN)。实现的关键是计算雅可比矩阵。我花了几个小时研究这个主题,但我不知道如何准确计算它。

假设我有一个简单的前馈网络,其中包含 3 个输入、隐藏层中的 4 个神经元和 2 个输出。层是完全连接的。我还有 5 排长学习集。

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

这真的没有帮助:

enter image description here

就神经网络而言,Fx 是什么?

最佳答案

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

enter image description here

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

关于algorithm - 人工神经网络的雅可比矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132620/

相关文章:

algorithm - 基于1对1选择的协同排序算法

c - 在字符串数组中插入字符串

java - (8 Queens) 判断一个皇后是否适合二维矩阵

c# - 嵌套循环不进入每个元素c#

python - 在 python 中使用神经网络预测时间序列数据

neural-network - 神经网络的非数学描述

python - 反向传播算法陷入训练 AND 函数的困境

arrays - 如何在 Ruby 中递归查找二维数组的排列

java - 这个字符串连接实现真的是 O(n^2) 吗?

c - 是否可以从 int** 复制到另一个 int** 而不是逐个元素?