什么是神经网络的雅可比

机器算法验证 机器学习 神经网络 雅可比
2022-04-15 23:22:00

我知道雅可比矩阵是一个包含向量值函数的所有一阶导数的矩阵。但是,神经网络的雅可比是什么?计算导数的函数的输入和输出是什么?

3个回答

雅可比行列式确实是一个相当笼统的术语。让我们来看看这个简单的单隐藏层网络

y^=g(W(1)f(W(0)x+b(0))+b(1))
举个例子。

在网上查看时,我发现大多数人(例如这里这里)参考体重更新,即

y^Wij(0),y^Wij(1),y^bi(0),y^bi(1)

不过,在我看来,神经网络的雅可比应该是神经网络所表示的函数的雅可比,即

net:RmRn:xnet(x)=g(W(1)f(W(0)x+b(0))+b(1)),
在哪里m是输入向量的维数(特征的数量)和n是输出的维度(类数)。该网络的雅可比矩阵将简单地为J=y^x有条目Jij=y^ixj.

神经网络的经典方法是获取一批样本并计算这些样本的平均梯度。对于雅可比行列式而不是计算平均梯度 - 您分别计算每个样本的梯度。最后,您将得到具有 N 行和 M 列的矩阵,其中 N 是通过网络传播的样本数,M 是网络中参数的总数。Jacobian 矩阵中的每一行都是每个输入样本的完整梯度。

重要的是,如果您处理大量输入样本,则为神经网络计算雅可比行列式是低效的。

只是@Mr Tsjolder 所说的图形表示:

网络的输入是X

让我们把网络O=W*X(我们也可以有任何其他关系!!这只是一个例子!!)

该网络的雅可比矩阵将简单地为J=OX

在此处输入图像描述