交叉熵损失与均值平方差损失是机器学习中常用的求损失函数的方式,其中交叉熵损失(Cross Entropy)一般针对的是分类问题,而均值平方差损失(MSE)主要针对的是回归问题,比如常见的目标检测中的bounding box regression。具体的定义如下:
1.交叉熵损失(Cross Entropy)
交叉熵损失是相对熵(KL散度)的简化, 在了解交叉熵之前,我们需要对信息论中熵的概念有一个基本的理解,我们知道,熵是表示信息量的期望,也可理解为平均信息量,而信息量与概率成反比,及概率越大的时间,发生时所获得的信息量越小,反之概率越小的事件发生后所获得的信息量越大,举个形象的例子,同样的中国队在本届篮球世锦赛夺冠所包含的信息量很大,而美国队在本届世锦赛夺冠的信息量就很小,这与其夺冠的概率相关。
假设一离散型数据X=(x0,x1,x2),对应的概率为p(xi)。其中每个事件的信息量为: I(xi)=−log(p(xi)),根据熵的定义可得:
对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(相对熵),举个直观点的例子,在机器学习中,P往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布,比如[0.7,0.2,0.1]
直观的理解就是如果用P来描述样本,那么就非常完美。而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。如果我们的Q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q等价于P。(https://blog.youkuaiyun.com/tsyccnh/article/details/79163834 )
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵损失:
2.均值平方差损失(MSE)
而均值平方差损失(MSE)主要针对的是回归问题,比如常见的目标检测中的bounding box regression。可用如下公式表述:
这里的n表示n个样本。ylabel与ypred的取值范围一般为0-1。