赞
踩
上一篇我们讲了神经网络的前向传播,但是前向传播里神经网络各层的权重参数w和偏置项b都是随机初始化的,这样初始化得到的f=w*x+b,再经由sigmoid(f)或者softmax(f)得到的概率与样本实际值y(x)是有偏差的,怎样能使预测值无限接近样本实际值呢?这时就需要用到反向传播来更新神经网络参数。反向传播主要是通过计算损失函数对网络参数的梯度,然后利用梯度下降等优化方法来更新参数,从而使网络逐步优化,降低预测误差。
反向传播流程如下所示:
首先,对输入数据进行前向传播计算,得到网络的输出。这包括以下步骤:
输入层:将输入数据传递给网络。
隐藏层:通过激活函数对输入进行加权和求和,生成隐藏层的输出。
输出层:将隐藏层的输出再次进行加权和求和再次通过激活函数,生成最终的输出。
使用损失函数(Loss Function)计算模型预测值与真实标签之间的误差。简单介绍一下几个损失函数:
均方误差是用于回归任务的常见损失函数,计算预测值与真实值之间的平方差,然后取平均值。
交叉熵损失通常用于分类任务,特别是在多类别分类问题中。对于二分类问题,交叉熵损失定义如下:
反向传播是计算损失函数对网络中各层各个参数的梯度,从输出层向输入层逐层传播梯度的过程。我们的目的就是让损失函数尽可能地小,这样预测值才会无限逼近真实值,怎样让损失函数尽可能地小?求导求梯度,利用梯度下降法,沿着损失函数梯度的负方向更新网络参数,以减小损失函数的值。
首先计算输出层的梯度,即损失函数对输出的梯度。其实这里我们说的梯度就是公式里分母对分子的影响程度:
利用链式法则,将输出层的梯度向后传播至隐藏层,计算隐藏层的梯度:
3.3 计算参数梯度
根据隐藏层的梯度,计算网络中所有参数的梯度,包括权重和偏置项。以权重为例,梯度的计算方式如下:
4. 参数更新
利用计算得到的参数梯度,使用梯度下降等优化算法更新网络参数,减小损失函数的值,使得模型更加接近真实数据分布。
新参数=旧参数−学习率×参数梯度
其中,学习率(Learning Rate)是一个超参数,控制每次更新的步长,避免更新过大或过小。学习率过大可能直接跨过梯度最低点,学习率过小迭代次数又会过多影响学习效率。
以上步骤构成了一次迭代。重复进行多次迭代,直到损失函数收敛或达到预设的停止条件,训练过程结束。
具体的有关于反向传播的实例可以看我之前的推送:《机器学习反向传播详细讲解》,这篇文章会带入具体的数值来详细的介绍每一个参数w是如何更新的,相信大家跟着算完一遍以后会对反向传播有一个更深层次的了解~
喜欢的话点个关注哦~会每天分享人工智能机器学习内容,回复关键字可获取相关算法数据及代码~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。