最小化交叉熵loss与MAP,MLE
先说结论:
1、在分类模型对概率进行预测的时候,最大似然MLE等价于 最小化不带Regularization的交叉熵损失函数,而最大后验概率MAP等价于 最小化带Reg的交叉熵损失函数。
2、交叉熵本质是真实分布的熵与“真实与预估分布的KL散度”的和,而真实分布的熵为固定值,所以最小化交叉熵损失与最小化KL散度也是一样的。
注:以下真实的概率分布P都为Dirac分布。
REFER:
1、最大似然估计角度:
在模型进行预估的时候,实际上对真实概率P建模,建模得到的概率记为Q,假设Qi为第i个样本的预估值【最小化对数似然函数】概率建模-MLE,则样本为正的概率为Q,样本为负的概率为(1-Q)
则似然函数为q1q2...qn * (1-qn+1)*...(1-qn+m) :正样本的概率和负样本概率积。
取log得:argmax Sigma(y=1) log q + Sigma(y=0) log (1- q)
取负得:argmin -Sigma(y=1) log q - Sigma(y=0) log (1 - q)
化简为统一形式则为:最小化loss,loss=−ylog( ŷ )−(1−y)log( 1−ŷ ) [1]
2、交叉熵角度
根据信息论,信息熵代表了信息的不确定性,一个符号不确定性为logP,对于给定的信源符号可以取值的集合X1~Xn对应概率P1~Pn,则信息熵H(X) = Sigma Pi * log Pi,即这个符号的不确定性的期望,衡量编码对应的信息需要的最少bits数。
熵:H(P) =-ΣPlogP
交叉熵:H(P,Q)=−ΣPlogQ
由于熵是可加的,将交叉熵带入我们的真实概率P和预估概率Q时,也能化简得到统一如 [1] 的式子:
即 loss = H1(P,Q) + H2(P,Q) ,H1是正样本P(y=1)=y的交叉熵,H2是负样本P(y=0)=1-y的交叉熵
PS:对于多分类softmax loss的情况,loss即为所有类别的交叉熵之和。即loss=−ΣPlogQ (所有类别的交叉熵之和)
3、KL散度的解释
KL散度(KL-Divergence),用来衡量两个概率分布间的距离。
在深度学习的语境中,KL散度就是用来评估模型输出的预测值分布与真值分布之间的差异,定义如下:
D(p||q) = ΣPlogP−ΣPlogQ
对于交叉熵:
H(P,Q)=−ΣPlogQ
=−ΣPlogP+ΣPlogP−ΣPlogQ
=H(P)+ΣPlogP/Q
=H(P)+DKL(P||Q)
也就是交叉熵就是真值分布的熵与KL散度的和,而真值的熵是确定的,与模型的参数Θ无关,所以梯度下降求导时 ∇H(P,Q)=∇DKL(P||Q),也就是说最小化交叉熵与最小化KL散度是一样的。
所以最小化负对数似然(NLL)和最小化交叉熵最后达到的效果是一样的。
4、MAP与带REG的交叉熵loss等价。
在进行MLE预估时,忽略了参数的先验概率p(theta),直接计算了p(D|theta)的乘积。
MLE: argmax log(p(theta)p(D|theta)) = log(p(theta) + log(p(D|theta))
当我们加上p(theta)后,
loss=−ylog( ŷ )−(1−y)log( 1−ŷ ) - lambda * log(p(theta))
假设theta为N(0,1/(2lambda))的分布,
将 lambda * log(p(theta))化简=constant+lambda Sigma (thetai ^2)
(即:对每个参数独立且遵循高斯先验分布情况下的MAP 等价于交叉熵loss+l2 regularzation)
TODO 等价于用高斯分布描述eta项误差
refer:
[1] http://www.godeep.ml/cross-entropy-likelihood-relation/