— 本博客内容主要来自周志华著《机器学习》及网上相关资源,用于个人的学习记录,禁止转载。
线性模型虽然简单,但是变化非常丰富,例如,我们如果认为样例所对应的输出是在指数尺度上变化的,那么就可以将输出标记的对数作为线性模型逼近的目标, ln y = w T x + b \ln y = w^Tx+b lny=wTx+b。这就是对数线性回归,实际上是利用 e w T + b e^{w^T+b} ewT+b逼近 y y y,形式上虽然是线性回归,但是求的是输入空间到输出空间的非线性映射。更一般的考虑单调可微函数 g ( ⋅ ) g(\cdot) g(⋅),令 y = g ( w T x + b ) y=g(w^Tx+b) y=g(wTx+b),这样的模型称为广义线性模型。
1.模型
回归(regression)模型的输出是连续值,如何用连续值做分类的。考虑基本的二分类问题,我们可以使用阶跃函数,设
z
=
w
x
+
b
z=w^x+b
z=wx+b
y
=
{
0
,
z
<
=
0
;
0.5
,
z
=
0
;
1
,
z
>
0.
y= \begin{cases} 0, & z<=0;\\ 0.5, & z =0;\\ 1, & z>0. \end{cases}
y=⎩⎪⎨⎪⎧0,0.5,1,z<=0;z=0;z>0.
但是,单位阶跃函数不连续,求解性质不好,我们希望能够找到一个近似单位阶跃函数的替代函数,要求是单调可微。对数几率函数(Sigmoid函数)就是一个常用的替代。可以得到广义线性模型
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac{1}{1+e^{-(w^Tx+b)}}
y=1+e−(wTx+b)1
从而
ln
y
1
−
y
=
w
T
x
+
b
\ln \frac{y}{1-y}=w^Tx+b
ln1−yy=wTx+b,这里我们将
y
y
y看做样本是正例的概率,那么
1
−
y
1-y
1−y自然是负例的概率,数学中定义“几率”为相对可能性,即
y
1
−
y
\frac{y}{1-y}
1−yy,那么自然
w
T
x
+
b
w^Tx+b
wTx+b便成了所谓的**“对数几率”**。那么我们现在实际上是在用线性模型逼近真实样本的对数几率,称为”对数几率回归“,也叫”逻辑回归“。
2.求解
求解广义线性模型通常使用最小二乘法和极大似然法,极大似然法是概率统计中常用的求解模型参数的方法。这里,我们将
y
y
y表示为后验概率
p
(
y
=
1
∣
x
)
p(y=1|x)
p(y=1∣x),由前面的定义得到(注意Sigmoid函数1+
e
−
(
w
T
x
+
b
)
e^{-(w^Tx+b)}
e−(wTx+b)和后验概率1+
e
−
(
w
T
x
+
b
)
e^{-(w^Tx+b)}
e−(wTx+b)的区别)
p
(
y
=
1
∣
x
)
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}
p(y=1∣x)=1+ewTx+bewTx+b
p ( y = 0 ∣ x ) = 1 1 + e w T x + b p(y=0|x)=\frac{1}{1+e^{w^Tx+b}} p(y=0∣x)=1+ewTx+b1
极大似然法可以简单理解为设定参数
θ
^
\hat{\theta}
θ^,使得各样本在此参数下的分布中真实出现的概率(积)最大,也就是下是的
y
i
y_i
yi是样本真实的标签决定的。给定数据集
(
x
i
,
y
i
)
i
=
1
m
{(x_i,y_i)}_{i=1}^m
(xi,yi)i=1m,对数几率回归最大化
l
(
w
,
b
)
=
∑
i
=
1
m
ln
p
(
y
i
∣
x
i
;
w
,
b
)
l(w,b)=\sum\limits_{i=1}^m \ln p(y_i|x_i;w,b)
l(w,b)=i=1∑mlnp(yi∣xi;w,b)
为了方便讨论,记
β
=
(
w
,
b
)
,
x
^
=
(
x
;
1
)
\beta=(w,b),\hat{x}=(x;1)
β=(w,b),x^=(x;1),将
w
T
x
+
b
w^Tx+b
wTx+b简写为
β
T
x
^
\beta ^T\hat{x}
βTx^。由于这里的标签
y
i
∈
{
0
,
1
}
y_i\in\{0,1\}
yi∈{0,1},我们使用一个小trick,将样本的后验概率写为
p
(
y
i
∣
x
i
;
w
,
b
)
=
y
i
⋅
p
(
y
i
=
1
∣
x
^
i
;
β
)
+
(
1
−
y
i
)
⋅
p
(
y
i
=
0
∣
x
^
i
;
β
)
p(y_i|x_i;w,b)=y_i\cdot p(y_i=1|\hat{x}_i;\beta)+(1-y_i)\cdot p(y_i=0|\hat{x}_i;\beta)
p(yi∣xi;w,b)=yi⋅p(yi=1∣x^i;β)+(1−yi)⋅p(yi=0∣x^i;β)
需要注意,代入求解时,
ln
p
(
y
i
)
\ln p(y_i)
lnp(yi)转化为
y
i
ln
p
(
y
i
=
1
)
+
(
1
−
y
i
)
ln
p
(
y
i
=
0
)
y_i \ln p(y_i=1)+(1-y_i) \ln p(y_i=0)
yilnp(yi=1)+(1−yi)lnp(yi=0),这里的“转化为”其实可以写为“=”,因为
y
i
y_i
yi 的二值性。或者按照《统计学习方法》中的表示,将样本的后验概率写为。
p
(
y
i
∣
x
i
;
w
,
b
)
=
[
p
(
y
i
=
1
∣
x
^
i
;
β
)
]
y
i
⋅
[
p
(
y
i
=
0
∣
x
^
i
;
β
)
]
1
−
y
i
p(y_i|x_i;w,b)= [p(y_i=1|\hat{x}_i;\beta)]^{y_i}\cdot[p(y_i=0|\hat{x}_i;\beta)]^{1-y_i}
p(yi∣xi;w,b)=[p(yi=1∣x^i;β)]yi⋅[p(yi=0∣x^i;β)]1−yi
此时,将式1、2、3代入4或5都可得到
l
(
β
)
=
∑
i
=
1
m
(
−
y
i
β
T
x
^
i
+
ln
(
1
+
e
β
T
x
^
i
)
)
l(\beta)=\sum\limits_{i=1}^m (-y_i\beta^T\hat{x}_i+\ln(1+e^{\beta^T\hat{x}_i}))
l(β)=i=1∑m(−yiβTx^i+ln(1+eβTx^i))
上述函数
l
(
β
)
l(\beta)
l(β)是关于
β
\beta
β 的高阶可到连续凸函数,许多经典的数值优化算法都可用于求解,例如梯度下降法、牛顿法等这里不做详解。