第三章:线性模型
1. 线性模型的基本形式
对于一个有
d
d
d 个特征(通常表示为一个
d
d
d 维向量
x
∈
R
d
x\in\mathbb{R}^d
x∈Rd )的样本,如果像综合考虑其各个特征,来预测该样本的某一种性质(一般是连续的数值形式的性质,比如二手房的价格),最基本的选择就是线性模型(Linear Model),此时我们希望通过数据拟合出一个样本某性质与样本各个特征之间的线性映射
f
(
x
)
f(x)
f(x),其数学表达如下:
f
(
x
)
=
w
1
x
1
+
w
2
x
2
.
.
.
+
w
d
,
x
d
+
b
f(\boldsymbol{x})=w_1 x_1 + w_2 x_2 ... +w_d, x_d +b
f(x)=w1x1+w2x2...+wd,xd+b
上式还可以进一步写作向量形式:
f
(
x
)
=
w
T
x
+
b
f(\boldsymbol{x}) = \boldsymbol{w}^T\boldsymbol{x} + b
f(x)=wTx+b
2. 线性回归
当给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x m , y m ) } D=\{(\boldsymbol{x}^1,y^1),(\boldsymbol{x}^2,y^2),(\boldsymbol{x}^3,y^3),...,(\boldsymbol{x}^m,y^m)\} D={(x1,y1),(x2,y2),(x3,y3),...,(xm,ym)}(其中上标表示样本的序号, x i ∈ R d \boldsymbol{x}^i\in \mathbb{R}^d xi∈Rd, y i ∈ R y^i\in\mathbb{R} yi∈R),且我们的目的是找到一个线性映射 f ( x ) f(\boldsymbol{x}) f(x) 使得对 ∀ x i ∈ D \forall \boldsymbol{x}^i\in D ∀xi∈D,都有 f ( x i ) ≈ y i f(\boldsymbol{x}^i)\approx y^i f(xi)≈yi。我们有如下逻辑:
- 由 (2) 式可知,函数 f ( ⋅ ) f(\cdot) f(⋅) 是由两个参数 w \boldsymbol{w} w 和 b b b 决定的。因此,我们要做的其实是寻找合适的 w , b \boldsymbol{w}, b w,b, 使得对 ∀ x i ∈ D \forall \boldsymbol{x}^i\in D ∀xi∈D,都有 f ( x i ; w , b ) ≈ y i f(\boldsymbol{x}^i;\boldsymbol{w},b)\approx y^i f(xi;w,b)≈yi。
- 那么我们势必需要一个指标来衡量不同的 w , b \boldsymbol{w}, b w,b 之间谁更合适,传统的回归任务会选择均方误差来衡量不同参数代表的映射 f ( ⋅ ) f(\cdot) f(⋅) 的不同性能。
- 所以问题转变为找到合适的 w , b \boldsymbol{w}, b w,b,使函数对每个样本的预测值与实际值之间的均方误差最小,如下式:
( w ∗ , b ∗ ) = arg min ( w , b ) ∑ i = 1 T ( f ( x i ; w , b ) − y i ) 2 = arg min ( w , b ) ∑ i = 1 T ( w T x i + b − y i ) 2 \begin{aligned} (\boldsymbol{w}^*,b^*)=&\mathop{\arg\min}\limits_{(\boldsymbol{w},b)}\sum^T_{i=1}(f(\boldsymbol{x}^i;\boldsymbol{w},b)-y^i)^2\\ =&\mathop{\arg\min}\limits_{(\boldsymbol{w},b)}\sum^T_{i=1}(\boldsymbol{w}^T\boldsymbol{x}^i + b-y^i)^2 \end{aligned} (w∗,b∗)==(w,b)argmini=1∑T(f(xi;w,b)−yi)2(w,b)argmini=1∑T(wTxi+b−yi)2
2.1 一元线性回归
(3)式的优化目标其实是一个严格凸函数,这意味着其有且只有一个最优解 ( w ∗ , b ∗ ) (\boldsymbol{w}^*,b^*) (w∗,b∗)。为了方便理解,首先考虑单变元的线性回归,此时令 E ( w , b ) = ∑ i = 1 T ( w x i + b − y i ) 2 E(w,b)=\sum^T_{i=1}(wx^i + b-y^i)^2 E(w,b)=∑i=1T(wxi+b−yi)2, 要求得最优解,只需对 E ( w , b ) E(\boldsymbol{w},b) E(w,b) 求偏导数对应零点即可, E ( w , b ) E(w,b) E(w,b)的两个偏导数如下:
∂ E ∂ w = ∂ ∂ w ∑ i = 1 T [ ( w x i + b ) 2 − 2 y i ( w x i + b ) + y i 2 ] = ∑ i = 1 T 2 x i ( w x i + b ) − 2 x i y i = 2 ( w ∑ i = 1 T x i 2 − ∑ i = 1 T ( y i − b ) x i ) \begin{aligned} \frac{\partial E}{\partial w} =&\frac{\partial}{\partial w}\sum^T_{i=1}[(wx^i + b)^2-2y^i(wx^i+b) +{y^i}^2]\\ =&\sum^T_{i=1}2x^i(wx^i + b)-2x^i y^i\\ =&2\Big(w\sum^T_{i=1}{x^i}^2 - \sum^T_{i=1}(y^i-b)x^i\Big) \end{aligned} ∂w∂E===∂w∂i=1∑T[(wxi+b)2−2yi(wxi+b)+yi2]i=1∑T2xi(wxi+b)−2xiyi2(wi=1∑Txi2−i=1∑T(yi−b)xi)
∂ E ∂ b = ∂ ∂ b ∑ i = 1 T [ ( w x i + b ) 2 − 2 y i ( w x i + b ) + y i 2 ] = ∑ i = 1 T 2 ( w x i + b ) − 2 y i = 2 m b − 2 ∑ i = 1 T ( y i − w x i ) \begin{aligned}\frac{\partial E}{\partial b} =&\frac{\partial}{\partial b}\sum^T_{i=1}[(wx^i + b)^2-2y^i(wx^i+b) +{y^i}^2]\\=&\sum^T_{i=1}2(wx^i+b)-2y^i\\=&2mb-2\sum^T_{i=1}(y^i-wx^i)\end{aligned} ∂b∂E===∂b∂i=1∑T[(wxi+b)2−2yi(wxi+b)+yi2]i=1∑T2(wxi+b)−2yi2mb−2i=1∑T(yi−wxi)
令两个偏导数为零,可以解方程得到两个参数最优解的闭式(closed-form)解 ( w ∗ , b ∗ ) (w^*,b^*) (w∗,b∗):
- 令 (5) 式为零可以得到:
b = 1 m ∑ i = 1 T ( y i − w x i ) = y ˉ − w x ˉ \begin{aligned} b = &\frac{1}{m}\sum^T_{i=1}(y^i-wx^i)\\ = &\bar{y}-w\bar{x} \end{aligned} b==m1i=1∑T(yi−wxi)yˉ−wxˉ
再令 (4) 式为零并带入 (6) 式有:
2
(
w
∑
i
=
1
T
x
i
2
−
∑
i
=
1
T
(
y
i
−
b
)
x
i
)
=
0
∑
i
=
1
T
(
y
i
−
(
y
ˉ
−
w
x
ˉ
)
)
x
i
=
w
∑
i
=
1
T
x
i
2
∑
i
=
1
T
y
i
x
i
−
y
ˉ
∑
i
=
1
T
x
i
+
w
x
ˉ
∑
i
=
1
T
x
i
=
w
∑
i
=
1
T
x
i
2
∑
i
=
1
T
y
i
x
i
−
y
ˉ
∑
i
=
1
T
x
i
=
w
(
∑
i
=
1
T
x
i
2
−
x
ˉ
∑
i
=
1
T
x
i
)
w
=
∑
i
=
1
T
y
i
x
i
−
m
y
ˉ
x
ˉ
∑
i
=
1
T
x
i
2
−
m
x
ˉ
2
\begin{aligned} 2\Big(w\sum^T_{i=1}{x^i}^2 - \sum^T_{i=1}(y^i-b)x^i\Big)=&0\\ \sum^T_{i=1}\big(y^i-(\bar{y}-w\bar{x})\big)x^i=&w\sum^T_{i=1}{x^i}^2\\ \sum^T_{i=1}y^ix^i-\bar{y}\sum^T_{i=1}x^i+w\bar{x}\sum^T_{i=1}x^i=&w\sum^T_{i=1}{x^i}^2\\ \sum^T_{i=1}y^ix^i-\bar{y}\sum^T_{i=1}x^i=&w\Big(\sum^T_{i=1}{x^i}^2-\bar{x}\sum^T_{i=1}x^i\Big)\\ w=&\frac{\sum^T_{i=1}y^ix^i-m\bar{y}\bar{x}}{\sum^T_{i=1}{x^i}^2-m\bar{x}^2} \end{aligned}
2(wi=1∑Txi2−i=1∑T(yi−b)xi)=i=1∑T(yi−(yˉ−wxˉ))xi=i=1∑Tyixi−yˉi=1∑Txi+wxˉi=1∑Txi=i=1∑Tyixi−yˉi=1∑Txi=w=0wi=1∑Txi2wi=1∑Txi2w(i=1∑Txi2−xˉi=1∑Txi)∑i=1Txi2−mxˉ2∑i=1Tyixi−myˉxˉ
2.2 多元线性回归
在一元线性回归的基础上,我们可以自然地将上述结论推广到多元线性回归中。此时需要学习的映射为:
f
(
x
;
w
,
b
)
=
w
T
x
+
b
f(\boldsymbol{x};\boldsymbol{w}, b)=\boldsymbol{w}^T\boldsymbol{x}+b
f(x;w,b)=wTx+b。 为了便于讨论,可以将两个需要学习的参数拼接到一起视作一个参数
w
^
=
(
w
;
b
)
\hat{\boldsymbol{w}}=(\boldsymbol{w};b)
w^=(w;b),相应的,也需要对每个样本的特征向量在拼接一个常数
1
1
1,这样的话映射
f
(
x
;
w
^
)
f(\boldsymbol{x};\hat{\boldsymbol{w}})
f(x;w^)形式上可以直接写成向量的乘法。此时所有样本的特征向量组成的特征矩阵为:
X
=
(
x
1
1
x
2
1
⋯
x
d
1
1
x
1
2
x
2
2
⋯
x
d
2
1
⋮
⋮
⋱
⋮
⋮
x
1
m
x
2
m
⋯
x
d
m
1
)
=
(
x
1
1
x
2
1
⋮
⋮
x
m
1
)
X=\begin{pmatrix} x^1_1& x^1_2&\cdots&x^1_d&1\\ x^2_1& x^2_2&\cdots&x^2_d&1\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ x^m_1& x^m_2&\cdots&x^m_d&1\\ \end{pmatrix}= \begin{pmatrix} \boldsymbol{x}^1&1\\ \boldsymbol{x}^2&1\\ \vdots&\vdots\\ \boldsymbol{x}^m&1\\ \end{pmatrix}
X=⎝⎜⎜⎜⎛x11x12⋮x1mx21x22⋮x2m⋯⋯⋱⋯xd1xd2⋮xdm11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1x2⋮xm11⋮1⎠⎟⎟⎟⎞
相应的,所有样本的标签(样本需要预测的值)可以写成一个
m
m
m 维向量:
y
T
=
(
y
1
,
y
2
,
⋯
y
m
)
\boldsymbol{y}^T = (y^1, y^2, \cdots y^m)
yT=(y1,y2,⋯ym),将作用于整个数据集上的映射写成矩阵乘法的形式则有:
f
(
X
;
w
^
)
=
X
w
^
T
f(X;\hat{\boldsymbol{w}})=X\hat{\boldsymbol{w}}^T
f(X;w^)=Xw^T. 与 (3) 式相似,我们的优化目标如下:
w
^
∗
=
arg
min
w
^
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
\hat{\boldsymbol{w}}^* = \mathop{\arg\min}\limits_{\hat{\boldsymbol{w}}}\big(\boldsymbol{y}-X\hat{\boldsymbol{w}}\big)^T\big(\boldsymbol{y}-X\hat{\boldsymbol{w}}\big)
w^∗=w^argmin(y−Xw^)T(y−Xw^)
令
E
(
w
^
)
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
E(\hat{\boldsymbol{w}})=\big(\boldsymbol{y}-X\hat{\boldsymbol{w}}\big)^T\big(\boldsymbol{y}-X\hat{\boldsymbol{w}}\big)
E(w^)=(y−Xw^)T(y−Xw^),对
w
^
\hat{\boldsymbol{w}}
w^求导得到:
∂
E
∂
w
^
=
∂
∂
w
^
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
=
∂
∂
w
^
(
y
T
y
−
w
^
T
X
T
y
−
y
T
X
w
^
+
w
^
T
X
T
X
w
^
)
=
0
−
X
T
y
−
X
T
y
+
(
X
T
X
+
X
T
X
)
w
^
=
2
X
T
(
X
w
^
−
y
)
\begin{aligned} \frac{\partial E}{\partial\hat{\boldsymbol{w}}} = &\frac{\partial}{\partial\hat{\boldsymbol{w}}}\big(\boldsymbol{y}-X\hat{\boldsymbol{w}}\big)^T\big(\boldsymbol{y}-X\hat{\boldsymbol{w}}\big)\\ =&\frac{\partial}{\partial\hat{\boldsymbol{w}}}\left(\boldsymbol{y}^T\boldsymbol{y}-\hat{\boldsymbol{w}}^TX^T\boldsymbol{y}-\boldsymbol{y}^TX\hat{\boldsymbol{w}}+\hat{\boldsymbol{w}}^TX^TX\hat{\boldsymbol{w}}\right)\\ =&0-X^T\boldsymbol{y}-X^T\boldsymbol{y}+\left(X^TX+X^TX\right)\hat{\boldsymbol{w}}\\ =&2X^T\left(X\hat{\boldsymbol{w}}-\boldsymbol{y}\right) \end{aligned}
∂w^∂E====∂w^∂(y−Xw^)T(y−Xw^)∂w^∂(yTy−w^TXTy−yTXw^+w^TXTXw^)0−XTy−XTy+(XTX+XTX)w^2XT(Xw^−y)
在 (10) 式中的多元函数求导需要用到如下结论:
∂
α
T
x
∂
x
=
∂
x
T
α
∂
x
=
α
∂
x
T
A
x
∂
x
=
(
A
+
A
T
)
x
\begin{aligned} \frac{\partial \boldsymbol{\alpha}^T\boldsymbol{x}}{\partial \boldsymbol{x}} = \frac{\partial \boldsymbol{x}^T\boldsymbol{\alpha}}{\partial\boldsymbol{x}} = \boldsymbol{\alpha}\\ \frac{\partial \boldsymbol{x}^TA\boldsymbol{x}}{\partial \boldsymbol{x}} = \left(A + A^T\right)\boldsymbol{x} \end{aligned}
∂x∂αTx=∂x∂xTα=α∂x∂xTAx=(A+AT)x
令 (10) 式为零可以得到:
2
X
T
y
=
2
X
T
X
w
^
w
∗
^
=
(
X
T
X
)
−
1
X
T
y
\begin{aligned} 2X^T\boldsymbol{y} =& 2X^TX\hat{\boldsymbol{w}}\\ \hat{\boldsymbol{w}^*}=&(X^TX)^{-1}X^T\boldsymbol{y} \end{aligned}
2XTy=w∗^=2XTXw^(XTX)−1XTy
需要注意的是,(13) 式只有在矩阵
X
T
X
X^TX
XTX 可逆时才有效,然而在实际任务中,往往样本数量
m
m
m 会小于样本特征个数
d
d
d ,此时
X
T
X
X^TX
XTX 显然不满秩,因此也不可逆。此时不只有一个
w
^
\hat{\boldsymbol{w}}
w^可以满足方程 (13) 第一行(这种情况可以理解成未知变量个数多于方程组方程个数,此时方程组解不唯一,所有解可以构成一个线性解空间)。此时模型最终使用哪一组参数由其学习算法的归纳偏好决定,常见的作法是引入正则化(regularization)项。常见的正则化项有一范数正则化项(是参数向量稀疏)和二范数正则化项(使参数向量二范数降低)。
2.3 线性回归变式
在线性映射的基础上,可以再叠加一个非线性映射,借此使模型函数获得拟合变量之间非线性关系的能力,比如对数线性回归 (log-linear regression),令 f ( x ; w , b ) ≈ ln y f(\boldsymbol{x};\boldsymbol{w},b)\approx \ln y f(x;w,b)≈lny,此时我们实际上是使 e w T x + b e^{\boldsymbol{w}^T\boldsymbol{x}+b} ewTx+b 逼近 y y y. 如下图:
同理,面对不同的先验知识也可以叠加其他非线性映射,一般形式是考虑可微函数
g
(
⋅
)
g(\cdot)
g(⋅),令:
y
=
g
−
1
(
w
T
x
+
b
)
y = g^{-1}(\boldsymbol{w}^Tx+b)
y=g−1(wTx+b)
这样得到的模型称为广义线性模型 (generalized linear model)。其中函数
g
(
⋅
)
g(\cdot)
g(⋅) 称为联系函数(link function)。
3. 对数几率回归
3.1 模型
传统的线性回归无法处理分类问题,此时就需要按 (14) 式的广义线性模型,找到一种映射可以将样本线性回归模型的预测值再映射到样本的类别变量上。以最简单的二分类问题为例,此时样本的标签
y
∈
{
0
,
1
}
y\in\{0,1\}
y∈{0,1} 是离散的,而线性回归模型产生的预测值
z
=
w
T
x
+
b
z=\boldsymbol{w}^T\boldsymbol{x}+b
z=wTx+b是连续值,因此需要我们将连续值
z
z
z 转换为 1/0,最理想的非线性映射是单位阶跃函数(unit-step function):
y
=
{
0
,
z
<
0
0.5
,
z
=
0
1
,
z
>
0
y = \left\{ \begin{aligned} 0,\quad z<0\\ 0.5,\quad z=0\\ 1,\quad z>0 \end{aligned} \right.
y=⎩⎪⎨⎪⎧0,z<00.5,z=01,z>0
但是单位阶跃函数的问题在于,其不连续,这使得在后续优化过程较为困难。于是我们使用一种较为接近单位阶跃函数的 Sigmoid 函数用作式 (14) 的
g
−
1
(
⋅
)
g^{-1}(\cdot)
g−1(⋅):
Sigmoid
(
z
)
=
1
1
+
e
−
z
\text{Sigmoid}(z) = \frac{1}{1+e^{-z}}
Sigmoid(z)=1+e−z1
单位阶跃函数和 Sigmoid 函数的图像如下:
将 Sigmoid 函数带入式 (14)有:
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y = \frac{1}{1 + e^{-(\boldsymbol{w}^T\boldsymbol{x}+b)}}
y=1+e−(wTx+b)1
(17) 式经过变形后有:
ln
y
1
−
y
=
w
T
x
+
b
\ln\frac{y}{1-y}=\boldsymbol{w}^T\boldsymbol{x}+b
ln1−yy=wTx+b
将
y
y
y 视作样本为正例的可能性,则
1
−
y
1-y
1−y 为样本为负例的可能性,两者的比值
y
1
−
y
\frac{y}{1-y}
1−yy
称为几率(odds),它反映了特征向量为
x
x
x 的样本是正例的相对可能性,对几率取对数则得到对数几率(log odds,亦称 logit)。因此,(17) 式其实式希望用线性回归的结果去逼近真实的对数几率,所以其对应的模型称为对数几率回归(logistic regression,亦称 logit regression)。需要注意的是,虽然模型名字是“回归”,但是该模型本质上是一个分类模型。其有如下优点:
- 直接对分类可能性建模,无需实现假设数据分布,避免了假设分布不准确所带来的问题(貌似许多机器学习模型都是这样😅)。
- 预测结果其实是样本被分为正例的概率,这对许多需要利用概率辅助决策的任务更友好。
- Sigmoid 函数连续且各阶可导,该性质对优化很有帮助。
3.2 目标函数
机器学习模型通常需要将参数的选择问题转化为某目标函数的优化问题,逻辑回归模型也不例外。对于目标函数(损失函数)的推导,西瓜书与南瓜书分别采用了两种思路:最大似然估计与交叉熵,然而最后的结果确实殊途同归,不禁使人感叹数学的奇妙🤣
3.2.1 最大似然估计
最大似然估计(maximum likelihood estimation, MLE)的主要思想是,使出现观测值的可能性最大。要使用最大似然估计法,我们首先要写出在给定模型参数
w
,
b
\boldsymbol{w},b
w,b 的情况下,样本分类的概率分布函数,方便起见,令
β
=
(
w
;
b
)
,
x
^
=
(
x
;
1
)
\beta = (\boldsymbol{w}; b), \hat{\boldsymbol{x}} = (\boldsymbol{x};1)
β=(w;b),x^=(x;1) (同 2.2 节)。分别记样本
x
^
\hat{\boldsymbol{x}}
x^ 经模型判定为正例的概率和负例的概率为:
p
1
(
x
^
;
β
)
=
p
(
y
=
1
∣
x
^
;
β
)
=
1
1
+
e
−
(
β
T
x
^
)
=
e
β
T
x
^
1
+
e
β
T
x
^
p
0
(
x
^
;
β
)
=
p
(
y
=
0
∣
x
^
;
β
)
=
1
−
1
1
+
e
−
(
β
T
x
^
)
=
1
1
+
e
β
T
x
^
\begin{aligned} p_1(\hat{\boldsymbol{x}};\beta) = p(y=1|\hat{\boldsymbol{x}};\beta)=\frac{1}{1+e^{-(\beta^T\hat{\boldsymbol{x}})}}=\frac{e^{\beta^T\hat{\boldsymbol{x}}}}{1+e^{\beta^T\hat{\boldsymbol{x}}}}\\ p_0(\hat{\boldsymbol{x}};\beta) = p(y=0|\hat{\boldsymbol{x}};\beta)=1-\frac{1}{1+e^{-(\beta^T\hat{\boldsymbol{x}})}}=\frac{1}{1+e^{\beta^T\hat{\boldsymbol{x}}}} \end{aligned}
p1(x^;β)=p(y=1∣x^;β)=1+e−(βTx^)1=1+eβTx^eβTx^p0(x^;β)=p(y=0∣x^;β)=1−1+e−(βTx^)1=1+eβTx^1
对于任意一个样本
x
^
i
\hat{\boldsymbol{x}}^i
x^i,模型预测其分类的概率分布函数有如下两种表示方法:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ &p(y^i|\hat{\b…
(22) (23)式都是合理的,在此以 (22)式为例进行说明:
- 当 y i = 1 y^i=1 yi=1 时, p ( y i ∣ x ^ i ; β ) = p 1 ( x ^ ; β ) p(y^i|\hat{\boldsymbol{x}}^i;\beta)=p_1(\hat{\boldsymbol{x}};\beta) p(yi∣x^i;β)=p1(x^;β)( 1 − y i = 0 1-y^i=0 1−yi=0)
- 当 y i = 0 y^i=0 yi=0 时, p ( y i ∣ x ^ i ; β ) = p 2 ( x ^ ; β ) p(y^i|\hat{\boldsymbol{x}}^i;\beta)=p_2(\hat{\boldsymbol{x}};\beta) p(yi∣x^i;β)=p2(x^;β)( 1 − y i = 1 1-y^i=1 1−yi=1)
(23)也如此,不再赘述。要使模型将每个样本正确分类的概率最大,则需要最大化如下函数:
P
(
β
)
=
∏
i
=
1
m
p
(
y
i
∣
x
^
i
;
β
)
P(\beta) = \prod^m_{i=1}p(y^i|\hat{\boldsymbol{x}}^i;\beta)
P(β)=i=1∏mp(yi∣x^i;β)
对上式取对数将连乘转化为连加有:
ln
P
(
β
)
=
l
(
β
)
=
∑
i
=
1
m
ln
p
(
y
i
∣
x
^
i
;
β
)
=
∑
i
=
1
m
ln
(
y
i
p
1
(
x
^
;
β
)
+
(
1
−
y
i
)
p
0
(
x
^
;
β
)
)
=
∑
i
=
1
m
ln
(
y
i
e
β
T
x
^
i
+
1
−
y
i
1
+
e
β
T
x
^
i
)
=
∑
i
=
1
m
(
ln
(
y
i
e
β
T
x
^
i
+
1
−
y
i
)
−
ln
(
1
+
e
β
T
x
^
i
)
)
\begin{aligned} \ln P(\beta) = \mathscr{l}(\beta) = &\sum^m_{i=1}\ln p(y^i|\hat{\boldsymbol{x}}^i;\beta)\\ = &\sum^m_{i=1}\ln \left(y^ip_1(\hat{\boldsymbol{x}};\beta)+(1-y^i)p_0(\hat{\boldsymbol{x}};\beta)\right)\\ = &\sum^m_{i=1}\ln \left(\frac{y^ie^{\beta^T\hat{\boldsymbol{x}}^i}+1-y^i}{1+e^{\beta^T\hat{\boldsymbol{x}}^i}}\right)\\ = & \sum^m_{i=1}\left(\ln(y^ie^{\beta^T\hat{\boldsymbol{x}}^i}+1-y^i)-\ln (1+e^{\beta^T\hat{\boldsymbol{x}}^i}) \right) \end{aligned}
lnP(β)=l(β)====i=1∑mlnp(yi∣x^i;β)i=1∑mln(yip1(x^;β)+(1−yi)p0(x^;β))i=1∑mln(1+eβTx^iyieβTx^i+1−yi)i=1∑m(ln(yieβTx^i+1−yi)−ln(1+eβTx^i))
分别带入
y
i
=
0
,
1
y^i=0,1
yi=0,1得到:
l
(
β
)
=
{
∑
i
=
1
m
(
−
ln
(
1
+
e
β
T
x
^
i
)
)
,
y
i
=
0
∑
i
=
1
m
(
β
T
x
^
−
ln
(
1
+
e
β
T
x
^
i
)
)
,
y
1
=
1
\mathscr{l}(\beta) = \left\{ \begin{aligned} \sum^m_{i=1}\left(-\ln (1+e^{\beta^T\hat{\boldsymbol{x}}^i})\right), \quad y^i = 0&\\ \sum^m_{i=1}\left(\beta^T\hat{\boldsymbol{x}}-\ln (1+e^{\beta^T\hat{\boldsymbol{x}}^i})\right),\quad y^1=1& \end{aligned} \right.
l(β)=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧i=1∑m(−ln(1+eβTx^i)),yi=0i=1∑m(βTx^−ln(1+eβTx^i)),y1=1
(26) 式又可以合并为:
l
(
β
)
=
∑
i
=
1
m
(
y
i
β
T
x
^
−
ln
(
1
+
e
β
T
x
^
i
)
)
\mathscr{l}(\beta)=\sum^m_{i=1}\left(y^i\beta^T\hat{\boldsymbol{x}}-\ln (1+e^{\beta^T\hat{\boldsymbol{x}}^i})\right)
l(β)=i=1∑m(yiβTx^−ln(1+eβTx^i))
因此我们只需要最大化 (27)式(或最小化 (27)式的相反数)即可找到最合适的参数
β
\beta
β。
3.2.2 交叉熵
交叉熵可以视作为KL-散度的产物,它和KL-散度都可以衡量拟合分布与理想分布之间的差距,但是要注意:交叉熵和KL-散度都不是距离,因为他们不满足对称性。以交叉熵为目标函数,我们需要找到合适
β
\beta
β 使得模型在数据集上的交叉熵最小,则待优化的目标函数为:
l
(
β
)
=
−
∑
i
=
1
m
(
y
i
ln
(
p
1
(
x
^
i
;
β
)
)
+
(
1
−
y
i
)
ln
p
0
(
x
^
i
;
β
)
)
=
−
∑
i
=
1
m
(
y
i
ln
(
p
1
(
x
^
i
;
β
)
p
0
(
x
^
i
;
β
)
)
+
ln
(
p
0
(
x
^
i
;
β
)
)
)
=
−
∑
i
=
1
m
(
y
i
ln
(
e
β
T
x
^
i
)
+
ln
(
1
1
+
e
β
T
x
^
i
)
)
=
−
∑
i
=
1
m
(
y
i
β
T
x
^
i
−
ln
(
1
+
e
β
T
x
^
i
)
)
\begin{aligned} \mathscr{l}(\beta) = &-\sum^m_{i=1}\big(y^i\ln(p_1(\hat{\boldsymbol{x}}^i;\beta))+(1-y^i)\ln p_0(\hat{\boldsymbol{x}}^i;\beta)\big)\\ =& -\sum^m_{i=1}\left(y^i\ln\left(\frac{p_1(\hat{\boldsymbol{x}}^i;\beta)}{p_0(\hat{\boldsymbol{x}}^i;\beta)}\right)+\ln(p_0\big(\hat{\boldsymbol{x}}^i;\beta)\big)\right)\\ =& -\sum^m_{i=1}\left(y^i\ln\left(e^{\beta^T\hat{\boldsymbol{x}}^i}\right)+\ln\left(\frac{1}{1+e^{\beta^T\hat{\boldsymbol{x}}^i}}\right)\right)\\ =& -\sum^m_{i=1}\left(y^i\beta^T\hat{\boldsymbol{x}}^i-\ln\big(1+e^{\beta^T\hat{\boldsymbol{x}}^i}\big) \right) \end{aligned}
l(β)====−i=1∑m(yiln(p1(x^i;β))+(1−yi)lnp0(x^i;β))−i=1∑m(yiln(p0(x^i;β)p1(x^i;β))+ln(p0(x^i;β)))−i=1∑m(yiln(eβTx^i)+ln(1+eβTx^i1))−i=1∑m(yiβTx^i−ln(1+eβTx^i))
值得注意的是,使用 (23) 式作为模型预测样本分类的概率分布函数后再使用最大似然估计,也会得到 (28) 式第一行的结果,因此后续也会与交叉熵计算过程相同。
3.3 优化算法
逻辑回归模型的目标函数是严格的凸函数,因此其十分容易优化,常见的方法有牛顿法,梯度下降法等(我个人比较喜欢梯度下降法😁)。
4. 线性判别分析
4.1 LDA 模型思想
线性判别分析(Linear Discriminant Analysis,LDA) 的思想很简单:模型需要学习的是一条过原点的直线,当将样本的特征向量投影到该直线上并希望同类样本的投影点经可能近,非同类样本点尽可能远,遇到新样本时,只需将其特征向量进行相同的投影,就可以根据投影点的位置预测其类别。具体情况可见下图:
4.2 LDA 模型构建
以二分类数据集为例,令
X
i
,
μ
i
,
Σ
i
X_i, \mu_i, \Sigma_i
Xi,μi,Σi 分别表示第
i
∈
{
0
,
1
}
i\in\{0, 1\}
i∈{0,1} 样本的特征矩阵、均值向量、协方差矩阵。其中协方差矩阵计算方法如下:
Σ
=
1
m
(
X
−
M
)
T
(
X
−
M
)
\Sigma = \frac{1}{m}(X - \Mu)^T(X - \Mu)
Σ=m1(X−M)T(X−M)
需要注意的是:==西瓜书中协方差矩阵的计算没有考虑求和后的平均,但是着并不印象最后的优化结果,因为待优化的目标函数分子分母都忽视了这个求平均值的系数,故不会该边最后的最优解。==若投影方向为
w
\boldsymbol{w}
w,则两类样本投影后的均值为
w
T
μ
i
\boldsymbol{w}^T\boldsymbol{\mu_i}
wTμi ,样本投影后的协方差为
w
t
Σ
i
w
\boldsymbol{w}^t\Sigma_i\boldsymbol{w}
wtΣiw,根据线性判别分析的要求,我们需要使
∣
∣
w
T
μ
0
−
w
T
μ
1
∣
∣
2
2
||\boldsymbol{w}^T\boldsymbol{\mu_0}-\boldsymbol{w}^T\boldsymbol{\mu_1}||^2_2
∣∣wTμ0−wTμ1∣∣22 尽量大,使
w
t
Σ
0
w
+
w
t
Σ
1
w
\boldsymbol{w}^t\Sigma_0\boldsymbol{w}+\boldsymbol{w}^t\Sigma_1\boldsymbol{w}
wtΣ0w+wtΣ1w 尽量小,因此可以自然得到需要最大化的目标:
J
=
∣
∣
w
T
μ
0
−
w
T
μ
1
∣
∣
2
2
w
t
Σ
0
w
+
w
t
Σ
1
w
J=\frac{||\boldsymbol{w}^T\boldsymbol{\mu_0}-\boldsymbol{w}^T\boldsymbol{\mu_1}||^2_2}{\boldsymbol{w}^t\Sigma_0\boldsymbol{w}+\boldsymbol{w}^t\Sigma_1\boldsymbol{w}}
J=wtΣ0w+wtΣ1w∣∣wTμ0−wTμ1∣∣22
为了方便表示,定义类内散度矩阵(within-class scatter matrix)
S
w
S_w
Sw 和类间散度矩阵(between-class scatter matrix)
S
b
S_b
Sb:
S
w
=
Σ
0
+
Σ
1
=
∑
x
∈
X
0
(
x
−
μ
)
(
x
−
μ
)
T
+
∑
x
∈
X
1
(
x
−
μ
)
(
x
−
μ
)
T
S
b
=
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
\begin{aligned} S_w =& \Sigma_0 + \Sigma_1\\ =&\sum_{\boldsymbol{x}\in X_0}(\boldsymbol{x}-\mu)(\boldsymbol{x}-\mu)^T+\sum_{\boldsymbol{x}\in X_1}(\boldsymbol{x}-\mu)(\boldsymbol{x}-\mu)^T\\ \\ S_b =& (\mu_0-\mu_1)(\mu_0-\mu_1)^T \end{aligned}
Sw==Sb=Σ0+Σ1x∈X0∑(x−μ)(x−μ)T+x∈X1∑(x−μ)(x−μ)T(μ0−μ1)(μ0−μ1)T
则式 (2) 可以重写为:
J
=
w
T
S
b
w
w
T
S
w
w
J=\frac{\boldsymbol{w}^TS_b\boldsymbol{w}}{\boldsymbol{w}^TS_w\boldsymbol{w}}
J=wTSwwwTSbw
此即为 LDA 想要最大化的目标,它又叫做
S
b
S_b
Sb 与
S
w
S_w
Sw 的广义瑞利商(generalized Rayleigh quotient)。
4.3 LDA 模型求解
LDA模型需要确定的只有表示投应方向的向量
w
\boldsymbol{w}
w,同时还注意到,(4) 式是一个齐次分式,故
w
\boldsymbol{w}
w 的模不会影响模型的性能,所以我们可以不失一般性地令
w
T
S
w
w
=
1
\boldsymbol{w}^TS_w\boldsymbol{w}=1
wTSww=1,则最大化 (4) 式可以转化为:
min
w
−
w
T
S
b
w
s
.
t
.
w
T
S
w
w
=
1
\begin{aligned} \min_{\boldsymbol{w}}\quad&-\boldsymbol{w}^TS_b\boldsymbol{w}\\ s.t.\quad&\boldsymbol{w}^TS_w\boldsymbol{w}=1 \end{aligned}
wmins.t.−wTSbwwTSww=1
至此,我们将模型的参数选择问题转换成了一个比较简单的凸优化问题,使用拉格朗日乘子法,引入拉格朗日乘子
λ
\lambda
λ 后,我们需要优化的目标变为:
min
w
−
w
T
S
b
w
+
λ
w
T
S
w
w
\min_{\boldsymbol{w}}\quad-\boldsymbol{w}^TS_b\boldsymbol{w}+\lambda\boldsymbol{w}^TS_w\boldsymbol{w}
wmin−wTSbw+λwTSww
对上式求导数零点即可,要求的
w
\boldsymbol{w}
w 即为下面方程的解:
S
b
w
=
λ
S
w
w
S_b\boldsymbol{w}=\lambda S_w\boldsymbol{w}
Sbw=λSww
同时需要注意到
S
b
w
S_b\boldsymbol{w}
Sbw 的方向恒为
μ
0
−
μ
1
\mu_0-\mu_1
μ0−μ1(将
S
b
w
S_b\boldsymbol{w}
Sbw 通过 (3) 式展开,再使用矩阵乘法的交换律即可看出),不妨令:
S
b
w
=
λ
(
μ
0
−
μ
1
)
S_b\boldsymbol{w} = \lambda(\mu_0-\mu_1)
Sbw=λ(μ0−μ1)
带入 (7) 式在解方程既得:
w
=
S
w
−
1
(
μ
0
−
μ
1
)
\boldsymbol{w} = S_w^{-1}(\mu_0-\mu_1)
w=Sw−1(μ0−μ1)
现实中考虑到数值解的稳定性,通常用奇异值分解的方法求解
S
w
−
1
S_w^{-1}
Sw−1,即先将
S
w
S_w
Sw 分解成
S
w
=
U
Σ
V
T
S_w = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^T
Sw=UΣVT,其中
Σ
\mathbf{\Sigma}
Σ 是实对角矩阵,对角线上的元素为
S
w
S_w
Sw 的奇异值,则
S
w
−
1
=
U
Σ
−
1
V
T
S_w^{-1}=\mathbf{U}\mathbf{\Sigma}^{-1}\mathbf{V}^T
Sw−1=UΣ−1VT。LDA也可以从贝叶斯决策理论的角度来阐释,并可以证明,当两类样本数据同先验,满足高斯分布且协方差相等时,LDA 可以达到最优分类。
4.4 LDA模型的多分类推广
假定存在
N
N
N 个类别,且第
i
i
i 类样本个数为
m
i
m_i
mi,我们先定义全局散度矩阵:
S
t
=
S
w
+
S
b
=
∑
i
=
1
m
(
x
i
−
μ
)
(
x
i
−
μ
)
T
\begin{aligned} S_t =& S_w + S_b\\ =&\sum^m_{i=1}(\boldsymbol{x}_i-\boldsymbol{\mu})(\boldsymbol{x}_i-\boldsymbol{\mu})^T \end{aligned}
St==Sw+Sbi=1∑m(xi−μ)(xi−μ)T
其中
μ
\boldsymbol{\mu}
μ 是所有样本的均值向量。此外,将类内散度矩阵重新定义为每个类别的散度矩阵之和,即:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ S_w =& \sum^N_…
由 (10) ~ (12) 式可得:
S
b
=
S
t
−
S
w
=
∑
i
=
1
N
m
i
(
μ
i
−
μ
)
(
μ
i
−
μ
)
T
\begin{aligned} S_b =&S_t-S_w\\ =&\sum^N_{i=1}m_i(\boldsymbol{\mu}_i-\boldsymbol{\mu})(\boldsymbol{\mu}_i-\boldsymbol{\mu})^T \end{aligned}
Sb==St−Swi=1∑Nmi(μi−μ)(μi−μ)T
同样的,多分类背景下的 LDA 的优化目标也是使同类之间投影尽可能近,不同类之间投影尽可能远。令
W
=
(
w
1
,
w
2
,
⋯
,
w
N
−
1
)
∈
R
d
×
(
N
−
1
)
W=(\boldsymbol{w}_1, \boldsymbol{w}_2, \cdots, \boldsymbol{w}_{N-1})\in\mathbb{R}^{d\times(N-1)}
W=(w1,w2,⋯,wN−1)∈Rd×(N−1),则优化目标为:
max
W
∑
i
=
1
N
−
1
w
i
T
S
b
w
i
∑
i
=
1
N
−
1
w
i
T
S
w
w
i
\max_{\mathbb{W}}\quad \frac{\sum^{N-1}_{i=1}\boldsymbol{w}_i^TS_b\boldsymbol{w}_i}{\sum^{N-1}_{i=1}\boldsymbol{w}_i^TS_w\boldsymbol{w}_i}
Wmax∑i=1N−1wiTSwwi∑i=1N−1wiTSbwi
由分块矩阵的乘法我们可以直接得到:
∑
i
=
1
N
−
1
w
i
T
S
b
w
i
=
t
r
(
W
T
S
b
W
)
∑
i
=
1
N
−
1
w
i
T
S
w
w
i
=
t
r
(
W
T
S
w
W
)
\begin{aligned} &\sum^{N-1}_{i=1}\boldsymbol{w}_i^TS_b\boldsymbol{w}_i = {\rm tr}\left(\mathbf{W}^TS_b\mathbf{W}\right)\\ &\sum^{N-1}_{i=1}\boldsymbol{w}_i^TS_w\boldsymbol{w}_i = {\rm tr}\left(\mathbf{W}^TS_w\mathbf{W}\right) \end{aligned}
i=1∑N−1wiTSbwi=tr(WTSbW)i=1∑N−1wiTSwwi=tr(WTSwW)
同 (7) 式,使用拉格朗日乘子后要求的
W
\mathbf{W}
W 即为下面方程的解:
S
b
W
=
λ
S
w
W
S_b\mathbf{W} = \lambda S_w\mathbf{W}
SbW=λSwW
4.5 补充
4.5.1 广义特征值
设 A , B ∈ R n × n A, B\in\mathbb{R}^{n\times n} A,B∈Rn×n 为方阵,若存在数 λ \lambda λ,使得方程 A x = λ B x A\boldsymbol{x} = \lambda B\boldsymbol{x} Ax=λBx 存在非零解,则称 λ \lambda λ 为 A A A 相对于 B B B 的广义特征值, x \boldsymbol{x} x 为 A A A 相对于 B B B 的属于广义特征值 λ \lambda λ 广义特征向量。特别地, 当 B = I B=I B=I 时,广义特征值问题退化为标准特征值问题。
4.5.2 广义瑞利商
设
A
,
B
A, B
A,B 为
n
n
n 阶厄米(Hermitian)矩阵(实数域上的厄米矩阵即为对称矩阵),且
B
B
B 正定,称 :
R
(
x
)
=
x
H
A
x
x
H
B
x
(
x
≠
0
)
R(x)=\frac{\boldsymbol{x}^H A\boldsymbol{x}}{\boldsymbol{\boldsymbol{x}}^H B\boldsymbol{x}}(\boldsymbol{x}\neq \boldsymbol{0})
R(x)=xHBxxHAx(x=0)
为
A
A
A 相对于
B
B
B 的广义瑞利商。特别地,当
B
=
I
B=I
B=I 时,广义瑞利商退化为瑞利商。
4.5.3 广义瑞利商的性质
设
λ
i
,
x
i
(
i
=
1
,
2
,
3
,
⋯
,
n
)
\lambda_i, \boldsymbol{x}_i (i = 1, 2, 3, \cdots, n)
λi,xi(i=1,2,3,⋯,n) 为
A
A
A 相对于
B
B
B 的广义特征值与广义特征向量,且
λ
1
≤
λ
2
≤
⋯
≤
λ
n
\lambda_1\leq\lambda_2\leq\cdots\leq\lambda_n
λ1≤λ2≤⋯≤λn,则下列下面两个式子成立:
min
x
≠
0
R
(
x
)
=
x
H
A
x
x
H
B
x
=
λ
1
,
x
∗
=
x
1
max
x
≠
0
R
(
x
)
=
x
H
A
x
x
H
B
x
=
λ
n
,
x
∗
=
x
n
\begin{aligned} \min_{\boldsymbol{x}\neq\boldsymbol{0}}R(x)=\frac{\boldsymbol{x}^H A\boldsymbol{x}}{\boldsymbol{\boldsymbol{x}}^H B\boldsymbol{x}} = \lambda_1, \quad\boldsymbol{x}^*=\boldsymbol{x_1}\\ \max_{\boldsymbol{x}\neq\boldsymbol{0}}R(x)=\frac{\boldsymbol{x}^H A\boldsymbol{x}}{\boldsymbol{\boldsymbol{x}}^H B\boldsymbol{x}} = \lambda_n, \quad\boldsymbol{x}^*=\boldsymbol{x_n}\\ \end{aligned}
x=0minR(x)=xHBxxHAx=λ1,x∗=x1x=0maxR(x)=xHBxxHAx=λn,x∗=xn
证明如下:
不妨令:
x
H
B
x
=
1
\boldsymbol{\boldsymbol{x}}^H B\boldsymbol{x}=1
xHBx=1
则优化问题 (19) 转化为:
min
x
≠
0
R
(
x
)
=
x
H
A
x
s
.
t
.
x
H
B
x
=
1
\begin{aligned} &\min_{\boldsymbol{x}\neq\boldsymbol{0}}\quad R(x)=\boldsymbol{x}^H A\boldsymbol{x}\\ &s.t.\quad\boldsymbol{\boldsymbol{x}}^H B\boldsymbol{x} = 1 \end{aligned}
x=0minR(x)=xHAxs.t.xHBx=1
利用拉格朗日乘子法可以得到最优解
x
∗
\boldsymbol{x}^*
x∗ 满足下列方程:
A
x
=
λ
B
x
A\boldsymbol{x} = \lambda B\boldsymbol{x}
Ax=λBx
而上式显然是一个广义特征值问题,将 (23) 式带回至 (19) 式得:
R
(
x
)
=
x
H
A
x
x
H
B
x
=
λ
R(x)=\frac{\boldsymbol{x}^H A\boldsymbol{x}}{\boldsymbol{\boldsymbol{x}}^H B\boldsymbol{x}}=\lambda
R(x)=xHBxxHAx=λ
而
λ
\lambda
λ 的最大值为
λ
n
\lambda_n
λn,最小值为
λ
1
\lambda_1
λ1,则该性质显然成立。
5. 多分类学习
我感觉没啥好说的,无非三种思想,一对多,一对余和多对多(One vs. One, One vs. Rest, Many vs. Many)。
6. 类别不平衡问题
面对正负类样本个数不平衡的问题,主要有三种处理办法:
- 再放缩(rescaling):主要思想是更改决策阈值,使之更贴合正负样本个数的比例。
- 优化时对样本数量过多的类别进行欠采样(undersampling)。
- 优化时对样本数量过少的类别进行过采样(oversampling)。