有了前两篇做基础,我们就可以来理解机器学习中的一种损失Loss(又称代价Cost 或误差 Error)函数了。
交叉熵作为损失函数
假设现在需要学习一个映射:输入为 X X X, 输出为 Y Y Y。
我们把 X , Y X, Y X,Y看作一个随机变量,那么训练集中的每一对数据( x i x_i xi, y i y_i yi)就是随机变量的一个值。
这个随机变量的真实概率分布记为 P d a t a ( y ∣ x ) P_{data}( y | x ) Pdata(y∣x),这个真实分布我们不知道,是想通过学习去逼近的。
同时,学习模型本身是一个函数,其对应的概率分布记为 P m o d e l ( y ∣ x ) P_{model}( y | x ) Pmodel(y∣x),所谓学习就是通过不断地修正参数使得后者逼近前者。
现在,如何度量模型分布和真实分布之间的差距呢?一种方式就是用交叉熵。
L = ∑ X , Y P d a t a ( y ∣ x ) ⋅ − l o g P m o d e l ( y ∣ x ) L = \sum_{X,Y} P_{data}(y | x) \cdot -logP_{model}(y | x) L=X,Y∑Pdata(y∣x)⋅−logPmodel(y∣x)