一、基本形式
给定由 d d d 个属性描述的示例 x = ( x 1 ; x 2 ; ⋯ ; x d ) x=(x_1;x_2;\cdots;x_d) x=(x1;x2;⋯;xd) ,其中 x i x_i xi 是 x x x 在第 i i i 个属性上的取值,线性模型(linear model) 就是学习一个通过属性的线性组合来进行预测的函数:
f ( x ) = w 1 x 1 + w 2 x 2 + ⋯ + w d x d + b f(x)=w_1x_1+w_2x_2+\cdots+w_dx_d+b f(x)=w1x1+w2x2+⋯+wdxd+b
一般用向量形式写成:
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
非线性模型(nonlinear model) 可在线性模型的基础上引入层级结构或高维映射得到。线性模型具备较好的解释性。
二、线性回归
给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x m , y m ) } D=\left\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\right\} 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};\cdots;x_{id}),y_i\in \mathbb{R} xi=(xi1;xi2;⋯;xid),yi∈R 。线性回归(linear regression) 是学习一个线性模型以尽可能准确地预测实值输出标记。
线性回归试图学得:
f ( x i ) = w x i + b , 使 得 f ( x i ) ≃ y i f(x_i)=wx_i+b,使得f(x_i)\simeq y_i f(xi)=wxi+b,使得f(xi)≃yi
要确定 w w w 和 b b b ,可以使均方误差最小:
( w ∗ , b ∗ ) = arg min ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min w , b ∑ i = 1 m ( y i − w x i − b ) 2 (w^*,b^*)=\argmin_{(w,b)}\sum_{i=1}^m(f(x_i)-y_i)^2\\~~~~~~~~~~~~~~~~~~=\argmin_{w,b}\sum_{i=1}^m(y_i-wx_i-b)^2 (w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2 =w,bargmini=1∑m(yi−wxi−b)2
均方误差对应了欧氏距离(Euclidean distance),基于均方误差最小化来进行模型求解的方法称为最小二乘法(least square method)。在线性回归中,最小二乘法就是找一条直线,使得所有样本到支线上的欧式距离之和最小。
求解 w w w 和 b b b 使 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=1m(yi−wxi−b)2 最小化的过程,称为线性回归模型的最小二乘参数估计(parameter estimation)。可将 E ( w , b ) E_{(w,b)} E(w,b) 分别对 w w w 和 b b b 求导,得到:
∂
E
(
w
,
b
)
∂
w
=
w
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
\frac{\partial E_{(w,b)}}{\partial w}=w\left(w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(y_i-b)x_i \right)
∂w∂E(w,b)=w(wi=1∑mxi2−i=1∑m(yi−b)xi)
∂
E
(
w
,
b
)
∂
b
=
2
(
m
b
−
∑
i
=
1
m
(
y
i
−
w
x
i
)
)
\frac{\partial E_{(w,b)}}{\partial b}=2\left(mb-\sum_{i=1}^m(y_i-wx_i)\right)
∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))
然后令上两个式子为 0 可得到 w w w 和 b b b 最优解的闭式(closed-form) 解:
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}\left(\sum_{i=1}^mx_i\right)^2}
w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
b
=
1
m
∑
i
=
1
m
(
y
i
−
w
x
i
)
b=\frac{1}{m}\sum_{i=1}^m(y_i-wx_i)
b=m1i=1∑m(yi−wxi)
其中 x ˉ = 1 m ∑ i = 1 m x i \bar x=\frac{1}{m}\sum_{i=1}^mx_i xˉ=m1∑i=1mxi 为 x x x 的均值。
若考虑样本的 d d d 个属性,此时需要学习:
f ( x i ) = w T x i + b , 使 得 f ( x i ) ≃ y i f(x_i)=w^Tx_i+b,使得f(x_i)\simeq y_i f(xi)=wTxi+b,使得f(xi)≃yi
这称为多元线性回归(multivariate linear regression)。
同样可以利用最小二乘法来进行估计,令 w ^ = ( w ; b ) \hat w=(w;b) w^=(w;b) ,数据集 D D D 表示为一个 m × ( d + 1 ) m\times(d+1) m×(d+1) 大小的矩阵 X X X ,其中每行对应一个示例,该行前 d d d 个元素对应于示例的 d 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 ] X=\begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1d} & 1 \\ x_{21} & x_{22} & \cdots & x_{2d} & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{md} & 1 \end{bmatrix}=\begin{bmatrix} x_1^T & 1 \\ x_2^T & 1 \\ \vdots & \vdots \\ x_m^T & 1 \end{bmatrix} X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1Tx2T⋮xmT11⋮1⎦⎥⎥⎥⎤
把标记写成向量形式: y = ( y 1 ; y 2 ; ⋯ ; y m ) y=(y_1;y_2;\cdots;y_m) y=(y1;y2;⋯;ym) ,则有:
w ^ ∗ = arg min w ^ ( y − X w ^ ) T ( y − X w ^ ) \hat w^*=\argmin_{\hat w}(y-X\hat w)^T(y-X\hat w) w^∗=w^argmin(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 ^ = y T y − w ^ T X T y − y T X w ^ + w ^ T X T X w ^ \frac{\partial E_{\hat w}}{\partial \hat w}=y^Ty-\hat w^TX^Ty-y^TX\hat w+\hat w^TX^TX\hat w ∂w^∂Ew^=yTy−w^TXTy−yTXw^+w^TXTXw^
由矩阵微分公式: ∂ a T x ∂ x = ∂ x T a ∂ x = a \frac{\partial a^Tx}{\partial x}=\frac{\partial x^Ta}{\partial x}=a ∂x∂aTx=∂x∂xTa=a , ∂ x T A x ∂ x = ( A + A T ) x \frac{\partial x^TAx}{\partial x}=(A+A^T)x ∂x∂xTAx=(A+AT)x 可得:
∂ E w ^ ∂ w ^ = 0 − 2 X T y + ( X T X + ( X X T ) T ) w ^ = ∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) ~~~~~~~~~\frac{\partial E_{\hat w}}{\partial \hat w}=0-2X^Ty+(X^TX+(XX^T)^T)\hat w\\=\frac{\partial E_{\hat w}}{\partial \hat w}=2X^T(X\hat w-y) ∂w^∂Ew^=0−2XTy+(XTX+(XXT)T)w^=∂w^∂Ew^=2XT(Xw^−y)
令上式为 0 ,可得 w ^ \hat w w^ 最优解的闭式解,当 X T X X^TX XTX 为满秩矩阵(full-rank matrix) 或正定矩阵(positive definite matrix) 时,可得:
w ^ ∗ = ( X T X ) − 1 X T y \hat w^*=(X^TX)^{-1}X^Ty w^∗=(XTX)−1XTy
令 x ^ i = ( x i , 1 ) \hat x_i=(x_i,1) x^i=(xi,1),则最终学得的多元线性回归模型为:
f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y f(\hat x_i)=\hat x_i^T(X^TX)^{-1}X^Ty f(x^i)=x^iT(XTX)−1XTy
当 X T X X^TX XTX 不满秩时,可解出多个 w ^ \hat w w^ ,它们都能使均方误差最小化,选择哪一个解作为输出,将由学习算法的归纳偏好决定,常见做法是引入正则化(regularization) 项。
对于简单的线性模型,可以将模型预测值逼近 y y y 的衍生物,例如可将输出标记的对数作为线性模型逼近的目标:
ln y = w T x + b \ln y=w^Tx+b lny=wTx+b
这就是对数线性回归(log-linear regression),虽然该式形式上仍是线性回归,但实质上已是在求取输入控件到输出空间的非线性函数映射,如图,该函数可将线性回归模型的预测值与真实标签联系起来。
还可考虑单调可微函数 g ( ⋅ ) g(\cdot) g(⋅) :
y = g − 1 ( w T x + b ) y=g^{-1}(w^Tx+b) y=g−1(wTx+b)
这样得到的模型成为广义线性模型(generalized linear model),其中函数 g ( ⋅ ) g(\cdot) g(⋅) 称为联系函数(link function)。
三、对数几率回归
考虑二分类任务,其输出标记 y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1} ,需要将线性回归模型产生的预测值(实值)转换为离散值,最理想的是阶跃函数(unit-step function):
y = { 0 z < 0 0.5 z = 0 1 z > 0 y=\left\{\begin{matrix} 0 & z<0 \\ 0.5 & z=0 \\ 1 & z>0 \end{matrix}\right. y=⎩⎨⎧00.51z<0z=0z>0
从图中可以看出,单位阶跃函数不连续,因此不能直接使用,于是可以找到一些替代函数(surrogate function),这些函数单调可微,如对数几率函数(logistic function):
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+e−z1
将对数几率函数作为 g − ( ⋅ ) g^-(\cdot) g−(⋅) ,得:
y = 1 1 + e − ( w T x + b ) (3.18) y=\frac{1}{1+e^{-(w^Tx+b)}}\tag{3.18} y=1+e−(wTx+b)1(3.18)
恒等变形:
ln y 1 − y = w T x + b (3.19) \ln\frac{y}{1-y}=w^Tx+b\tag{3.19} ln1−yy=wTx+b(3.19)
若将 y y y 视为样本 x x x 作为正例的可能性,则 1 − y 1-y 1−y 是其反例可能性,两者比值:
y 1 − y \frac{y}{1-y} 1−yy
称为几率(odds),反映了 x x x 作为正例的相对可能性,对几率取对数则得到对数几率(log odds, 亦称 logit):
ln y 1 − y \ln\frac{y}{1-y} ln1−yy
由此可看出,式(3.18)实际上是在用线性回归模型的预测结果去逼近真是标记的对数几率,因此对应的模型称为对数几率回归(logistic regression,亦称 logit regression)。
下面来确定式(3.18)中的 w w w 和 b b b ,若将式(3.18)中的 y y y 视为类后验概率估计 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x) ,则式(3.19)可重写为:
ln p ( y = 1 ∣ x ) p ( y = 0 ∣ x ) = w T x + b \ln\frac{p(y=1|x)}{p(y=0|x)}=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 (3.23) p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}\tag{3.23} p(y=1∣x)=1+ewTx+bewTx+b(3.23)
p ( y = 0 ∣ x ) = 1 1 + e w T x + b (3.24) p(y=0|x)=\frac{1}{1+e^{w^Tx+b}}\tag{3.24} p(y=0∣x)=1+ewTx+b1(3.24)
于是,可以通过极大似然法(maximum likelihood method) 来估计 w w w 和 b b b 。给定数据集 { ( x i , y i ) } i = 1 m \left\{(x_i,y_i)\right\}_{i=1}^m {(xi,yi)}i=1m ,对率回归模型最大化对然似然(log-likelihood):
ℓ ( w , b ) = ∑ i = 1 m ln p ( y i ∣ x i ; w , b ) (3.25) \ell(w,b)=\sum_{i=1}^m\ln p(y_i|x_i;w,b)\tag{3.25} ℓ(w,b)=i=1∑mlnp(yi∣xi;w,b)(3.25)
即令每个样本属于其真实标记的概率越大越好。为便于讨论,令 β = ( 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^ 。再令 p 1 ( x ^ ; β ) = p ( y = 1 ∣ x ^ ; β ) , p 0 ( x ^ ; β ) = p ( y = 0 ∣ x ^ ; β ) = 1 − p 1 ( x ^ ; β ) p_1(\hat x;\beta)=p(y=1|\hat x;\beta),p_0(\hat x;\beta)=p(y=0|\hat x;\beta)=1-p_1(\hat x;\beta) p1(x^;β)=p(y=1∣x^;β),p0(x^;β)=p(y=0∣x^;β)=1−p1(x^;β) ,则上式中的似然项可重写为:
p ( y i ∣ x i ; w , b ) = y i p 1 ( x ^ i ; β ) + ( 1 − y i ) p 0 ( x i ; β ) (3.26) p(y_i|x_i;w,b)=y_ip_1(\hat x_i;\beta)+(1-y_i)p_0(x_i;\beta)\tag{3.26} p(yi∣xi;w,b)=yip1(x^i;β)+(1−yi)p0(xi;β)(3.26)
将式(3.26)带入(3.25),并根据式(3.23)和(3.24)可知,最大化式(3.25)等价于最小化:
ℓ ( β ) = ∑ i = 1 m ( − y i β T x ^ i + ln ( 1 + e β T x ^ i ) ) (3.27) \ell(\beta)=\sum_{i=1}^m\left(-y_i\beta^T\hat x_i+\ln\left(1+e^{\beta^T\hat x_i}\right)\right)\tag{3.27} ℓ(β)=i=1∑m(−yiβTx^i+ln(1+eβTx^i))(3.27)
式(3.27)是关于 β \beta β 的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法(gradient descent method)、牛顿法(Newton method) 等都可求得其最优解,于是就得到:
β ∗ = arg min β ℓ ( β ) \beta^*=\argmin_\beta\ell(\beta) β∗=βargminℓ(β)
以牛顿法为例,其第 t + 1 t+1 t+1 轮迭代解的更新公式为:
β t + 1 = β t − ( ∂ 2 ℓ ( β ) ∂ β ∂ β T ) − 1 ∂ ℓ ( β ) ∂ β \beta^{t+1}=\beta^t-\left(\frac{\partial^2\ell(\beta)}{\partial\beta\partial\beta^T}\right)^{-1}\frac{\partial\ell(\beta)}{\partial\beta} βt+1=βt−(∂β∂βT∂2ℓ(β))−1∂β∂ℓ(β)
其中关于 β \beta β 的一阶、二阶导数分别为:
∂ ℓ ( β ) ∂ β = − ∑ i = 1 m x ^ i ( y i − p 1 ( x ^ i ; β ) ) \frac{\partial\ell(\beta)}{\partial\beta}=-\sum_{i=1}^m\hat x_i(y_i-p_1(\hat x_i;\beta)) ∂β∂ℓ(β)=−i=1∑mx^i(yi−p1(x^i;β))
∂ 2 ℓ ( β ) ∂ β ∂ β T = ∑ i = 1 m x ^ i x ^ i T p 1 ( x ^ i l β ) ( 1 − p 1 ( x ^ i ; β ) ) \frac{\partial^2\ell(\beta)}{\partial\beta\partial\beta^T}=\sum_{i=1}^m\hat x_i\hat x_i^Tp_1(\hat x_il\beta)(1-p_1(\hat x_i;\beta)) ∂β∂βT∂2ℓ(β)=i=1∑mx^ix^iTp1(x^ilβ)(1−p1(x^i;β))
四、线性判别分析
LDA 也是一种对数据进行降维的方法,与 PCA 不同的是,LDA 是一种有监督的数据降维方法。
PCA 存在局限性,例如两组本来可分的数据,降维后在新的空间中不可分。
LDA 降维的目标:将带有标签的数据降维,须满足三个条件:
- 尽可能多的保留样本信息;
- 寻找使样本尽可能好分的投影方向;
- 投影后使同类样本尽可能接近,不同类样本尽可能远离;
1. 优化目标
线性,指将数据点投影到直线上,直线表达式为:
y = w T x y=w^Tx y=wTx
x x x 表示样本向量,如果投影到一条直线上 w w w 就是一个特征向量或者多个特征向量构成的矩阵。 y y y 为投影后的样本点。
首先考虑两类样本的情况,将数据投影到直线
w
w
w 上,则两类样本的中心在直线上的投影分别为
w
T
μ
0
w^T\mu_0
wTμ0 和
w
T
μ
1
w^T\mu_1
wTμ1 ,其中
μ
i
\mu_i
μi 表示第
i
i
i 类样本的均值,若将所有的样本点都投影到直线上,则两类样本的协方差分别为
w
T
∑
0
w
w^T\sum_0w
wT∑0w 和
w
T
∑
1
w
w^T\sum_1w
wT∑1w ,投影后同类样本协方差矩阵的计算步骤如下:
∑
x
∈
D
i
(
w
T
x
−
w
T
μ
i
)
2
=
∑
x
∈
D
i
(
w
T
(
x
−
μ
i
)
)
2
=
∑
x
∈
D
i
w
T
(
x
−
μ
i
)
(
x
−
μ
i
)
T
w
=
w
T
∑
x
∈
D
i
[
(
x
−
μ
i
)
(
x
−
μ
i
)
T
]
w
\sum_{x\in D_i}(w^Tx-w^T\mu_i)^2\\=\sum_{x\in D_i}(w^T(x-\mu_i))^2~~~~~~~\\~~~~~~~~=\sum_{x\in D_i}w^T(x-\mu_i)(x-\mu_i)^Tw\\~~~~~~~~~~=w^T\sum_{x\in D_i}[(x-\mu_i)(x-\mu_i)^T]w
x∈Di∑(wTx−wTμi)2=x∈Di∑(wT(x−μi))2 =x∈Di∑wT(x−μi)(x−μi)Tw =wTx∈Di∑[(x−μi)(x−μi)T]w
其中用到了公式: ( a ⋅ b ) 2 = ( a T b ) 2 = ( a T b ) ( a T b ) T = a T b b T a (a\cdot b)^2=(a^Tb)^2=(a^Tb)(a^Tb)^T=a^Tbb^Ta (a⋅b)2=(aTb)2=(aTb)(aTb)T=aTbbTa 。
上式中间部分 ∑ x ∈ D i ( x − μ i ) ( x − μ i ) T \sum_{x\in D_i}(x-\mu_i)(x-\mu_i)^T ∑x∈Di(x−μi)(x−μi)T 是同类样本投影前的协方差矩阵。故可以发现若投影前的协方差矩阵为 ∑ \sum ∑ ,则投影后的协方差矩阵为 w T ∑ w w^T\sum w wT∑w 。
要使得同类样例的投影点尽可能接近,可以让同类样本点的协方差矩阵尽可能小,即 w T ∑ 0 w + w T ∑ 1 w w^T\sum_0w+w^T\sum_1w wT∑0w+wT∑1w 尽可能小;要使得异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大,即 ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^T\mu_0-w^T\mu_1||_2^2 ∣∣wTμ0−wTμ1∣∣22 尽可能大。于是得到最大化的优化目标:
J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T ( ∑ 0 + ∑ 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(\sum_0+\sum_1)w}=\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\sum_0+\sum_1)w} J=wT(∑0+∑1)w∣∣wTμ0−wTμ1∣∣22=wT(∑0+∑1)wwT(μ0−μ1)(μ0−μ1)Tw
其中 ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣⋅∣∣ 表示欧几里得范数, ∣ ∣ x − μ i ∣ ∣ 2 = ( x − μ i ) T ( x − μ i ) ||x-\mu_i||^2=(x-\mu_i)^T(x-\mu_i) ∣∣x−μi∣∣2=(x−μi)T(x−μi) 。
2. 协方差与样本分布的关系
要使得同类样例的投影点尽可能接近,可以让同类样本点的协方差矩阵尽可能小,即 w T ∑ 0 w + w T ∑ 1 w w^T\sum_0w+w^T\sum_1w wT∑0w+wT∑1w 尽可能小;要使得异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大,即 ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^T\mu_0-w^T\mu_1||_2^2 ∣∣wTμ0−wTμ1∣∣22 尽可能大。
为什么协方差矩阵可以反映出样本或样例点之间的距离关系?首先来看协方差和方差的公式:
c o v = 1 n ∑ ( X − X ˉ ) ( Y − Y ˉ ) cov=\frac{1}{n}\sum(X-\bar X)(Y-\bar Y) cov=n1∑(X−Xˉ)(Y−Yˉ)
c o v = 1 n ∑ ( X − X ˉ ) ( X − X ˉ ) cov=\frac{1}{n}\sum(X-\bar X)(X-\bar X) cov=n1∑(X−Xˉ)(X−Xˉ)
可以发现两者非常相似。已知方差可以用来度量数据的离散程度, ( X − X ˉ ) (X-\bar X) (X−Xˉ) 越大,表示数据距离离样本中心越远,数据就越离散,方差也就越大。同样的,对于协方差来说, ( X − X ˉ ) (X-\bar X) (X−Xˉ) 和 ( Y − Y ˉ ) (Y-\bar Y) (Y−Yˉ) 越大,表示数据距离样本中心越远,数据分布就越分散,协方差也就越大。因此上述观点成立。
3. 类间散度矩阵
类间散度矩阵就是协方差矩阵乘以样本数目,其作用基本与协方差矩阵一致。
对于两类样本来说:
S b = m ⋅ C = m ⋅ 1 m ⋅ ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=m\cdot C=m\cdot\frac{1}{m}\cdot(\mu_0-\mu_1)(\mu_0-\mu_1)^T=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=m⋅C=m⋅m1⋅(μ0−μ1)(μ0−μ1)T=(μ0−μ1)(μ0−μ1)T
其中 C C C 表示协方差矩阵, m m m 表示样本数目。
对于多类问题来说:
S b = ∑ i = 1 C ( μ i − μ ) ( μ i − μ ) T S_b=\sum_{i=1}^C(\mu_i-\mu)(\mu_i-\mu)^T Sb=i=1∑C(μi−μ)(μi−μ)T
其中 C C C 表示类别数目, μ \mu μ 表示所有样本的均值向量 μ = 1 C ∑ i = 1 C μ i \mu=\frac{1}{C}\sum_{i=1}^C\mu_i μ=C1∑i=1Cμi 。
如果只使用类间散度矩阵一个约束条件来对数据进行降维,即让类间的样本投影尽可能远离,参考 PCA 的降维过程:
S b μ = λ μ S_b\mu=\lambda\mu Sbμ=λμ
不同的是,为了保证类间的样本投影后尽可能远离,我们应该选择特征值最大的特征向量代表的方向做投影。这样才能保证不同类样本投影之后方差尽可能大,尽可能远离。
4. 类内散度矩阵
对于两类问题来说:
S w = ∑ 0 + ∑ 1 = ∑ x ∈ D 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ D 1 ( x − μ 1 ) ( x − μ 1 ) T S_w=\sum_0+\sum_1=\sum_{x\in D_0}(x-\mu_0)(x-\mu_0)^T+\sum_{x\in D_1}(x-\mu_1)(x-\mu_1)^T Sw=0∑+1∑=x∈D0∑(x−μ0)(x−μ0)T+x∈D1∑(x−μ1)(x−μ1)T
对于多类问题来说:
S w = ∑ i = 1 C ∑ j = 1 m i ( x i j − μ i ) ( x i j − μ i ) T S_w=\sum_{i=1}^C\sum_{j=1}^{m_i}(x_i^j-\mu_i)(x_i^j-\mu_i)^T Sw=i=1∑Cj=1∑mi(xij−μi)(xij−μi)T
其中 ∑ j = 1 M i ( x i j − μ i ) ( x i j − μ i ) T \sum_{j=1}^{M_i}(x_i^j-\mu_i)(x_i^j-\mu_i)^T ∑j=1Mi(xij−μi)(xij−μi)T 表示第 i i i 类样本的协方差矩阵。所以 S w S_w Sw 表示 C C C 类样本协方差矩阵之和。
如果只是用类内散度矩阵一个约束条件来对数据进行降维,即让类内的样本投影尽可能接近,参考 PCA 的将为过程:
S w μ = λ μ S_w\mu=\lambda\mu Swμ=λμ
不同的是,为了保证类内的样本投影后尽可能接近,我们应该选择特征值最小的特征向量代表的方向做投影。这样才能保证同类样本投影之后方差尽可能小,尽可能接近。
5. 优化
定义了类内散度矩阵和类间散度矩阵后,可以将优化目标转换为:
J = w T S b w w T S w w J=\frac{w^TS_bw}{w^TS_ww} J=wTSwwwTSbw
即 S b S_b Sb 与 S w S_w Sw 的广义瑞利商。
接下来确定 w w w ,注意上式的分子和分母都是关于 w w w 的二次项,因此上式的解与 w w w 的长度无关,只与其方向有关。令 w T S w w = 1 w^TS_ww=1 wTSww=1 ,则上式等价于:
min − w T S b w s t . w T S w w = 1 \min -w^TS_bw\\st.w^TS_ww=1 min−wTSbwst.wTSww=1
使用拉格朗日乘子法,上式等价于:
c ( w ) = − w T S b w + λ ( w T S w w − 1 ) c(w)=-w^TS_bw+\lambda(w^TS_ww-1) c(w)=−wTSbw+λ(wTSww−1)
d c d w = − 2 S b w + 2 λ S w w = 0 \frac{dc}{dw}=-2S_bw+2\lambda S_ww=0 dwdc=−2Sbw+2λSww=0
S b w = λ S w w S_bw=\lambda S_ww Sbw=λSww
S w − 1 S b w = λ w S_w^{-1}S_b^w=\lambda w Sw−1Sbw=λw
可以看到上式转化为一个求特征值和特征向量的问题。 w w w 是要求解的特征向量,这就验证了之前所说的式子 y = w T x y=w^Tx y=wTx 中的 w w w 就是特征向量构成的矩阵。
但是此时仍有一个问题,那就是 S w S_w Sw 通常是不可逆的,因此有以下方法解决:
- 令 S w = S w + γ I S_w=S_w+\gamma I Sw=Sw+γI ,其中 γ \gamma γ 是一个特别小的数,从而使得 S w S_w Sw 可逆;
- 先使用 PCA 降维,使得降维后的数据上 S w S_w Sw 可逆,然后再使用 LDA 。
五、多分类学习
二分类的方法可以推广至多分类任务,简单来说就是对多分类任务拆分为多个二分类任务。最经典的拆分策略有一对一(One vs. One, OvO),一对其余(One vs. Rest,OvR; One vs. All, OvA)和多对多(Many vs. Many, MvM)。
OvO 方式对 N N N 个元素的数据集会生成 N ( N − 1 ) 2 \frac{N(N-1)}{2} 2N(N−1) 个分类器,在测试阶段将新样本提交给所有的分类器即可得到最终分类的结果。
OvR 方式是每次将一个类别的样例作为正例,其余类别作为反例来训练 N N N 个分类器,测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果;若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
从上述两种方法可以发现,前者空间开销更大,后者时间开销更大。这是因为前者训练的分类器个数更多,后者每次训练时用到的样本个数更多。
MvM 方法是每次将若干类作为正类,若干类作为反类,因此该方法的构造需要有特殊的设计。一种常用的方法为:纠错输出码(Error Correcting Output Codes, ECOC),该方法是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性。ECOC 工作过程主要分为两步:
- 编码:对 N 个类别做 M 次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生 M 个训练集,可训练出 M 个分类器。
- 解码:M 个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
类别划分通过编码矩阵(coding matrix) 指定。编码矩阵有多种形式,常见的主要有二元码和三元码。前者将每个类别分别指定为正类和反类,后者在正、反类之外,还可指定停用类。在图(a)中,分类器
f
2
f_2
f2 将
C
1
C_1
C1 类和
C
3
C_3
C3 类的样例作为正例,将
C
2
C_2
C2 类和
C
4
C_4
C4 类的样例作为反例;在图(b)中,分类器
f
4
f_4
f4 将
C
1
C_1
C1 类和
C
4
C_4
C4 类的样例作为正例,
C
3
C_3
C3 类作为反例。在解码阶段,各分类器的预测结果联合起来形成了测试示例的编码,该编码与各类所对应的编码进行比较,将距离最小的编码所对应的类别作为预测结果。例如图(a)中,若基于欧氏距离,预测结果将是
C
3
C_3
C3 。
之所以叫纠错输出码,是因为在测试阶段,ECOC 编码器对分类器的错误有一定的容忍与修正能力。例如图(a)所示,测试样例的正确预测编码为(-1,+1,+1,-1,+1),假设在预测时
f
2
f_2
f2 分类器出错导致编码为(-1,-1,+1,-1,+1),但是基于该分类仍能正确得出分类结果
C
3
C_3
C3 。一般来说,对同一个学习任务,ECOC 编码越长,纠错能力越强,但同时也意味着所需训练的分类器越多,各方开销会增大。另一方面,对有限类别数,可能的组合数目是有限的,这就限定了码长的范围。
六、类别不平衡问题
类别不平衡(class-imbalance) 就是指分类任务中不同类别的训练样例数目差别很大的情况。本节假设正类样例较少,反类样例较多。
从线性分类器的角度讨论,使用 y = w T x + b y=w^Tx+b y=wTx+b 对新样本进行分类时,事实上是再用预测出的 y y y 值与一个阈值(通常为 0.5)比较。 y y y 实际上表达了正例的可能性,几率 y 1 − y \frac{y}{1-y} 1−yy 则反映了正例可能性与反例可能性之比值,阈值设置为 0.5 表明分类器认为而这可能性相同,即分类器决策规则为:
若 y 1 − y > 1 , 则 预 测 为 正 例 (3.49) 若\frac{y}{1-y}>1,则预测为正例\tag{3.49} 若1−yy>1,则预测为正例(3.49)
然而当二者树木不同时,令 m + , m − m^+,m^- m+,m− 分别表示正例数目和反例数目,则观测几率是 m + m − \frac{m^+}{m^-} m−m+ ,由于通常假设训练集是真实样本总体的无偏采样(表示采样的数据很好的代表了真是样本的情况),因此观测几率代表了真实几率。于是,只要分类器的预测几率高于观测几率就应该判定为正例,即:
若 y 1 − y > m + m − , 则 预 测 为 正 例 (3.50) 若\frac{y}{1-y}>\frac{m^+}{m^-},则预测为正例\tag{3.50} 若1−yy>m−m+,则预测为正例(3.50)
为将式 3.49 转换为式 3.50 ,则令:
y ′ 1 − y ′ = y 1 − y × m − m + \frac{y'}{1-y'}=\frac{y}{1-y}\times\frac{m^-}{m^+} 1−y′y′=1−yy×m+m−
这就是类别不平衡学习的一个基本策略——再缩放(rescaling),再平衡(rebalance)。该方法也是代价敏感学习(cost-sensitive learning) 的基础。这个方法的重要前提是:训练集是真是样本总体的无偏采样,但是这个假设往往不成立。因此有另外三种方法:
- 直接对训练集里的反类样例进行欠采样(undersampling),即去除一些反例使得正、反例数目接近;
- 对训练集里的正类样例进行过采样(oversampling),即增加一些正例使得正、反例数目接近;
- 阈值移动(threshold-moving),直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将上式嵌入到决策过程中。
需要注意的是,过采样法不能简单地对初始样例样本进行重复采样,否则会导致过拟合。一种代表性的算法为SMOTE,通过对训练集里的正例进行插值来生成额外的正例。欠采样法若随机丢弃反例,则可能丢失部分重要信息。一种代表性的算法为EasyEnsemble,利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样对每个学习起来看完成了欠采样,但在全局来看并未丢失信息。