深度前馈网络(三)

本文介绍了深度学习中的反向传播算法,它利用链式法则计算神经网络的梯度,减少数值化求解梯度的计算代价。计算图和链式法则的概念帮助我们理解如何通过复合函数求导。反向传播算法的实现包括前向传播计算输出,然后通过反向传播计算梯度。算法的计算成本与图中边的数量成比例,有效地减少了重复计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反向传播和其他微分算法

输入xxx提供初始信息,然后传播到每一层的隐藏单元,最终产生输入y^\hat{y}y^,这称之为前向传播。在训练过程中,前向传播可以持续向前,直到它产生一个标量代价函数J(θ)J(\theta)J(θ)。而反向传播算法则允许来自代价函数的信息通过网络向后流动,以便计算梯度(减少数值化求解梯度的计算代价)。实际上,反向传播仅仅是指用于计算梯度的方法,而不是用于多层神经网络的整个学习算法(这种算法叫随机梯度下降,是使用梯度来进行学习)。在学习算法中,我们最常见的是代价函数关于参数的梯度,即∇θJ(θ)\nabla _\theta J(\theta)θJ(θ)。其实,它也可以计算任意函数的梯度∇xf(x,y)\nabla _x f(x, y)xf(x,y),其中xxx是待求导数的变量,而yyy是函数的另外一组输入而已。

计算图
为了精确描述反向传播算法,需要使用更为精确的计算图语言。这里,我们使用图中的每一个节点来表示一个变量(标量、向量、矩阵、张量)。我们引入操作概念,是指一个或者多个变量的简单函数,可以通过将多个操作复合在一起来描述更为复杂的函数,操作的返回或者输出可以是标量,甚至向量。计算图中的边是有向的。

微积分中的链式法则
用于计算复合函数的导数。标量的链式法则很直观,我们可以将其扩展到多维空间。假设x∈Rmx \in \mathbb{R}^mxRmy∈Rny \in \mathbb{R}^nyRnz∈Rz \in \mathbb{R}zRy=g(x)y = \mathcal{g}(x)y=g(x)z=f(y)z = f(y)z=f(y),那么:
∂z∂xi=∑j∂z∂yj∂yj∂xi \frac{\partial z}{\partial x_i} = \sum_{j}^{} \frac{\partial z}{\partial y_j} \frac{\partial y_j}{\partial x_i} xiz=jyjzxiyj使用向量记法,等价表示为:
∇xz=(∂y∂x)T∇yz \nabla _x z = (\frac{\partial y}{\partial x} )^T \nabla _y z xz=(xy)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值