真实世界反向传播的数学原理是什么?

数据挖掘 机器学习 深度学习 反向传播 理论
2022-02-24 11:11:24

考虑一个简单的ANN:

xf=(Um×nxT)Tg=g(f)h=(Vp×mgT)TL=L(h,y)

在哪里xRn,UV是矩阵,g是逐点的 sigmoid 函数,L通过比较输出返回一个表示损失的实数h有目标y, 最后表示数据流。

最小化L超过UV使用梯度下降,我们需要知道LUijLVij,我知道有两种方法可以做到这一点:

  1. 明智地进行微分,并且很难弄清楚如何对其进行矢量化
  2. 展平UV成一个行向量,并使用多元微积分(取一个向量,产生一个向量)进行微分

出于教程或说明的目的,以上两种方法可能就足够了,但是如果你真的想在现实世界中手动实现反向支持,你会用什么数学来做导数?我的意思是,meth 中是否有一个分支或方法可以教你如何对矩阵的向量值函数求导?

1个回答

Matrix Calculus,(我会推荐非常有用的Matrix Cookbook作为书签来保存),但在大多数情况下,当涉及到导数时,它只是归结为逐点微分并控制你的维度。

您可能还想查找Autodifferentiation这是链式法则的一种概括,因此可以分解任何复合函数,即a(x)=f(g(x)),并计算损失的梯度g作为损失梯度的函数f.

这意味着对于神经网络中的每个操作,您可以给它“消耗”它的操作的梯度,它会计算自己的梯度并向后传播误差(因此反向传播)