第三章 线性模型
3.1 基本形式
线性模型(Linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
d
x
d
+
b
f(\mathbf x)=w_1x_1+w_2x_2+...+w_dx_d+b
f(x)=w1x1+w2x2+...+wdxd+b
一般用向量形式写成
f
(
x
)
=
w
T
x
+
b
f(\mathbf x)=\mathbf{w^Tx}+b
f(x)=wTx+b
其中
w
=
(
w
1
;
w
2
;
.
.
.
;
w
d
)
w=(w_1;w_2;...;w_d)
w=(w1;w2;...;wd)
w表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。
当w和b学得后,模型就可以确认了。
非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得。
3.2 线性回归
先举个 简 单 的 例 子 \color{red}{简单的例子} 简单的例子,假设我们得到的数据集只有一个属性,且忽略关于属性的下表,即 D = ( x i , y i ) i = 1 m D={(x_i,y_i)}_{i=1}^{m} D=(xi,yi)i=1m
对离散属性,若属性值间存在“序”(order)关系,可通过连续化将其转化为连续值,若将无序属性连续化,则会不恰当的引入序关系,对后续处理如距离计算等造成误导。
线性回归试图学得
f
(
x
i
)
=
w
x
i
+
b
f(x_i)=wx_i+b
f(xi)=wxi+b
使得
f
(
x
i
)
f(x_i)
f(xi)近似等于
y
i
y_i
yi
由于使用均方误差是回归任务中最常用的性能度量,因此可以试图让均方误差最小化,然后对均方误差的均值求关于w和b的偏导。使其为0,得到w和b最优解的闭式(closed-form)解。
具体的步骤如下:
均方误差为:
(
w
∗
,
b
∗
)
=
a
r
g
min
(
w
,
b
)
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
=
a
r
g
min
(
w
,
b
)
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
(w^*,b^*)=arg\ \min_{(w,b)}\sum_{i=1}^{m}(f(x_i)-y_i)^2 \\ =arg \ \min_{(w,b)}\sum_{i=1}^{m}(y_i-wx_i-b)^2
(w∗,b∗)=arg (w,b)mini=1∑m(f(xi)−yi)2=arg (w,b)mini=1∑m(yi−wxi−b)2
均方误差对应了欧氏距离,基于均方误差最小化来进行模型求解的方法称为“最小二乘法(least square method)”
均方误差的均值为:
E
(
w
,
b
)
=
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
E_{(w,b)}=\sum_{i=1}^{m}(y_i-wx_i-b)^2
E(w,b)=i=1∑m(yi−wxi−b)2
求解w和b使E~(w,b)~最小化的过程,称为线性回归模型的最小二乘“参数估计”
对均方误差的均值关于w和b求偏导:
∂
E
(
w
,
b
)
∂
w
=
2
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
∂
E
(
w
,
b
)
∂
b
=
2
(
m
b
−
∑
i
=
1
m
(
y
i
−
w
x
i
)
)
\frac{\partial E_{(w,b)}}{\partial w}=2(w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(y_i-b)x_i) \\ \frac{\partial E_{(w,b)}}{\partial b}=2(mb-\sum_{i=1}^m(y_i-wx_i))
∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))
令偏导结果等于零,得到w和b最优解的闭式解:
w
=
∑
i
=
1
m
y
i
(
x
i
−
x
ˉ
)
∑
i
=
1
m
x
i
2
−
1
m
(
∑
i
=
1
m
x
i
)
2
w=\frac{\sum_{i=1}^my_i(x_i-\bar{x})}{\sum_{i=1}^mx_i^2-\frac{1}{m}(\sum_{i=1}^mx_i)^2}
w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
其中
x
ˉ
=
1
m
∑
i
=
1
m
x
i
b
=
1
m
∑
i
=
1
m
(
y
i
−
w
x
i
)
\bar{x}=\frac{1}{m}\sum_{i=1}^mx_i \\ b=\frac{1}{m}\sum_{i=1}^m(y_i-wx_i)
xˉ=m1i=1∑mxib=m1i=1∑m(yi−wxi)
更 一 般 的 情 形 \color{red}{更一般的情形} 更一般的情形是对于数据集D,样本有d个属性描述
数据集
D
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
D={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}
D=(x1,y1),(x2,y2),...,(xm,ym)
其中
x
i
=
(
x
i
1
;
x
i
2
;
.
.
.
;
x
i
d
)
,
y
i
∈
R
x_i=(x_{i1};x_{i2};...;x_{id}),y_i∈R
xi=(xi1;xi2;...;xid),yi∈R
此时我们试图学得
f
(
x
i
)
=
w
T
x
i
+
b
f(x_i)=w^Tx_i+b
f(xi)=wTxi+b
使得
f
(
x
i
)
f(x_i)
f(xi)近似等于
y
i
y_i
yi
这就是多元线性回归
类 似 的 \color{red}{类似的} 类似的,我们可用最小二乘法来对w和b进行估计:
为便于讨论,把w和b吸收入向量形式
w
^
=
(
w
;
b
)
\hat{w}=(w;b)
w^=(w;b)把数据集D表示为一个m×(d+1)大小的矩阵X,其中每行对应一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素恒置为1,即
X
=
(
x
11
x
12
…
x
1
d
1
x
21
x
22
…
x
2
d
1
⋮
⋮
⋱
⋮
⋮
x
m
1
x
m
2
…
x
m
d
1
)
=
(
x
1
T
1
x
2
T
1
⋮
⋮
x
m
T
1
)
\mathbf{X}=\left(\begin{array}{ccccc} x_{11} & x_{12} & \ldots & x_{1 d} & 1 \\ x_{21} & x_{22} & \ldots & x_{2 d} & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_{m 1} & x_{m 2} & \ldots & x_{m d} & 1 \end{array}\right)=\left(\begin{array}{cc} x_{1}^{T} & 1 \\ x_{2}^{T} & 1 \\ \vdots & \vdots \\ x_{m}^{T} & 1 \end{array}\right)
X=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2……⋱…x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1Tx2T⋮xmT11⋮1⎠⎟⎟⎟⎞
再将标记也写成向量形式
y
=
(
y
1
;
y
2
;
.
.
.
;
y
m
)
y=(y_1;y_2;...;y_m)
y=(y1;y2;...;ym),则有
w
^
∗
=
a
r
g
min
w
^
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
\hat{w}^*=arg \ \min _{\hat{w}}(\mathbf y-\mathbf{X\hat{w})^T(y-X\hat{w}})
w^∗=arg w^min(y−Xw^)T(y−Xw^)
均值为:
E
w
^
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
E_{\hat w}=(y-X\hat{w})^T(y-X\hat{w})
Ew^=(y−Xw^)T(y−Xw^)
对
w
^
\hat{w}
w^求偏导:
∂
E
w
^
∂
w
^
=
2
X
T
(
X
w
^
−
y
)
\frac{\partial E_{\hat{\boldsymbol{w}}}}{\partial \hat{\boldsymbol{w}}}=2 \mathbf{X}^{\mathrm{T}}(\mathbf{X} \hat{\boldsymbol{w}}-\boldsymbol{y})
∂w^∂Ew^=2XT(Xw^−y)
令偏导结果为零,得到
w
^
\hat{\boldsymbol{w}}
w^最优解的闭式解。
但由于涉及矩阵逆的计算,所以比单变量情形要复杂一点。
当XTX为满秩矩阵或正定矩阵时,线性回归模型为:
f
(
x
^
i
)
=
x
^
i
T
(
X
T
X
)
−
1
X
T
y
f(\hat x_i)=\hat x^T_i(\mathbf{X^TX})^{-1}\mathbf X^Ty
f(x^i)=x^iT(XTX)−1XTy
当XTX不是满秩矩阵时可解出多个
w
^
\hat w
w^
选择哪一个解作为输出,将由学习算法的归纳偏好决定,常见的做法是引入正则化。
特殊情况,如果示例所对应的输出标记是在指数尺度上变化,可将输出标记的对数作为线性模型逼近的目标,即
l
n
y
=
w
T
x
+
b
ln\ y=w^Tx+b
ln y=wTx+b
它在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射,这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
得到
更
一
般
的
情
况
\color{red}{更一般的情况}
更一般的情况,考虑单调可微函数g(·),令
y
=
g
−
1
(
w
T
x
+
b
)
y=g^{-1}(\mathbf{w^Tx}+b)
y=g−1(wTx+b)
得到的模型称为“广义线性模型”,函数g(·)称为“联系函数”。
3.3 对数几率回归
在广义线性模型中,如果做的是分类任务,只需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
对数几率函数单调可微,能在一定程度上近似单位阶跃函数,是一种“Sigmoid”函数,其常用的替代函数为:
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
将对数几率函数最为
g
−
(
⋅
)
g^-(·)
g−(⋅)带入联系函数,得到:
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac{1}{1+e^{-(\mathbf{w^Tx}+b)}}
y=1+e−(wTx+b)1
两边取对数,得到:
l
n
y
1
−
y
=
w
T
x
+
b
ln \ \frac{y}{1-y}=\mathbf{w^Tx}+b
ln 1−yy=wTx+b
如果将y视为样本x作为正例的可能性,1-y视为样本x作为反例的可能性,两者的比值称为“几率”,反映了x作为正例的相对可能性。对几率取对数则得到“对数几率”。
由上述推导可看出,式子其实是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归”,是一种分类学习方法,直接对分类可能性进行建模,可得到近似概率预测。对率回归求解的目标函数是任意阶可导的凸函数。
如何确定w和b:
将y视为类后验概率估计p(y=1|x),则上式可写为:
l
n
p
(
y
=
1
∣
x
)
p
(
y
=
0
∣
x
)
=
w
T
x
+
b
ln\frac{p(y=1|x)}{p(y=0|x)}=\mathbf{w^Tx}+b
lnp(y=0∣x)p(y=1∣x)=wTx+b
得到:
p
(
y
=
1
∣
x
)
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
p
(
y
=
0
∣
x
)
=
1
1
+
e
w
T
x
+
b
p(y=1|x)=\frac{e^{\mathbf{w^Tx}+b}}{1+e^{\mathbf{w^Tx}+b}} \\ p(y=0|x)=\frac{1}{1+e^{\mathbf{w^Tx}+b}}
p(y=1∣x)=1+ewTx+bewTx+bp(y=0∣x)=1+ewTx+b1
通过“极大似然法”来估计w和b
对率回归模型最大化“对数似然”
l
(
w
,
b
)
=
∑
i
=
1
m
l
n
p
(
y
i
∣
x
i
;
w
,
b
)
l(w,b)=\sum_{i=1}^mln \ p(y_i|x_i;w,b)
l(w,b)=i=1∑mln p(yi∣xi;w,b)
令每个样本属于其真实标记的概率越大越好
3.4 线性判别分析
线性判别分析,简称LDA,是一种经典的线性学习方法,在二分类问题上亦称为“Fisher判别分析”
思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小。
欲使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大。
若同时考虑二者,可得到欲最大化的目标: J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w J=\frac{||w^T\mu_0-w^T\mu_1||_2^2}{w^T\Sigma_0w+w^T\Sigma_1w} \\ =\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w} J=wTΣ0w+wTΣ1w∣∣wTμ0−wTμ1∣∣22=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw
定义“类内散度矩阵”:
S
w
=
Σ
0
+
Σ
1
=
Σ
x
∈
X
0
(
x
−
μ
0
)
(
x
−
μ
0
)
T
+
Σ
x
∈
X
1
(
x
−
μ
1
)
(
x
−
μ
1
)
T
S_w=\Sigma_0+\Sigma_1 \\ =\Sigma_{x∈X_0}(x-\mu_0)(x-\mu_0)^T+\Sigma_{x∈X_1}(x-\mu_1)(x-\mu_1)^T
Sw=Σ0+Σ1=Σx∈X0(x−μ0)(x−μ0)T+Σx∈X1(x−μ1)(x−μ1)T
定义“类间散度矩阵”:
S
b
=
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T
Sb=(μ0−μ1)(μ0−μ1)T
则J可重写为:
J
=
w
T
S
b
w
w
T
S
w
w
J=\frac{w^TS_bw}{w^TS_ww}
J=wTSwwwTSbw
这就是LDA欲最大化的目标,即Sb与Sw的“广义瑞丽商”
如何确定w:
令
w
T
S
w
w
=
1
w^TS_ww=1
wTSww=1
得到广义瑞丽商等价于:
min
w
−
w
T
S
b
w
s
.
t
.
w
T
S
w
w
=
1
\min_{w}\ -w^TS_bw \\ s.t.\ w^TS_ww=1
wmin −wTSbws.t. wTSww=1
由拉格朗日乘子法,上式等价于
S
b
w
=
λ
S
w
w
\mathbf{S_bw=\lambda S_ww}
Sbw=λSww
其中
λ
\lambda
λ是拉格朗日乘子,令
S
b
w
=
λ
(
μ
0
−
μ
1
)
\mathbf{S}_{b} \boldsymbol{w}=\lambda\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)
Sbw=λ(μ0−μ1)
得到
w
=
S
w
−
1
(
μ
0
−
μ
1
)
\boldsymbol{w}=\mathbf{S}_{w}^{-1}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)
w=Sw−1(μ0−μ1)
考虑到数值解的稳定性,在实践中通常是对Sw进行奇异值分解。
LDA可从贝叶斯决策理论的角度来阐释,当两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类。
可以将LDA推广到多分类任务中,假定存在N个类,且第i类示例数为mi,我们先定义“全局散度矩阵”
S
t
=
S
b
+
S
w
=
∑
i
=
1
m
(
x
i
−
μ
)
(
x
i
−
μ
)
T
\begin{aligned} \mathbf{S}_{t} &=\mathbf{S}_{b}+\mathbf{S}_{w} \\ &=\sum_{i=1}^{m}\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned}
St=Sb+Sw=i=1∑m(xi−μ)(xi−μ)T
将类内散度矩阵Sw重定义为每个类别的散度矩阵之和,即
S
w
=
∑
i
=
1
N
S
w
i
\mathbf{S}_{w}=\sum_{i=1}^{N} \mathbf{S}_{w_{i}}
Sw=i=1∑NSwi
其中
S
w
i
=
∑
x
∈
X
i
(
x
−
μ
i
)
(
x
−
μ
i
)
T
\mathbf{S}_{w_{i}}=\sum_{\boldsymbol{x} \in X_{i}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}}
Swi=x∈Xi∑(x−μi)(x−μi)T
整理后可的
S
b
=
S
t
−
S
w
=
∑
i
=
1
N
m
i
(
μ
i
−
μ
)
(
μ
i
−
μ
)
T
\begin{aligned} \mathbf{S}_{b} &=\mathbf{S}_{t}-\mathbf{S}_{w} \\ &=\sum_{i=1}^{N} m_{i}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned}
Sb=St−Sw=i=1∑Nmi(μi−μ)(μi−μ)T
综上,多分类LDA可以有多种实现方法:使用Sb,Sw,St三者中的任何两个即可,常见的一种实现是采用优化目标
max
W
t
r
(
W
T
S
b
W
)
t
r
(
W
T
S
w
W
)
\max_W\frac{tr(W^TS_bW)}{tr(W^TS_wW)}
Wmaxtr(WTSwW)tr(WTSbW)
通过广义特征问题求解
S
b
W
=
λ
S
w
W
S_bW=\lambda S_wW
SbW=λSwW
W的闭式解则是
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb的d’个最大非零广义特征值所对应的特征向量组成的矩阵,d’≤N-1。
3.5 多分类学习
基于一些基本策略,利用二分类学习器来解决多分类问题。
先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器,在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。
拆分类策略有:一对一(OvO)、一对其余(OvR)、多对多(MvM)
OvO将N个类别两两配对,产生N(N-1)/2个二分类任务,在测试阶段,新样本将同时提交给所有分类器,于是,得到N(N-1)/2个分类结果,最终结果可通过投票产生:即把被预测的最多的类别作为最终分类结果。
OvR每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器,若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
OvR只需训练N个分类器,而OvO需训练N(N-1)/2个分类器,因此,OvO的存储开销和测试时间开销通常比OvR更大,但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvR更小。预测性能取决于具体的数据分布,在多数情形下两者差不多。
MvM每次将若干个类作为正类,若干个其他类作为反类。可以看出OvO和OvR是MvM的特例。MvM的正、反类构造必须有特殊的设计,不能随意选取,最常用的MvM技术:”纠错输出码“(ECOC)。
ECOC是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性,工作过程分为两步:
- 编码:对N个类别做M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练出M个分类器。
类别划分通过”编码矩阵“指定,编码矩阵有多种形式,常见的主要有二元码和三元码。前者将每个类别分别指定为正类和反类,后者在正、反类之外,还可指定”停用类“。- 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
纠错输出码(ECOC)在测试阶段对分类器的错误有一定的容忍和修正能力。一般来说,对同一个学习任务,ECOC编码越长,纠错能力越强,计算、存储开销都会增大;对同等长度的编码,理论上来说,编码距离越远,纠错能力越强,但并不是编码的理论性质越好,分类性能就越好。一个理论纠错性质很好、但导致的二分类问题较难的编码,与另一个理论纠错性质差一些、但导致的二分类问题较简单的编码,最终产生的模型性能孰强孰弱很难说。
3.6 类别不平衡问题
定义:类别不平衡(class-imbalance)指分类任务中不同类别的训练样例数目差别很大的情况。
当训练集中正、反例的数目相同时,分类器的决策规则是:
若
y
1
−
y
>
1
则
预
测
为
正
例
若\ \frac{y}{1-y}>1\ 则 \ 预测为正例
若 1−yy>1 则 预测为正例
当训练集中正、反例的数目不相同时,令m+表示正例数目、m-表示反例数目,则预测几率是
m
+
m
−
\frac{m^+}{m^-}
m−m+,由于我们通常假设训练集是真实样本总体的无偏采样,因此观测几率就代表了真实几率,即
若
y
1
−
y
>
m
+
m
−
则
预
测
为
正
例
若 \ \frac{y}{1-y}>\frac{m^+}{m^-} \ 则 \ 预测为正例
若 1−yy>m−m+ 则 预测为正例
如果要是对预测值进行调整,使其在基于式
y
1
−
y
>
1
\frac{y}{1-y}>1
1−yy>1 决策,实际上是在执行式
y
1
−
y
>
m
+
m
−
\frac{y}{1-y}>\frac{m^+}{m^-}
1−yy>m−m+,则需要进行“再缩放”,即
y
′
1
−
y
′
=
y
1
−
y
×
m
−
m
+
\frac{y'}{1-y'}=\frac{y}{1-y}×\frac{m^-}{m^+}
1−y′y′=1−yy×m+m−
为实现再缩放,我们要有效的基于训练集观测几率来推断出真实几率,现有的技术有:
直接对训练集里的反类样例进行“欠采样”,即去除一些反例使得正、反例数目接近,然后再进行学习。
对训练集里的正类样例进行“过采样”,即增加一些正例使得正、反例数目接近,然后再进行学习。
直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式
y ′ 1 − y ′ = y 1 − y × m − m + \frac{y'}{1-y'}=\frac{y}{1-y}×\frac{m^-}{m^+} 1−y′y′=1−yy×m+m−嵌入到其决策过程中,称为”阈值移动“。
欠采样法的时间开销通常远小于过采样法,过采样法不能简单地对初始正例样本进行重复采样,否则会招致严重的过拟合。欠采样法如果若随即丢弃反例,可能丢失一些重要信息。
过采样法的代表性算法SMOTE是通过对训练集里的正例进行插值来产生额外的正例;
欠采样法的代表性算法EasyEnsemble是利用集成学习机制,将反例划分为若干个集合供不同学习器使用,即对每个学习器进行欠采样而在全局来看却不会丢失重要信息。