反向传播算法| Backpropagation
接下来用简单的内容来介绍下这个大致的原理:
什么是反向传播算法
反向传播算法就像是教你的朋友玩一个新的游戏。在这个游戏中,你有一个起点(输入层),你需要到达终点(输出层)。途中你会经过多个关卡(隐藏层),每个关卡都有不同的规则(权重和偏置)。一开始,你并不知道如何正确地通过这些关卡到达终点,所以你需要不断地尝试,并根据结果调整你的策略(更新权重和偏置)。
当你第一次尝试时,可能会走错路或不能准确到达终点。这时候,你会收到一些反馈信息(误差或损失),告诉你离目标还有多远。然后,你开始往回走(反向传播),检查每一个关卡的规则是否合理。如果某个规则导致了错误的方向,你就稍微修改一下这个规则(梯度下降法)。这样不断重复,直到你能顺利地从起点走到终点为止。
具体例子
假设我们有一个非常简单的神经网络,它有3个输入节点、2个隐藏节点和1个输出节点。我们的目标是训练这个网络,使得给定三个数字作为输入时,能够预测出一个与期望值尽可能接近的单个数值作为输出。
步骤1:前向传播
首先,我们将输入数据传递到网络中。每个输入节点连接到每个隐藏节点,每条连线都有一个权重值。在隐藏层中,我们会计算加权和并应用激活函数(比如sigmoid函数)来产生隐藏层的输出。
接着,隐藏层的输出被传递到输出层,再次进行加权求和及激活函数处理,最终得到输出层的结果。
步骤2:计算误差
现在我们有了预测结果,但这个结果可能不完全正确。我们需要比较预测结果与实际的目标值之间的差异,这被称为误差。误差可以通过某种方式计算出来,例如使用均方差公式。
步骤3:反向传播
接下来是最关键的部分——反向传播。我们要把误差沿着原来的路径反向传回去,看看哪些权重对误差的影响最大。对于影响最大的那些权重,我们需要做相应的调整,以便下次再遇到同样的输入时,可以给出更接近目标值的输出。
具体来说,就是利用链式法则计算误差相对于各个权重的偏导数,然后按照一定的学习率调整权重值。
步骤4:迭代
上述过程会被反复执行多次,每次都会基于新的误差调整权重,直到整个网络的表现达到满意的程度为止。
通过这样的过程,反向传播算法让神经网络学会了如何将一组输入映射到一组输出,即使这种映射关系是非常复杂的非线性关系。这就是为什么反向传播算法如此强大并且广泛应用于各种机器学习和大模型训练任务中。
百科介绍
百度百科(详情)
BP算法(即反向传播算法)是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
维基百科(详情)
反向传播是一种用于人工神经网络的方法,用于计算在网络中使用的权重的计算中所需的梯度。反向传播是“错误的向后传播”的简写,因为错误在输出端计算并在整个网络层中向后分布。它通常用于训练深度神经网络。
反向传播是将delta规则推广到多层前馈网络,通过使用链规则迭代计算每个层的梯度来实现。它与Gauss-Newton算法密切相关,是神经反向传播研究的一部分。
反向传播是一种称为自动微分的更通用技术的特例。在学习的情况下,反向传播通常使用的梯度下降优化算法通过计算来调节神经元的权重梯度的的损失函数。