在统计学中,损失函数是一种衡量系统错误程度的函数。而在有监督学习模型里,损失函数则是衡量模型对样本预测值与样本真实标签之间差异程度的方法。最近用到了交叉熵,觉得有必要弄明白交叉熵到底是什么原理及优势,因此查了查资料,并结合个人理解在这里做一下讲解,如有疏漏谬误之处还请各位看官多多指教。在这之前,先讲讲交叉熵是什么。
交叉熵,我们不妨先拆开来看:交叉与熵。字面意思可以这么理解:两种以熵来计量的东西之间的关系。熵在信息论里面衡量的是数据的混乱程度,本质是香农信息量( plog21p,0<p≤1 )的期望。信息量是可以衡量的,不然我们也不会觉得有的话虽然多,却没什么信息量,而有的话则能一语中的。那么,如何直观理解这个交叉熵呢?
如果直接用纯数学语言来解释,一定晦涩难懂,因此我想到了一个比较有趣的实例给大家理解一下。
熟悉足球的童鞋们应该都记得,在2002年,中国足球队首次也是唯一一次杀入了世界杯,全国球迷无不为之热血沸腾。但当时中国队所在的C组号称死亡之组,组内其它三支球队分别是巴西(最后的冠军)、土耳其(最后的季军)和哥斯达黎加。现在命运之神分配给这四支球队夺得小组第一的概率分别为巴西50%,土耳其25%, 哥斯达黎加25%, 中国0%。我们假定这是真实概率,那么这一组概率的信息量是多大呢?按照香农信息量的计算公式,我们可以得出:
接着交叉熵可以来了,这组预测结果的交叉熵为 1.5−1.5=0 ,表示预测结果与真实结果之间的差异程度为0,即我们的预测百分之百正确。这时02国家队的球迷不干了:凭什么不给咱国家队一丝期待?那好,不妨修改一下我们的赛前预测:巴西50%,土耳其25%, 哥斯达黎加12.5%, 中国12.5%。国家队有八分之一的概率拿小组第一,这期待够带劲吧。再算一下这组预测结果的熵:
在二分类模型中,由于目标的可能性有两种,因此需要分别计算预测为正例和负例概率下的交叉熵,公式为:
接下来讲讲交叉熵的优势。在回归模型中有时候会使用均方差作为损失函数,但是当激活函数为sigmoid时,由于其在上边界和下边界的斜率下降十分之快。事实上,一般sigmoid函数的斜率最大值也只有0.25。因此,当训练结果接近真实值时会因为梯度算子极小,使得模型的收敛速度变得非常慢。而由于交叉熵损失函数为对数函数,在接近上边界的时候,其仍然可以保持在高梯度状态,因此模型的收敛速度不会受到影响。目前在分类模型中我只发现了这一种优势,如果各位有其它观点还请不吝赐教,在此谢过。
至此,我们便较为直观地理解交叉熵以及它的优势了。在此感谢各位看官的耐心阅读。后续内容将会不定期奉上,欢迎大家关注小斗公众号 对半独白!