深度学习–交叉熵损失函数

二分类

如果要预测事件的结果只有两种情况–是或不是,用计算机语言来说要么为 1 ,要么为 0 ,那么在设计损失函数时就可以使用二分类的交叉熵损失函数。

例如,在判断图片是否为猫时,一张图片的预测结果只可能有两个:

  • 这张图片的内容是猫
    猫
  • 这张图片的内容不是猫
    非猫

我们对二元交叉熵损失函数定义如下:

令单个样本的二元交叉熵损失 L(ai,yi)\mathcal{L}(\mathbf{a}^{i}, \mathbf{y}^{i})

L(ai,yi)=yilog(ai)(1yi)log(1ai)\mathcal{L}(\mathbf{a}^{i}, \mathbf{y}^{i}) = - \mathbf{y}^{i} \log(\mathbf{a}^{i}) - \left(1 - \mathbf{y}^{i}\right) \log\left(1 - \mathbf{a}^{i}\right)

取所有样本损失的平均值:

J=1mi=1mL(a(i),y(i))J = \frac{1}{m} \sum_{i=1}^{m} \mathcal{L}\left(a^{(i)}, y^{(i)}\right)

我们称这个 JJ 函数为代价函数(成本函数)

上式中的符号解释:

  • yiy^i :真实标签,值为1或0,表示是猫/不是猫。
  • aia^i :预测值,默认认为它是猫的概率,介于 [0,1][0,1]

可以发现,

yi=1y^i = 1时,表示该图片是猫,二元交叉熵函数的 yiy^i 项为 11 ,此时计算aia^i项的概率对数。损失 L=log(ai)L = -log(a^i)aia^i 越接近 11,表示模型认为该图片是猫的概率越高,预测的就越准,损失函数的LOSS值越接近 00aia^i 越接近 00, 表示模型预测的越不准,损失函数的LOSS值就会趋于无穷大。

yi=0y^i = 0时,表示该图片是不是猫,二元交叉熵函数的 yiy^i 项为 00 ,相应的 1yi1-y^i 项就为 11, 此时计算1ai1 - a^i项的概率对数。损失 L=log(1ai)L = -log(1 - a^i)aia^i 越接近 00,表示模型认为该图片是猫的概率越低,预测的就越准,损失函数的LOSS值越接近 00aia^i 越接近 11, 表示模型预测的越不准,损失函数的LOSS值就会趋于无穷大。

函数图像

二元交叉熵损失函数图像

注意到这是凸函数,可以通过求导 收敛到局部最优