损失函数2021-11-20
交叉熵损失函数
二分类
以逻辑回归为例,Sigmoid函数的输出表示当前样本被预测为1的概率为:
因此,被预测为0的概率为:
将上述公式整合,如下:
期望:概率越大越好。
为了容易计算,考虑的运算不影响函数的单调性,对概率取对数得:
期望越大越好,换言之,越小越好。由此,定义损失函数如下:
以上为单个样本的损失,如果是多个样本叠加即可,损失函数为:
多分类
信息量
香农认为:信息是用来消除不确定性的东西。因此,衡量信息量的大小,就是看这个信息消除不确定性的程度。
“太阳从东方升起”:因为太阳肯定从东方升起,因此没有减少不确定性,信息量为0。
“张三把狗咬了”:因为张三咬狗这件事存在很大不确定性,而这句话消除了不确定性,因此,信息量很大。
设某件事发生的概率为,其信息量定义为:
信息熵
信息熵也被称为熵,用来表示所有信息量的期望。
设为离散型随机变量,则其信息熵为:
相对熵(KL散度)
如果对同一个随机变量有两个单独的概率分布和,则可以使用KL散度来衡量两个概率之间的差异。
在机器学习中,通常使用表示样本的真实分布,表示模型的预测分布。例如,在三分类任务中,猫狗马分类,使用分别表示猫狗马,使用one-hot表示,如果一张猫的图片真实分布为,预测分布,计算KL散度为:
KL散度越小,表示与的分布越接近,可以通过反复训练,使得的分布接近。
KL散度不对称,为了解决该问题,对KL散度进行变体可得到 JL散度:
交叉熵
将KL散度公式进行拆解:
前者表示为交叉熵,后者为信息熵。
因此,KL散度 = 交叉熵 - 信息熵
交叉熵公式为:
在机器学习中,输入数据的标签通常已经确定,那么真实概率分布也就确定了,因此信息熵为常量。由于KL散度的值表示真实概率分布与预测概率分布之间的差异,KL散度值越小表示预测结果越好,所以需要最小化KL散度。而KL散度等于交叉熵减去一个常量,且交叉熵公式相对更简单,因此最小化KL散度等价于最小化交叉熵。所以,在机器学习中,经常使用交叉熵损失计算。
对中的猫狗马三分类任务,交叉熵为:
假设有个样本,类别数为,那么交叉熵损失函数为:
在分类问题中,交叉熵损失函数通常与softmax搭配。softmax将预测值映射为概率,使多个分类的预测值和为1,类别的真实值使用one-hot表示,然后使用交叉熵计算损失值。