线性模型
基本形式
给定由
d
d
d个属性描述的示例
x
=
(
x
1
;
x
2
;
.
.
.
;
x
d
)
\pmb{x}=(x_1;x_2;...;x_d)
xxx=(x1;x2;...;xd),其中
x
i
x_i
xi是
x
\pmb{x}
xxx在第
i
i
i个属性上的取值,线性模型试图学的一个通过属性的线性组合来进行预测的函数,即
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
d
x
d
+
b
f(\pmb{x})=w_1x_1+w_2x_2+...+w_dx_d+b
f(xxx)=w1x1+w2x2+...+wdxd+b
一般用向量形式写成
f
(
x
)
=
w
T
x
+
b
f(\pmb{x})=\pmb{w}^T\pmb{x}+b
f(xxx)=wwwTxxx+b
线性模型形式简单、易于建模, w \pmb{w} www直观表达了各属性的重要性,因此线性模型有很好的可解释性。
线性回归
对于给定数据集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
D=\{(\pmb{x}_1,y_1), (\pmb{x}_2,y_2), ... ,(\pmb{x}_m,y_m)\}
D={(xxx1,y1),(xxx2,y2),...,(xxxm,ym)},线性回归试图学得
f
(
x
i
)
=
w
T
x
i
+
b
,
使
得
f
(
x
i
)
≃
y
i
f(\pmb{x}_i)=\pmb{w}^T\pmb{x}_i+b,使得f(\pmb{x}_i)\simeq y_i
f(xxxi)=wwwTxxxi+b,使得f(xxxi)≃yi
均方误差是回归任务中最常用的性能度量,因此我们可以试图让均方误差最小化,即
(
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
T
x
i
−
b
)
2
\begin{aligned} (\pmb{w}^*,b^*) &= \mathop{\arg\min}\limits_{(w,b)} \ \ \sum_{i=1}^{m}(f(\pmb{x}_i)-y_i)^2 \\ &= \mathop{\arg\min}\limits_{(w,b)} \ \ \sum_{i=1}^{m}(y_i-\pmb{w}^T\pmb{x}_i-b)^2 \end{aligned}
(www∗,b∗)=(w,b)argmin i=1∑m(f(xxxi)−yi)2=(w,b)argmin i=1∑m(yi−wwwTxxxi−b)2
基于均方误差来求解模型的方法称为最小二乘法,就是试图找到一条直线(
x
x
x是1维),使所有样本到所有直线上的欧式距离之和最小。
为便于讨论,我们把
w
w
w和
b
b
b吸收入向量形式
w
^
=
(
w
;
b
)
\pmb{\hat{w}}=(\pmb{w}; b)
w^w^w^=(www;b),相应的,把数据集D表示成一个
m
×
(
d
+
1
)
m\times(d+1)
m×(d+1)大小的矩阵
X
\mathbf{X}
X,最后一列元素恒置为1,即
X
=
(
x
1
1
x
1
2
⋯
x
1
d
1
x
2
1
x
2
2
⋯
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}=\begin{pmatrix} 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{pmatrix} =\begin{pmatrix} \pmb{x}_{1}^{T} & 1\\ \pmb{x}_{2}^{T} & 1\\ \vdots & \vdots\\ \pmb{x}_{m}^{T} & 1 \end{pmatrix}
X=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛xxx1Txxx2T⋮xxxmT11⋮1⎠⎟⎟⎟⎞
再把
y
\pmb{y}
yyy也同样改写成向量形式,我们可以得到优化目标:
w
^
∗
=
arg
min
w
^
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
\hat{w}^*=\mathop{\arg\min}\limits_{\hat{w}}\ \ (\pmb{y}-\mathbf{X}\pmb{\hat{w}})^T(\pmb{y}-\mathbf{X}\pmb{\hat{w}})
w^∗=w^argmin (yyy−Xw^w^w^)T(yyy−Xw^w^w^)
令
E
w
^
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
E_{\hat{w}}=(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})
Ew^=(y−Xw^)T(y−Xw^),对
w
^
\hat w
w^求导得到
∂
E
w
^
∂
w
^
=
2
X
T
(
X
w
^
−
y
)
\frac{\partial E_{\hat{w}}}{\partial \hat{w}}=2 \mathbf{X}^{\mathrm{T}}(\mathbf{X} \hat{w}-\boldsymbol{y})
∂w^∂Ew^=2XT(Xw^−y)
推导过程:
两个矩阵求导重要公式:
∂ ( A T W T B ) ∂ W = B A T ∂ ( A T W B ) ∂ W = A B T \frac{\partial\left(A^{T} W^{T} B\right)}{\partial W}=B A^{T}\ \ \ \ \ \ \ \ \ \ \ \ \frac{\partial\left(A^{T} W B\right)}{\partial{W}}=A B^{T} ∂W∂(ATWTB)=BAT ∂W∂(ATWB)=ABT
具体推导过程如下:
∂ ( y T X W ) ∂ W = ( y T X ) T = X T y \frac{\partial\left(y^{T} X W\right)}{\partial W}=\left(y^{T} X\right)^{T}=X^{T} y ∂W∂(yTXW)=(yTX)T=XTy
∂ ( W T X T y ) ∂ W = X T y \frac{\partial\left(W^{T} X^{T} y\right)}{\partial W}=X^{T} y ∂W∂(WTXTy)=XTy
∂ ( W T X T X W ) ∂ W = X T X W + ( W T X T X ) T = 2 X T X W \frac{\partial\left(W^{T} X^{T} X W\right)}{\partial W}=X^{T} X W+\left(W^{T} X^{T} X\right)^{T}=2 X^{T} X W ∂W∂(WTXTXW)=XTXW+(WTXTX)T=2XTXW
∂ ( y T y − y T X W − W T X T y + W T X T X W ) ∂ W = 2 X T X W − 2 X T Y \frac{\partial\left(y^{T} y-y^{T} X W-W^{T} X^{T} y+W^{T} X^{T} X W\right)}{\partial W}=2 X^{T} X W-2 X^{T} Y ∂W∂(yTy−yTXW−WTXTy+WTXTXW)=2XTXW−2XTY
令上式为零可得
w
^
\hat w
w^最优解的闭式解
w
^
∗
=
(
X
T
X
)
−
1
X
T
y
\hat{\boldsymbol{w}}^{*}=\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y}
w^∗=(XTX)−1XTy
线性回归模型为
f
(
x
^
i
T
)
=
x
^
i
T
(
X
T
X
)
−
1
X
T
y
f(\hat x_i^ T)=\pmb{\hat x}_i^T\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y}
f(x^iT)=x^x^x^iT(XTX)−1XTy
然而在现实任务中
X
T
X
\mathbf{X}^{\mathrm{T}} \mathbf{X}
XTX往往不是满秩矩阵。例如在许多任务中我们遇到大量的变量,或者样本数量少,导致
X
\mathbf{X}
X的列数多于行数。此时可解出多个
w
^
\hat w
w^,选择哪个解作为输出由学习算法的归纳偏好决定,常见的方法是引入正则化项。
更一般的考虑可微函数
g
(
⋅
)
g(·)
g(⋅),令
y
=
g
−
1
(
w
T
x
+
b
)
y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)
y=g−1(wTx+b)
这样得到的模型称为“广义线性模型”。
对数几率回归(逻辑回归)
考虑二分类任务,其输出标记
y
∈
{
0
,
1
}
y\in \{0,1\}
y∈{0,1},而线性回归模型产生的预测值
z
=
w
T
x
+
b
z=\pmb{w}^T\pmb{x}+b
z=wwwTxxx+b是实值。根据广义线性模型:只需要一个单调可微函数将分类任务的真实标记
y
y
y与线性回归模型的预测值联系起来。于是,我们将实值
z
z
z转换为0/1值,最理想的是“单位阶跃函数”
y
=
{
0
,
z
<
0
0.5
,
z
=
0
1
,
z
>
0
y=\left\{\begin{array}{cc} 0, & z<0 \\ 0.5, & z=0 \\ 1, & z>0 \end{array}\right.
y=⎩⎨⎧0,0.5,1,z<0z=0z>0
即预测值
z
z
z若大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别,如图所示:
从图中可以看出,单位阶跃函数并不连续,我们希望找到一个单调可微的函数,对数几率函数正式这样一个常用的替代函数:
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
对数几率函数是一种“Sigmoid函数”,它将
z
z
z值转化为一个接近0或1的
y
y
y值,并且其输出值在
z
=
0
z=0
z=0附近变化很陡,带入线性回归模型可以得到
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)}}
y=1+e−(wTx+b)1
一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是 p p p,那么该事件的几率是 p 1 − p \frac {p} {1-p} 1−pp,该事件的对数几率(log odds)或logit函数是 l o g i t ( p ) = l o g p 1 − p logit(p) = log \frac {p} {1-p} logit(p)=log1−pp
可以变化为
ln
y
1
−
y
=
w
T
x
+
b
\ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b
ln1−yy=wTx+b
若将
y
y
y视为样本
x
\pmb x
xxx作为正例的可能性,则
1
−
y
1-y
1−y是其反例可能性,两者的比值
y
1
−
y
\frac{y}{1-y}
1−yy称为“几率”,反映了x作为正例的相对可能性。
逻辑回归具有很多优点:直接对分类可能性建模,无需实现假设数据分布,这样就避免了假设分布不准确所带来的问题;不仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;求解的目标函数是任意阶可导的凸函数,易于求取最优解。
将
y
y
y视为类后验概率估计
p
(
y
=
1
∣
x
)
p(y=1|\pmb x)
p(y=1∣xxx),则可重写为:
ln
p
(
y
=
1
∣
x
)
p
(
y
=
0
∣
x
)
=
w
T
x
+
b
\ln \frac{p(y=1 \mid \boldsymbol{x})}{p(y=0 \mid \boldsymbol{x})}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+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
\begin{array}{l} p(y=1 \mid \boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \\ p(y=0 \mid \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \end{array}
p(y=1∣x)=1+ewTx+bewTx+bp(y=0∣x)=1+ewTx+b1
于是,我们可以通过“极大似然法”来估计
w
\pmb w
www和
b
b
b。给定数据集
{
(
x
i
,
y
i
)
}
i
=
1
m
\left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m}
{(xi,yi)}i=1m,得到最大化对数似然函数:
ℓ
(
w
,
b
)
=
∑
i
=
1
m
ln
p
(
y
i
∣
x
i
;
w
,
b
)
\ell(\boldsymbol{w}, b)=\sum_{i=1}^{m} \ln p\left(y_{i} \mid \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right)
ℓ(w,b)=i=1∑mlnp(yi∣xi;w,b)
即令每个样本书育其真实标记的概率越大越好,为便于讨论,令
β
=
(
x
;
b
)
\boldsymbol{\beta}=(\pmb x;b)
β=(xxx;b),
x
^
=
(
x
;
1
)
\hat{\pmb x}=(\pmb x;1)
xxx^=(xxx;1),则
w
T
x
+
b
\pmb w^T\pmb x+b
wwwTxxx+b可简写为
β
T
x
^
\boldsymbol{\beta}^T\hat{\pmb x}
βTxxx^。再令
p
1
(
x
^
;
β
)
=
p
(
y
=
1
∣
x
^
;
β
)
p_{1}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})=p(y=1 \mid \hat{\boldsymbol{x}} ; \boldsymbol{\beta})
p1(x^;β)=p(y=1∣x^;β),
p
0
(
x
^
;
β
)
=
p
(
y
=
0
∣
x
^
;
β
)
=
1
−
p
1
(
x
^
;
β
)
p_{0}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})=p(y=0 \mid \hat{\boldsymbol{x}} ; \boldsymbol{\beta})=1-p_{1}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})
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
;
β
)
p\left(y_{i} \mid \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right)=y_{i} p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)+\left(1-y_{i}\right) p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)
p(yi∣xi;w,b)=yip1(x^i;β)+(1−yi)p0(x^i;β)
最大化似然公式等价于最小化
ℓ
(
β
)
=
∑
i
=
1
m
(
−
y
i
β
T
x
^
i
+
ln
(
1
+
e
β
T
x
^
i
)
)
\ell(\boldsymbol{\beta})=\sum_{i=1}^{m}\left(-y_{i} \boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}+\ln \left(1+e^{\boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}}\right)\right)
ℓ(β)=i=1∑m(−yiβTx^i+ln(1+eβTx^i))
上式是关于
β
\boldsymbol{\beta}
β的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法、牛顿法等都可以求得其最优解,于是就得到
β
∗
=
arg
min
β
ℓ
(
β
)
\boldsymbol{\beta}^{*}=\underset{\boldsymbol{\beta}}{\arg \min } \ell(\boldsymbol{\beta})
β∗=βargminℓ(β)
线性判别分析
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。如图所示。
给定数据集
D
=
{
(
x
i
,
y
i
)
}
i
=
1
m
,
y
i
∈
{
0
,
1
}
D=\left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m}, y_{i} \in\{0,1\}
D={(xi,yi)}i=1m,yi∈{0,1},令
X
i
,
μ
i
,
Σ
i
X_{i}, \boldsymbol{\mu}_{i}, \mathbf{\Sigma}_{i}
Xi,μi,Σi分别表示第
i
∈
{
0
,
1
}
i \in\{0,1\}
i∈{0,1}类示例的集合、均值向量、协方差矩阵。若将数据投影到直线
w
\pmb w
www上,则两类样本的中心在直线上的投影分别为
w
T
μ
0
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}
wTμ0和
w
T
μ
1
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}
wTμ1;若将所有样本点都投影到直线上,则两类样本的协方差分别为
w
T
Σ
0
w
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}
wTΣ0w和
w
T
Σ
1
w
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}
wTΣ1w。由于直线是一维空间,因此
w
T
μ
0
、
w
T
μ
1
,
w
T
Σ
0
w
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0} 、 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}, \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}
wTμ0、wTμ1,wTΣ0w和
w
T
Σ
1
w
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}
wTΣ1w均为实数。
上述公式均可通过点积方式推导出。其中协方差就是同一类中两个样本在直线投影结果的乘积。
想要使同类样例的投影点尽可能接近,可以让协方差尽可能小,即 w T Σ 0 w + w T Σ 1 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w} wTΣ0w+wTΣ1w尽可能小;而欲使异类样例的投影点尽可能远离,可以让类中心距离尽可能大,即 ∥ w T μ 0 − w T μ 1 ∥ 2 2 \left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2} ∥∥wTμ0−wTμ1∥∥22尽可能大,同时考虑二者,则可得到欲最大化的目标。
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
\begin{aligned} J &=\frac{\left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2}}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}} \\ &=\frac{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\right) \boldsymbol{w}} \end{aligned}
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
\begin{aligned} \mathbf{S}_{w} &=\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1} \\ &=\sum_{\boldsymbol{x} \in X_{0}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x} \in X_{1}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \end{aligned}
Sw=Σ0+Σ1=x∈X0∑(x−μ0)(x−μ0)T+x∈X1∑(x−μ1)(x−μ1)T
以及“类间散度矩阵”
S
b
=
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
\mathbf{S}_{b}=\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}}
Sb=(μ0−μ1)(μ0−μ1)T
则优化目标可重写为
J
=
w
T
S
b
w
w
T
S
w
w
J=\frac{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}}
J=wTSwwwTSbw
这就是LDA欲最大化的目标,即
S
b
\mathbf{S}_{b}
Sb和
S
w
\mathbf{S}_{w}
Sw的“广义瑞利商”。
不失一般性,令
w
T
S
w
w
=
1
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1
wTSww=1,则优化目标变为:
min
w
−
w
T
S
b
w
s.t.
w
T
S
w
w
=
1
\begin{aligned} \min _{\boldsymbol{w}} &-\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w} \\ \text { s.t. } & \boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1 \end{aligned}
wmin s.t. −wTSbwwTSww=1
由拉格朗日乘子法,上式等价于
S
b
w
=
λ
S
w
w
\mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w}
Sbw=λSww
注意到
S
b
w
\mathbf{S}_{b} \boldsymbol{w}
Sbw的方向恒为
μ
0
−
μ
1
\mu_{0}-\mu_{1}
μ0−μ1,不妨令
S
b
w
=
λ
(
μ
0
−
μ
1
)
\mathbf{S}_{b} \boldsymbol{w}=\lambda\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)
Sbw=λ(μ0−μ1)
本人理解:因为我们最后求得的 w \pmb w www,代表一个方向,所以乘以常数对结果没有影响。
可得
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)
最后将LDA推广到多分类任务中,假定存在
N
N
N个类,且第
i
i
i类示例数位
m
i
m_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
其中
μ
\boldsymbol{\mu}
μ是所有示例的均值向量。将类内散度矩阵
S
w
\pmb S_w
SSSw重定义为每个类别的散度矩阵之和,即
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_{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可以有多种实现方法:使用
S
b
,
S
w
,
S
t
\mathbf{S}_{b}, \mathbf{S}_{w}, \mathbf{S}_{t}
Sb,Sw,St三者中的任何两个即可,常见的一种实现是采用优化目标
max
W
tr
(
W
T
S
b
W
)
tr
(
W
T
S
w
W
)
\max _{\mathbf{W}} \frac{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{b} \mathbf{W}\right)}{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{w} \mathbf{W}\right)}
Wmaxtr(WTSwW)tr(WTSbW)
若将
W
\mathbf W
W视为一个投影矩阵,则多分类LDA将样本投影到
d
d
d维空间,
W
∈
R
d
×
n
\mathbf{W} \in \mathbb{R}^{d \times n}
W∈Rd×n。于是可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此LDA也常被视为一种经典的监督降维技术。
多分类学习
考虑
N
N
N个类别,
C
1
,
C
2
,
…
,
C
N
C_{1}, C_{2}, \ldots, C_{N}
C1,C2,…,CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆分为若干个二分类任务求解。关键是如何对多分类任务进行拆分,以及如何对多个分类器进行集成。
最经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM)。
给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y i ∈ { C 1 , C 2 , … , C N } D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\}, y_{i} \in\left\{C_{1}, C_{2}, \ldots, C_{N}\right\} D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{C1,C2,…,CN}。OvO将这 N N N个类别两两配对,从而产生 N ( N − 1 ) / 2 N(N-1)/2 N(N−1)/2个二分类任务。对于新样本将同时交给所有分类器,于是我们得到 N ( N − 1 ) / 2 N(N-1)/2 N(N−1)/2个分类结果,最终结果可通过投票产生:即把被预测得最多的类别作为最终分类结果。
OvR将每一个类的样例作为正例、所有其他类的样例作为反例来训练 N N N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
OvR只需要 N N N个分类器,而OvO需训练 N ( N − 1 ) / 2 N(N-1)/2 N(N−1)/2个分类器,但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例。
MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。一种常用的MvM技术:“纠错输出码”(ECOC)。主要过程分为两步:
- 编码:对 N N N个类别做 M M M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集。这样可以训练出 M M M个分类器。
- 解码: M M M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
编码越长,纠错能力越强,意味着所需训练的分类器越多。同等长度的编码,任意两个类别之间的编码距离越远,则纠错能力越强。
类别不平衡问题
现有技术大体上有三种做法:
- 欠采样,去除多余的样例,使正反样例数目接近。
- 过采样,增加缺失的样例,使正反样例数目接近。
- 再缩放,根据正反样例数目,调整阈值。
参考知乎