在学习机器学习过程中,我们经常会用到损失函数来判断模型是否在学习,经常使用的损失函数大多是平方损失函数,与交叉熵损失函数。平方损失函数,我们很容易理解为什么值越小分类效果越好。
Loss(w)=1m∑im(yi−yhati)2Loss(w)=1m∑im(yi−yihat)2
很显然,如果预测的越接近,则loss值越小,这个损失函数基本上没有什么疑问。但是由于这个函数不是凸函数,所以被应用的不多,大多数都是使用交叉熵损失函数。
Loss(w)=−1m∑imyilogyhati+(1−yi)log(1−yhati)Loss(w)=−1m∑imyilogyihat+(1−yi)log(1−yihat)
如果我们同样借助上面的思想,如果预测的越接近,则损失函数越小,很显然这个损失函数满足。但是我相信你绝对不仅仅满足于此,这个损失函数的由来是什么?平方损失很容易想到是两个空间向量的距离,越接近越好。交叉熵损失函数呢?今天就带你进入另一个世界。
此处划重点,交叉熵损失函数来源于参数估计,极大似然估计。
分类属于监督学习,是利用有限的样本,来得到整体的样本分布。以二分类为例,
P(Y=1|x)=F(x);P(Y=0|x)=1−F(x)P(Y=1|x)=F(x);P(Y=0|x)=1−F(x)
利用样本,来近似估计参数值,我们可以使用极大似然估计。既然是二分类,我们采集的样本一般是独立的,则样本的分布服从二项分布Y∼b(1,p)Y∼b(1,p),则Y的分布律为,
P(Y=yi)=pyii(1−p1−yii)P(Y=yi)=piyi(1−pi1−yi)
似然函数为:
Πmipyii(1−p1−yii)Πimpiyi(1−pi1−yi)
对其取对数,则得到对数似然函数为:
L(w)=∑imyilogpi+(1−yi)log(1−pi)L(w)=∑imyilogpi+(1−yi)log(1−pi)
整理一下,pi=F(xi)=yhatipi=F(xi)=yihat,则可得
L(w)=1m∑imyilogyhati+(1−yi)log(1−yhati)L(w)=1m∑imyilogyihat+(1−yi)log(1−yihat)
得到似然函数,则为了估计系数w,当L(w)函数取得最大值时,可得到估计值w,取似然函数的对偶形式,minLoss(w)=−maxL(w)minLoss(w)=−maxL(w),所以当Loss(w)越小时的w值,就越逼近真实的w值,那么模型拟合的就越好。
欢迎关注我的微信公共号
