简要的解释是:
使用输入变量x和y,前向传递(图的左半部分)计算输出z作为x和y的函数,即f(x,y)
图的右侧显示了反向通道。
接收dL / dz(总损耗相对于输出z的导数),我们可以通过应用链式规则来计算损耗函数上x和y的各个梯度,如图所示。
以下是我的详细说明
这篇文章是我即将出版的有关数据科学的数学基础的一部分 。 如果您想随时了解这本书,请在Linkedin-Ajit Jaokar上关注我
神经网络的目标是使整个神经元网络的损失函数最小化。因此,求解由神经网络表示的方程式的问题也成为使整个网络的损失函数最小化的问题。结合使用 梯度下降和反向传播算法 来训练神经网络,即使总损失函数最小化
总体步骤是
在前向传播阶段,数据流经网络以获取输出
损失函数用于计算总误差
然后,我们使用反向传播算法来计算损失函数相对于每个权重和偏差的梯度
最后,我们使用梯度下降来更新每一层的权重和偏差
我们重复上述步骤以最小化神经网络的总误差。
因此,简而言之,我们实际上是通过网络中的连接逐层向后传播总误差,计算每个权重和偏差对每一层总误差的贡献(梯度),然后使用梯度下降算法以优化权重和偏差,并最终使神经网络的总误差最小。
解释前进和后退
在神经网络中, 前向传递 是将网络输入转换为输出空间的一组操作。在推理阶段,神经网络仅依赖于前向传递。对于 后向传递,为了开始计算误差梯度,首先,我们必须计算误差(即总损耗)。我们可以将整个神经网络视为一个 复合函数 (一个包含其他函数的函数)。使用 链式规则,我们可以找到复合函数的导数。这为我们提供了各个渐变。换句话说,我们可以使用Chain规则将总误差分配给神经网络的各个层。这表示将使用“梯度下降”将其最小化的梯度。
链式规则和偏导数的回顾
因此,我们可以看到训练神经网络的过程是反向传播和梯度下降的组合。可以通过理解链规则和偏导数来解释这两种算法。
梯度下降和偏导数
正如我们之前所见,梯度下降是一种迭代优化算法,用于查找函数的局部最小值或全局最小值。该算法通过以下步骤工作
我们从函数图上的一个点开始
我们从该点找到方向,在该方向上函数下降最快
我们沿着这个方向指示(沿路径向下)走了一小步,到达了一个新点
线在特定点的斜率由其导数表示。但是,由于我们关注两个或多个变量(权重和偏差),因此需要考虑 偏导数。。因此,梯度是一个存储多变量函数的偏导数的向量。它有助于我们为具有多个自变量的函数计算曲线上特定点的斜率。我们需要考虑偏导数,因为对于复杂(多变量)函数,我们需要确定每个变量对整体导数的影响。考虑两个变量x和z的函数。如果我们改变x,但保持所有其他变量不变,则得到一个偏导数。如果我们改变z但保持x不变,则会得到另一个偏导数。该组合表示多变量函数的全导数。
连锁规则
链规则是用于计算复合函数的导数的公式。复合功能是由其他功能内部的功能组成的功能。给定一个复合函数f(x)= h(g(x)),f(x)的导数由链规则给出,如下所示:
您也可以将此想法扩展到两个以上的功能。例如,对于包含三个函数A,B和C的函数f(x)–
对于复合函数f(x)= A(B(C(x)))
关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!