购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.3 损失函数

基于梯度下降法的神经网络反向传播过程首先需要定义损失函数(loss function),然后计算损失函数对梯度的偏导,最后沿梯度下降方向更新权重及偏置参数。因此,损失函数的设定对梯度计算有重要的影响。

图2.15 GELU函数

损失函数 用以衡量模型预测值 与真实值 y 之间的差。神经网络的预测值是参数 w 的函数,可记为 y 总是不完全一致的,如图2.16所示。二者的误差可以用损失函数表示为 L w )= f Hw x ), y )。

图2.16 不同参数 w 下的拟合情况。训练样本( x,y )为(1,1),(2,2),(3,3),(4,4),真实值是 y = x 这条直线上的点

常用的损失函数包括均方差和交叉熵损失函数。

2.4.3.1 均方差损失函数

均方差损失函数是最常用的损失函数。以一个神经元为例,计算结果是 ,实际结果是 y ,则均方差损失函数为

假设激活函数是sigmoid函数,则 ,其中 z = wx + b 。均方差损失函数对 w b 的梯度为

从上面的计算结果可以看出,两个梯度的共性之处是,当神经元的输出接近1或0时,梯度将会趋近0,这是因为二者都包含 σ z )。该式子说明当神经元的输出接近1时,神经元的输出的梯度接近0,梯度会消失,进而导致神经网络在反向传播时参数更新缓慢。

训练集 D 上的均方差损失函数为

其中 m 为训练样本的总数量, i 为分类类别。

2.4.3.2 交叉熵损失函数

由于均方差损失函数和sigmoid函数的组合会出现梯度消失,因此可以用别的损失函数(例如交叉熵损失函数)与sigmoid激活函数组合以避免这一现象。交叉熵损失函数的定义为:

其中, m 为训练集 D 中样本的总数量, i 为分类类别。交叉熵的定义类似于信息论中熵的定义。对于单标签多分类问题,即每个图像样本只能有一个类别,交叉熵可以简化为 L = 。而对于多标签多分类问题,即每个图像样本可以有多个类别,一般转化为二分类问题。

对于二分类问题,使用sigmoid激活函数时的交叉熵损失函数为

神经网络计算的结果为

交叉熵损失函数对权重 w 的梯度为

将sigmoid激活函数的导数 σ z )=(1 z )) σ z )代入上式可得

同理可以得到交叉熵损失函数对偏置 b 的偏导为

从式(2.51)和式(2.53)可以看出,使用sigmoid激活函数的交叉熵的损失函数对 w b 的梯度中没有sigmoid的导数 σ z ),可以缓解梯度消失。

总结一下,损失函数是权重参数 w 和偏置参数 b 的函数,是一个标量,可以用来评价网络模型的好坏,损失函数的值越小说明模型和参数越符合训练样本( x y )。对于同一个算法,损失函数不是固定唯一的。除了交叉熵损失函数,还有很多其他的损失函数。特别需要说明的是,必须选择对参数( w b )可微的损失函数,否则无法应用链式法则。 N0XeWu7lyHFq11xjSRTTptEguIWm/lP3m4H2RxHkl03Hs0qrl9bmXVpMAAdVTxx/

点击中间区域
呼出菜单
上一章
目录
下一章
×