lr的损失函数

逻辑回归模型预估的是样本属于某个分类的概率,其损失函数(Cost Function)可以像线型回归那样,以均方差来表示;也可以用对数、概率等方法。损失函数本质上是衡量”模型预估值“到“实际值”的距离,选取好的“距离”单位,可以让模型更加准确。

1. 均方差距离

Jsqrt(w)=i=1myi(1p(xi;w))2+(1yi)(0p(xi;w))2(1)Jsqrt(w)=∑i=1myi(1−p(xi;w))2+(1−yi)(0−p(xi;w))2(1)

用均方差作为损失函数,当模型完全预估错误时(y=1, p=0; 或y=0, p=1),损失是1。预估正确时,损失是0。错误值离正确值的“距离”相对较小,区分度不大。

另外,上面的损失函数相对θθ并非是凸函数,而是有很多极小值(local minimum)的函数。因此,很多凸优化的算法(如梯度下降)无法收敛到全局最优点。

2. log距离

 均方差作为LR模型的距离衡量标准,最“预估错误”的惩罚太过柔和。因此,最后训练出来的模型会出现较多的“极端”预估错误情况。另外,均方差损失函数的非凸性也限制了其使用价值。

log距离作为损失函数的公式如下:

Jlog(w)=i=1myiLog(p(xi;w))(1yi)Log(1p(xi;w))(2)Jlog(w)=∑i=1m−yiLog(p(xi;w))−(1−yi)Log(1−p(xi;w))(2)

式(2)与式(1)的区别如下图所示:

 lr的损失函数

3. 概率距离

LR模型预估的是概率,自然的,损失函数可以用联合概率分布来衡量。

Jstat(w)=i=1m(p(xi;w))yi(1p(xi;w))1yi(3)Jstat(w)=−∏i=1m(p(xi;w))yi(1−p(xi;w))1−yi(3)

比较式(2)和式(3)可知:

Jlog(w)=Log(Jstat(w))(4)Jlog(w)=Log(Jstat(w))(4)

由于log函数为单调递增函数,log距离和概率距离本质上是一样的,训练得到的结果也应该一致。