交叉熵应用到机器学习问题的简要介绍
交叉熵可以用于定义机器学习问题和最优化问题的损失函数。我们可以假定,真实标签中正类别的概率为
pi
,而当前训练出的模型的预测值是正类别的概率是
qi
,这样我们可以通过交叉熵计算
pi
和
qi
的相似度,然后对模型进行进一步的优化。
使用一个更加具体的例子,我们使用逻辑回归(logistic regression)作为处理二分类问题的模型,定义两个类别分别为
0
和
qy=1=y^≡g(w⋅x)=1/(1+e−w⋅x)
这里,权重向量
w
是通过梯度下降等优化算法计算出来的。相同的,
qy=0=1−y^
上述的两个公式表示的是当前模型预测值的概率分布。
对于数据的真实概率分布,我们可以表达为: py=1=y 和 py=0=1−y 。
综合上述的概率表达,我们可以将真实概率表达为 p∈{y,1−y} ,并且将预测概率表达为 q∈{y^,1−y^} 。这样的话,我们可以通过交叉熵来测量 p 和
H(p,q)=−∑ipilogqi=−ylogy^−(1−y)log(1−y^)
这个公式其实就是在逻辑回归中计算某个数据样本的损失的表达式,要想计算整个模型的损失,我们只需要计算所有数据样本的损失的平均值即可:
L(w)=1N∑n=1NH(pn,qn)=−1N∑n=1N[ynlogy^n+(1−yn)log(1−y^n)]
这里
y^n≡g(w⋅xn)=11+e−w⋅xn
,
g(z)
就是逻辑函数。