逻辑回归属于线性分类器,是线性回归的延伸。
和线性回归一样,LR先随机一个权重W,然后原始数据通过模型,计算得到y_hat,再与y_true比较,计算损失,通过梯度下降来更新权重。
逻辑回归能否和线性回归一样使用MSE来计算损失?
MSE本质是求距离,而逻辑回归计算的是概率,先说结论,概率之间的差异使用KL距离。
KL距离
1、两个概率分布p相对q的KL距离的定义是:
K
L
(
p
,
q
)
=
Σ
i
n
p
(
x
i
)
l
o
g
p
(
x
i
)
q
(
x
i
)
KL_(p,q)=\Sigma_i^n p(x_i)log\frac{p(x_i)}{q(x_i)}
KL(p,q)=Σinp(xi)logq(xi)p(xi)
假设有两个硬币P,Q,正反面的概率分别如下:
那么:
这里:1、若两个硬币概率分布一样,那么log后面的 p(x)=q(x),log后恒为1。即两个概率分布要是一样,那么KL距离为0。
2、KL距离不具备对称性。
KL距离的不对称
假设p(x) 和 q(x) 的分布分别为:
K
L
(
p
,
q
)
=
Σ
(
p
(
x
)
l
o
g
p
(
x
)
−
p
(
x
)
l
o
g
(
q
(
x
)
)
KL(p, q)= \Sigma(p(x)logp(x)-p(x)log(q(x))
KL(p,q)=Σ(p(x)logp(x)−p(x)log(q(x))
Σ
(
p
(
x
)
)
=
1
,
Σ
(
q
(
x
)
)
=
1
\Sigma(p(x))=1, \Sigma(q(x))=1
Σ(p(x))=1,Σ(q(x))=1
括号中的前一项与q 分布无关,所以得到结论:
1、当p的概率取值大的时候,所对应的q应该越大越好,以使得p(x)log(q(x))取值更大。
而同时,当p取值很小的时候,q就不是很重要,因为更大取值的q被分配到拟合更大的p概率上。
所以上图中,KL(p, q1) < KL(p, q2)
2、 考虑KL(q,p)时,
K
L
(
q
,
p
)
=
Σ
(
q
(
x
)
l
o
g
q
(
x
)
−
q
(
x
)
l
o
g
(
p
(
x
)
)
KL(q, p)= \Sigma(q(x)logq(x)-q(x)log(p(x))
KL(q,p)=Σ(q(x)logq(x)−q(x)log(p(x))
由于log函数的特性,当p很小时,log p 趋向于负无穷,若要KL(p, q)取值小,此时的q 取值也必须非常小,来抵消log p 的影响。
结论:概率p 固定时,KL(p, q)是Q尽可能去优先匹配P的大值;
而KL(q, p)是Q尽可能去优先匹配P的小值
交叉熵
对于公式
K
L
(
p
,
q
)
=
Σ
(
p
(
x
)
l
o
g
p
(
x
)
−
p
(
x
)
l
o
g
(
q
(
x
)
)
KL(p, q)= \Sigma(p(x)logp(x)-p(x)log(q(x))
KL(p,q)=Σ(p(x)logp(x)−p(x)log(q(x)),若真实标签y=1,KL可以学习;但当真实标签y=0时,log后面为0,导致无法学习。
同时考虑二分类的实际情况——要同时让正样本的预测概率趋向于1,负样本的预测概率趋向于0(1-fi 趋向于(1-yi))。
这里使用交叉熵损失,实际上交叉熵损失就是KL(预测正类, 真实正类)+ KL(预测负类, 真实负类)
交叉熵:
−
1
n
Σ
1
n
[
y
i
l
o
g
f
i
+
(
1
−
y
i
)
l
o
g
(
1
−
f
i
)
]
-\frac{1}{n}\Sigma_1^n[y_ilogf_i+(1-y_i)log(1-f_i)]
−n1Σ1n[yilogfi+(1−yi)log(1−fi)]
为什么不用MSE?
MSE函数的梯度是:
在计算概率差异时,若使用MSE作为损失存在两个问题:
1、当w非常大的时候,fi 会趋近于0或1,梯度中(fi-yi)fi 会趋近于0,非常之小,不利于参数更新。
2、fi(1-fi) 本身就很小,1、2叠加导致不能使用mse。
3、事实上,在逻辑回归中的MSE曲线并非完全凸函数,存在多个极小值,而KL距离是严格凸函数,天然有优势。
从最大似然来看
数据{xi}-> {yi}。
最大化xi 和 yi 的共现概率:
即最大化
m
a
x
Σ
i
n
l
o
g
P
(
y
i
∣
x
i
)
max \Sigma_i^n logP(yi|xi)
maxΣinlogP(yi∣xi)
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)
P(y=1∣x)=f(x);P(y=0∣x)=1−f(x)合并y为0和1的情况==>
P
(
Y
∣
X
)
=
f
y
(
1
−
f
)
(
1
−
y
)
P(Y|X)=f^y(1-f)^{(1-y)}
P(Y∣X)=fy(1−f)(1−y),
两边取log:
l
o
g
P
(
Y
∣
X
)
=
l
o
g
[
f
y
(
1
−
f
)
(
1
−
y
)
]
logP(Y|X)=log[f^y(1-f)^{(1-y)}]
logP(Y∣X)=log[fy(1−f)(1−y)]
即要max
y
l
o
g
f
+
(
1
−
y
)
l
o
g
(
1
−
f
)
ylogf+(1-y)log(1-f)
ylogf+(1−y)log(1−f),
这和min KL距离完全等价。
其他
1、LR的好处是当X特征稀疏时,运算非常快。
2、考虑一个判断癌症的LR分类器,是否sigmoid>0.5就判断得病? 显然是不对的,具体阈值设置要看场景。
3、LR参数更新可以看作是每个样本都把分割线向远离自己的地方推,当类别不均衡时,样本数多的类别力量就会更强,会把分类超平面往少数类推(这样即使判断出错,准确率也很高)。这时就要使用上采样/下采样,实际中一般采用上采样,即随机重复少类的样本,因为标准数据的价值很高,使用下采样会浪费数据。