线性模型
3.1 基本形式
给定由
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
⃗
\vec x
x 在第
i
i
i 个属性上的取值,线性模型(linear model) 试图学得一个通过属性的线性组合来进行预测函数,即
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
⋯
+
w
d
x
d
+
b
(3.1)
f(x) = w_1x_1 + w_2x_2 + \cdots + w_dx_d + b \tag{3.1}
f(x)=w1x1+w2x2+⋯+wdxd+b(3.1)
一般用向量形式写成
f
(
x
)
=
w
T
x
+
b
(3.2)
f(x) = w^Tx + b \tag{3.2}
f(x)=wTx+b(3.2)
其中,
w
⃗
=
(
w
1
;
w
2
;
⋯
;
w
d
)
\vec w = (w_1; w_2; \cdots; w_d)
w=(w1;w2;⋯;wd)。
w
⃗
\vec w
w 和
b
b
b 学得之后,模型就得以确定。线性模型形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想。许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引用层级结构或高维映射而得。
3.2 线性回归
给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y x ) , ⋯ , ( x m , y m ) } D = \lbrace(x_1, y_1),(x_2, y_x), \cdots ,(x_m, y_m) \rbrace D={(x1,y1),(x2,yx),⋯,(xm,ym)},其中 x i = ( x i 1 ; x i 2 ; ⋯ ; x d i ) , y i ∈ R x_i = (x_{i1};x_{i2};\cdots; x_{di}), y_i \in \mathbb{R} xi=(xi1;xi2;⋯;xdi),yi∈R。“线性回归”(linear regression) 试图学得一个线性模型以尽可能准确地预测实值输出标记。
线性回归试图学得
f
(
x
i
)
=
w
x
i
+
b
,
使
得
f
(
x
i
)
≃
y
i
(3.3)
f(x_i) = wx_i + b, \quad 使得 f(x_i) \simeq y_i \tag{3.3}
f(xi)=wxi+b,使得f(xi)≃yi(3.3)
如何确定上式中的
w
w
w 和
b
b
b 呢? 显然,关键在于如何衡量
f
(
x
)
f(x)
f(x) 与
y
y
y 之间的差别。均方误差是回归任务中最常用的性能度量,因此我们可以试图让均方误差最小化,即
(
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
(3.4)
(w^*, b^*) = {\underset{(w, b)}{\operatorname {arg\,min}}}\,\sum_{i=1}^m\left(f(x_i) - y_i \right)^2 =\\ {\underset{(w, b)}{\operatorname {arg\,min}}}\,\sum_{i=1}^m\left(y_i - wx_i -b \right)^2 \tag{3.4}
(w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2(3.4)
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称"欧氏距离"(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为"最小二乘法"(least square methon)。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
最小二乘法用途很广,不仅限于线性回归。最小二乘也是一种数学优化技术,通过最小化误差平方和寻找数据的最优函数匹配。
求解
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
=
2
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
(3.5)
\frac{\partial E_{(w, b)}}{\partial w} = 2\left(w\sum_{i=1}^m x_i^2 - \sum_{i=1}^m(y_i - b)x_i \right) \tag{3.5}
∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)(3.5)
∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) (3.6) \frac{\partial E_{(w, b)}}{\partial b} = 2\left(mb - \sum_{i=1}^m(y_i - wx_i) \right) \tag{3.6} ∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))(3.6)
然后令式
(
3.5
)
(3.5)
(3.5)和式
(
3.6
)
(3.6)
(3.6) 为零可得到
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
(3.7)
w = \frac{\sum_{i=1}^m y_i(x_i-\overline{x}) }{\sum_{i=1}^mx_i^2 -\frac{1}{m}\left(\sum_{i=1}^m x_i\right)^2} \tag{3.7}
w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x)(3.7)
b = 1 m ∑ i = 1 m ( y i − w x i ) (3.8) b = \frac{1}{m}\sum_{i=1}^m(y_i - wx_i) \tag{3.8} b=m1i=1∑m(yi−wxi)(3.8)
其中, x ‾ = 1 m ∑ i = 1 m x i \overline x = \frac{1}{m}\sum_{i=1}^m x_i x=m1∑i=1mxi 为 x x x 的均值。
解析解为一封闭函数。因此对任一独立变量,我们皆可将其代入解析函数求得正确的相应变量,因此,解析解也被称为闭式解。
函数的封闭性,是指对函数进行加减乘除运算后,函数的性质不变;
函数的性质:对称性、奇偶性、单调性…
更一般的情形是,如本节开头的数据集
D
D
D,样本由
d
d
d 个属性描述。此时我们试图学得
f
(
x
i
)
=
w
T
x
i
+
b
,
使
得
f
(
x
i
)
≃
y
i
f(x_i) = w^Tx_i + b \quad, 使得 f(x_i) \simeq y_i
f(xi)=wTxi+b,使得f(xi)≃yi
这称为"多元线性回归"(multivariate liner regression)。
在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。
事实上,一种现象常与多个因素相联系的,由多个自变量的最优组合共同预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此,多元线性回归比一元线性回归的实际意义更大。
类似的,可利用最小二乘法来对
w
w
w 和
b
b
b 来进行估计。为了便于讨论,我们把
w
w
w 和
b
b
b 吸收入向量形式
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 = \left( \begin{matrix} 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{matrix} \right) = \left( \begin{matrix} x_1^T & 1 \\ x_2^T & 1 \\ \vdots & \vdots \\ x_m^T & 1 \end{matrix} \right)
X=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2⋯x1d⋯x2d⋱⋮⋯xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1Tx2T⋮xmT11⋮1⎠⎟⎟⎟⎞
再把标定也写成向量形式
y
=
(
y
1
;
y
2
;
⋯
;
y
m
)
y = (y_1; y_2; \cdots;y_m)
y=(y1;y2;⋯;ym),则类似于式(3.4),有
w
^
∗
=
arg min
w
^
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
(3.9)
\hat w^* = \underset{\hat w}{\operatorname{arg\,min}}(y - X\hat w)^T(y - X\hat w) \tag{3.9}
w^∗=w^argmin(y−Xw^)T(y−Xw^)(3.9)
令
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
)
(3.10)
\frac{\partial E_{\hat w}}{\partial \hat w} = 2 X^T(X \hat w - y) \tag{3.10}
∂w^∂Ew^=2XT(Xw^−y)(3.10)
令上式为零,可得
w
^
\hat w
w^ 最优解的闭式解。
当
X
T
X
X^TX
XTX 为满秩矩阵(full-rank matrix)或正定矩阵(positive definite matrix)时,令式(3.10)为零可得
w
^
∗
=
(
X
T
X
)
−
1
y
(3.11)
\hat w^* = (X^TX)^{-1}y \tag{3.11}
w^∗=(XTX)−1y(3.11)
矩阵的秩
任意矩阵可经过初等变换,化为行阶梯形矩阵,这个行阶梯形矩阵所含的非零行数为矩阵的秩。
满秩不局限于 n 阶矩阵,若矩阵秩等于行数,则称为行满秩;若矩阵秩等于列数,则称为列满秩。既是行满秩又是列满秩的 n 阶矩阵,即为 n 阶方阵;
正定矩阵
广义定义:设 M M M 是 n n n 阶方阵,如果对任何非零向量 z z z,都有 z T M z > 0 z^TMz > 0 zTMz>0,其中, z T z^T zT 表示 z z z 的转置,就称 M M M 为正定矩阵。
狭义定义:一个 n n n 阶的实对称矩阵 M M M 是正定的条件是当且仅当对于所有的非零实系数向量 z z z,都有 z T M z > 0 。 z^TMz > 0。 zTMz>0。其中, z T z^T zT 表示 z z z 的转置。
其中,
(
X
T
X
)
−
1
(X^TX)^{-1}
(XTX)−1 是矩阵
(
X
T
X
)
(X^TX)
(XTX) 的逆矩阵,令
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
(3.12)
f(\hat x_i) = \hat x_i^T(X^TX)^{-1}X^Ty \tag{3.12}
f(x^i)=x^iT(XTX)−1XTy(3.12)
然而,现实任务中
X
T
X
X^TX
XTX 往往不是满秩矩阵,例如在许多任务中我们会遇到大量的变量,其数目甚至超过样例数,导致
X
X
X 的列数多于行数,
X
T
X
X^TX
XTX 显然不满秩,此时,可解聘多个
w
^
\hat w
w^,它们均能使均方误差最小化。选择哪一个解作为输出将由学习算法的归纳偏好决定,常见的做法是引入正则化(regularization) 项。
线性模型虽然简单,却有丰富的变化。例如对于样例
(
x
,
y
)
,
y
∈
R
(x, y), y \in \mathbb{R}
(x,y),y∈R,当我们希望线性模型 (3.2)的预测值逼近真实标记
y
y
y 时,就得到了线性回归模型,为便于观察,我们把线性模型简写为
y
=
w
T
x
+
b
(3.13)
y = w^Tx + b \tag{3.13}
y=wTx+b(3.13)
可否令模型预测值逼近
y
y
y 的衍生物呢?譬如说,假设我们认为示例所对应的输出标记是指数尺度上的变化,那就可将输出标记的对数作为线性模型逼近的目标,即
ln
y
=
w
T
x
+
b
(3.14)
\ln y = w^Tx + b \tag{3.14}
lny=wTx+b(3.14)
这就是“对数回归(log-liner regression)”,它实际上是在试图让
e
w
T
+
b
e^{w^T+b}
ewT+b 逼近
y
y
y 。式(3.14) 在形式上仍然是线性回归,但实质上已是在求输入空间到输出空间的非线性函数映射,如图 3.1 所示,这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
更一般地,考虑单调可微函数
g
(
⋅
)
g(\cdot)
g(⋅),令
y
=
g
−
1
(
w
T
+
b
)
(3.15)
y = g^{-1}(w^T + b) \tag{3.15}
y=g−1(wT+b)(3.15)
这样得到的模型称为"广义线性模型(generalized linear model)",其中函数
g
(
⋅
)
g(\cdot)
g(⋅) 称为"联系函数"(link function)。显然,对数线性回归是广义线性模型在
g
(
⋅
)
=
ln
(
⋅
)
g(\cdot) = \ln(\cdot)
g(⋅)=ln(⋅) 时的特例。
g ( ⋅ ) g(\cdot) g(⋅) 连续且充分光滑
光滑函数(smooth function)在数学中特指无穷阶可导的函数。若一函数是连续的,则称其为 C 0 C^0 C0 函数;若函数1阶可导,且其1阶导函数连续,则被称为 C 1 C^1 C1 函数;若 n n n 阶可导,且其 n n n 阶导函数连续,则为 C n C^n Cn 函数。而光滑函数是对所有 n n n 都属于 C n C^n Cn 的函数,特称其为光滑函数。
可微函数
在微积分学中,可微函数是指那些在定义域中所有点都存在导数的函数。可微函数的图像在定义域内的每一点上必存在非垂直切线。因此,可微函数的图像是相对光滑的,没有间断点、尖点或任何有垂直切线的点。
广义线性模型的参数估计通过加权最小二乘法或极大似然法进行。
加权最小二乘
加权最小二乘法是对原模型进行加权,使之成为一个新的不存在异方差性的模型,然后采用普通最小二乘法估计其参数的一种数学优化技术。
3.3 对数几率回归
考虑到二类分类任务,其输出标记
y
∈
{
0
,
1
}
y \in \lbrace 0, 1\rbrace
y∈{0,1},而线性回归模型产生的预测值
z
=
w
T
x
+
b
z = w^Tx + b
z=wTx+b 是真实值,于是,我们需要将实值
z
z
z 转换为
0
/
1
0/1
0/1 值。最理想的是"单位阶跃函数(unit-step function)"
y
=
{
0
,
z
<
0
;
0.5
,
z
=
0
;
1
,
z
>
0
,
(3.16)
y = \begin{cases} 0, & z < 0; \\ 0.5, & z = 0; \\ 1, & z > 0, \end{cases} \tag{3.16}
y=⎩⎪⎨⎪⎧0,0.5,1,z<0;z=0;z>0,(3.16)
即若预测值
z
z
z 大于零就判为正例,小于零则判为反倒,预测值为临界值零则可任意判别;
单位阶跃函数又称单位布阶函数目前有三种定义,共同之处是自变量取值大于0时,函数值为1;自变量取值小于0时,函数值为0,不同之处是,自变量为0时,函数值各不相同。
第一种定义,自变量为 0 时,函数值不确定或不定义:
H ( t ) = { 1 , t > 0 0 , t < 0 H(t) = \begin{cases} 1, & t > 0 \\ 0, & t < 0 \end{cases} H(t)={1,0,t>0t<0
第二种定义,自变量为 0 时,函数值为 1 / 2 1/2 1/2:
θ ( t ) = { 1 , t > 0 1 2 , t = 0 0 , t < 0 \theta(t) = \begin{cases} 1, & t > 0 \\ \frac{1}{2}, & t = 0 \\ 0, & t < 0 \end{cases} θ(t)=⎩⎪⎨⎪⎧1,21,0,t>0t=0t<0
第三种定义,自变量为 0 时,函数值为 1:
ε ( t ) = { 1 , t ≥ 0 0 , t < 0 \varepsilon(t) = \begin{cases} 1, & t \ge 0 \\ 0, & t < 0 \end{cases} ε(t)={1,0,t≥0t<0
单位阶跃函数不连续,因此不能直接作用式(3.15)中的
g
−
(
⋅
)
g^{-}(\cdot)
g−(⋅)。于是我们希望找到能在一定程度上近似阶跃函数的“替代函数”(surrogate function),并希望它单调可微。对数几率函数(logistic function)就是这样一个常用的替代函数:
y
=
1
1
+
e
−
z
(3.17)
y = \frac{1}{1 + e^{-z}} \tag{3.17}
y=1+e−z1(3.17)
对数几率函数是一种"Sigmoid 函数",它将
z
z
z 值转化为一个接近于
0
0
0 或
1
1
1 的
y
y
y 值,并且其输出值在
z
=
0
z = 0
z=0 附近变化很陡。将对数几率函数作为
g
−
(
⋅
)
g^{-}(\cdot)
g−(⋅) 代入式 (3.15),得到
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)
类似于式(3.14),式(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)
式(3.18) 到 式 (3.19)的推导过程
y = 1 1 + e − ( w T x + b ) ⇒ 1 y = 1 + e − ( w T x + b ) ⇒ e − ( w T x + b ) = 1 y − 1 = 1 − y y ⇒ ln e − ( w T x + b ) = ln 1 − y y ⇒ − ln e ( w T x + b ) = ln 1 − y y ⇒ ln e ( w T x + b ) = − ln 1 − y y = ln y y − 1 ⇒ ln y 1 − y = w T x + b y = \frac {1}{1 + e^{-(w^Tx + b)}} \Rightarrow \frac{1}{y} = 1 + e^{-(w^Tx + b)} \\ \Rightarrow e^{-(w^Tx + b)} = \frac {1}{y} - 1 = \frac {1 - y}{y} \\ \Rightarrow \ln e^{-(w^Tx + b)} = \ln \frac {1 - y}{y} \\ \Rightarrow -\ln e^{(w^Tx + b)} = \ln \frac {1-y}{y} \\ \Rightarrow \ln e^{(w^Tx + b)} = -\ln \frac{1-y}{y} = \ln \frac{y}{y - 1} \\ \Rightarrow \ln \frac{y}{1 - y} = w^Tx + b y=1+e−(wTx+b)1⇒y1=1+e−(wTx+b)⇒e−(wTx+b)=y1−1=y1−y⇒lne−(wTx+b)=lny1−y⇒−lne(wTx+b)=lny1−y⇒lne(wTx+b)=−lny1−y=lny−1y⇒ln1−yy=wTx+b
若将
y
y
y 视为样本
x
x
x 作为正例的可能性,则
1
−
y
1 - y
1−y 是其反例可能性,两者的比值
y
1
−
y
(3.20)
\frac {y}{1-y} \tag{3.20}
1−yy(3.20)
称为"几率"(odds),反映了
x
x
x 作为正例的相对可能性,对几率取对数则得到"对数几率"(log odds,亦称 logit)
ln
y
1
−
y
(3.21)
\ln \frac{y}{1-y} \tag{3.21}
ln1−yy(3.21)
由此可看出,式(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
(3.22)
\ln \frac{p(y=1|x)}{p(y=0|x)} = w^Tx + b \tag{3.22}
lnp(y=0∣x)p(y=1∣x)=wTx+b(3.22)
显然有
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)
由式(3.22) 到 式(3.23) 的推导过程
ln y 1 − y = w T x + b ⇒ y 1 − y = e w T x + b ⇒ y = ( 1 − y ) e w T x + b = ( 1 + e w T x + b ) y = e w T x + b ⇒ y = e w T x + b 1 + e w T x + b \ln \frac{y}{1-y} = w^Tx + b \Rightarrow \frac {y}{1-y} = e^{w^Tx + b} \\ \Rightarrow y = (1-y)e^{w^Tx + b} = (1+e^{w^Tx+b})y = e^{w^Tx + b} \\ \Rightarrow y = \frac{e^{w^Tx + b}}{1 + e^{w^Tx + b}} ln1−yy=wTx+b⇒1−yy=ewTx+b⇒y=(1−y)ewTx+b=(1+ewTx+b)y=ewTx+b⇒y=1+ewTx+bewTx+b1 − y = 1 − e w T x + b 1 + e w T x + b = 1 1 + e w T x + b 1 - y = 1 - \frac {e^{w^Tx + b}}{1 + e^{w^Tx + b}} = \frac{1}{1 + e^{w^Tx + b}} 1−y=1−1+ewTx+bewTx+b=1+ewTx+b1
先验分布:根据一般的经验认为随机变量应该满足的分布,eg:根据往年的气候经验(经验),推测下雨(结果)的概率即为先验概率;
后验分布:通过当前训练数据修正的随机变量的分布,比先验分布更符合当前数据,eg: 有乌云(原因、观测数据)的时候下雨(结果)的概率即为后验概率;
似然估计:已知训练数据,给定了模型,通过让似然性极大化估计模型参数的一种方法,eg: 下雨(结果)的时候有乌云(观测数据、原因等)的概率即为似然概率;
后验分布往往是基于先验分布和极大似然估计计算出来的。贝叶斯公式(后验概率公式、逆概率公式):
p ( θ ∣ x ) = p ( x ∣ θ ) p ( θ ) p ( x ) p(\theta|x) = \frac {p(x|\theta)p{(\theta)}}{p(x)} p(θ∣x)=p(x)p(x∣θ)p(θ)
θ \theta θ:决定数据分布的参数(原因)x x x: 观察得到的数据(结果)
p ( x ) p(x) p(x): 证据因子evidence
p ( θ ) p(\theta) p(θ): 先验概率
p ( θ ∣ x ) p(\theta|x) p(θ∣x): 后验概率
p ( x ∣ θ ) p(x|\theta) p(x∣θ): 似然概率
后验概率= 似然函数 × \times × 先验概率 / 证据因子,证据因子(Evidence,也被称为归一化常数)可仅看成一个权值因子,以保证各类别的后验概率总和为1从而满足概率条件。
备注:
联合概率: P ( A B ) = P ( A ) P ( B ∣ A ) = P ( B ) P ( A ∣ B ) P(AB)=P(A)P(B|A)=P(B)P(A|B) P(AB)=P(A)P(B∣A)=P(B)P(A∣B)
条件概率: P ( A ∣ B ) = P ( A B ) ∣ P ( B ) P(A|B)=P(AB)|P(B) P(A∣B)=P(AB)∣P(B)
贝叶斯公式: P ( B ∣ A ) = P ( A ∣ B ) P ( B ) / P ( A ) P(B|A)=P(A|B)P(B)/P(A) P(B∣A)=P(A∣B)P(B)/P(A)
我们可通过"极大似然法"(maximum likelihood method) 来估计
w
w
w 和
b
b
b。给定数据集
{
(
x
i
,
y
i
)
}
i
=
1
m
\lbrace(x_i, y_i)\rbrace_{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)
即,令每个样本属于其真实标记的概率越大越好;
最大似然估计
总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
原理:
极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。
由于样本集中的样本都是独立同分布,可以只考虑一类样本集 D D D ,来估计参数向量 θ \theta θ 。记已知的样本集为:
D = { x 1 , x 2 , ⋯ , x N } D = \lbrace x_1, x_2, \cdots, x_N \rbrace D={x1,x2,⋯,xN}
似然函数(linkedhood function):联合概率密度函数 p ( D ∣ θ ) p(D|\theta) p(D∣θ) 称为相对于 { x 1 , x 2 , ⋯ , x n } \lbrace x_1, x_2, \cdots, x_n \rbrace {x1,x2,⋯,xn} 的 θ \theta θ 的似然函数,
ℓ ( θ ) = p ( D ∣ θ ) = p ( x 1 , x 2 , ⋯ , x N ∣ θ ) = ∏ i = 1 N p ( x i ∣ θ ) \ell(\theta) = p(D|\theta) = p(x_1, x_2, \cdots,x_N | \theta) = \prod_{i=1}^N p(x_i|\theta) ℓ(θ)=p(D∣θ)=p(x1,x2,⋯,xN∣θ)=i=1∏Np(xi∣θ)
概率密度函数定义
对于二元随机变量 ( X , Y ) (X,Y) (X,Y)的分布函数 F ( X , Y ) F(X, Y) F(X,Y),如果任意存在非负函数 f ( x , y ) f(x, y) f(x,y),使对于 x , y x, y x,y 有
F ( x , y ) = ∫ − ∞ x ∫ − ∞ y f ( u , v ) d u d v F(x, y) = \int_{-\infty}^x\int_{-\infty}^y f(u, v) dudv F(x,y)=∫−∞x∫−∞yf(u,v)dudv
称 ( X , Y ) (X, Y) (X,Y) 为二元随机变量 ( X , Y ) (X, Y) (X,Y)。并称 f ( x , y ) f(x, y) f(x,y) 为二元随机变量 ( X , Y ) (X, Y) (X,Y) 的联合概率密度函数。性质
f ( x , y ) ≥ 0 f(x, y) \ge 0 f(x,y)≥0;
∫ − ∞ ∞ ∫ − ∞ ∞ f ( x , y ) d x d y = 1 \int_{-\infty}^{\infty}\int_{-\infty}^{\infty} f(x, y)dxdy = 1 ∫−∞∞∫−∞∞f(x,y)dxdy=1;
设 D D D 是 x o y xoy xoy 平面上的区域,点 ( X , Y ) (X, Y) (X,Y) 落在 D D D 内的概率为:
P ( ( X , Y ) ∈ D ) = ∫ ∫ D f ( x , y ) d x d y P((X,Y) \in D) = \int\int_D f(x,y)dxdy P((X,Y)∈D)=∫∫Df(x,y)dxdy在 f ( x , y ) f(x, y) f(x,y) 的连续点 ( x , y ) (x, y) (x,y) ,有 ∂ 2 F ( x , y ) ∂ x ∂ y = f ( x , y ) \frac{\partial^2F(x,y)}{\partial x \partial y} = f(x, y) ∂x∂y∂2F(x,y)=f(x,y).
3.4 线性判别分析
线性判别分析(Liner Discriminant Analysis,简称 LDA) 是一种经典的线性学习方法。
LDA 的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
什么是线性判别分析呢?所谓的线性就是,我们要将数据点投影到直线上(可能是多条直线),直线的函数解析式又称为线性函数。通常直线的表达式为:
y = w T x y = w^Tx y=wTx
其实这里的 x x x 就是样本向量(列向量),如果投影到一条直线上 w w w 就是一个特征向量(列向量形式)或者多个特征向量构成的矩阵。至于 w w w 为什么是特征向量,后面我们就能推导出来。 y y y 为投影后的样本点(列向量)。
给定数据集 D = { ( x i , y i ) } i = 1 m , y i ∈ { 0 , 1 } D = \lbrace (x_i,y_i) \rbrace_{i=1}^m, y_i \in \lbrace 0,1 \rbrace D={(xi,yi)}i=1m,yi∈{0,1},令 X i 、 u i 、 Σ i X_i、u_i、\Sigma_i Xi、ui、Σi 分别表示第 i ∈ { 0 , 1 } i \in \lbrace0, 1\rbrace i∈{0,1} 类示例的集合、均值向量、协方差矩阵。
将数据投影到直线 w w w 上,则两类样本的中心在直线上的投影分别为 w T μ 0 w^T\mu_0 wTμ0 和 w T μ 1 w^T\mu_1 wTμ1 ,若将所有的样本点都投影到直线上,则两类样本的协方差分别为 w T Σ 0 w w^T\Sigma_0w wTΣ0w 和 w T Σ 1 w w^T\Sigma_1w wTΣ1w。
投影后同类样本协方差矩阵的求法:
∑ x ∈ D i ( w T x − w T μ i ) 2 = ∑ x ∈ D i ( w T ( x − x i ) ) 2 = ∑ x ∈ D i w T ( x − x i ) ( x − 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 - x_i))^2 = \sum_{x \in D_i} w^T(x - x_i)(x - x_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−xi))2=x∈Di∑wT(x−xi)(x−xi)Tw=wTx∈Di∑[(x−μi)(x−μi)T]w
上式的中间部分 ∑ 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便是同类样本投影前的协方差矩阵。由还可以看出同类样本投影前后协方差矩阵之间的关系。如果投影前的协方差矩阵为 Σ \Sigma Σ 则投影后的为 w T Σ w w^T\Sigma w wTΣw 。
欲使同类样例的投影点尽可能接近,可以让同类样本点的协方差矩阵尽可能小,即
w
T
Σ
0
w
+
w
T
Σ
1
w
w^T\Sigma_0 w + w^T \Sigma_1 w
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
(3.26)
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} \tag{3.26}
J=wT(∑0+∑1)w∣∣wTμ0−wTμ1∣∣22=wT(∑0+∑1)wwT(μ0−μ1)(μ0−μ1)Tw(3.26)
定义"类内散度矩阵"(within-class scatter matrix)
S
w
=
Σ
0
+
Σ
1
=
∑
x
∈
X
0
(
x
−
μ
0
)
(
x
−
μ
0
)
T
+
∑
x
∈
X
1
(
x
−
μ
1
)
(
x
−
μ
1
)
T
(3.26)
S_w = \Sigma_0 + \Sigma_1 \\ = \sum_{x \in X_0}(x - \mu_0)(x - \mu_0)^T + \sum_{x \in X_1}(x - \mu_1)(x - \mu_1)^T \tag{3.26}
Sw=Σ0+Σ1=x∈X0∑(x−μ0)(x−μ0)T+x∈X1∑(x−μ1)(x−μ1)T(3.26)
以及"类间散度矩阵"(between-class scatter matrix)
S
b
=
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
(3.27)
S_b = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T \tag{3.27}
Sb=(μ0−μ1)(μ0−μ1)T(3.27)
则式(3.26)可重写为
J
=
w
T
S
b
w
w
T
S
w
w
(3.28)
J = \frac {w^TS_bw}{w^TS_ww} \tag{3.28}
J=wTSwwwTSbw(3.28)
这就是 LDA 欲最大化的目标, 即
S
b
S_b
Sb 与
S
w
S_w
Sw 的"广义瑞利商"(generalized Rayleigh quotient).
Hermitian矩阵:又被称为厄尔米特矩阵,指的是共轭矩阵。矩阵中的每一个第 i i i 行第 j j j 列的元素都与第 j j j 行第 $ i$ 列的元素共轭相等。 A H A^H AH称为 A A A 的共轭转置, H e m i t i a n Hemitian Hemitian 矩阵,即 A H = A A^H = A AH=A,若矩阵中元素都是实数,则 A H = A T A^H = A^T AH=AT。
瑞利熵的定义(Rayleigh quotient):
R ( A , x ) = x H A x x H x R(A, x) = \frac {x^HAx}{x^Hx} R(A,x)=xHxxHAx
其中 x x x 为非零向量,而 A A A 为 n × n n \times n n×n的 H e r m i t i a n Hermitian Hermitian 矩阵。
瑞利熵 R ( A , x ) R(A, x) R(A,x)有一个非常重要的性质,即它的最大值等于矩阵 A A A最大的特征值,而最小值等于矩阵 A A A 的最小的特征值,也就满足
λ m i n ≤ x H A x x H x ≤ λ m a x \lambda_{min} \le \frac{x^HAx}{x^Hx} \le \lambda_{max} λmin≤xHxxHAx≤λmax
当向量 x x x 是标准正交基时,即满足 x H x = 1 x^Hx = 1 xHx=1 时,瑞利熵退化为 R ( A , x ) = x H A x R(A, x) = x^HAx R(A,x)=xHAx;广义瑞利熵(generalized Rayleigh quotient):
R ( A , B , x ) = x H A x x H B x R(A, B, x) = \frac{x^HAx}{x^HBx} R(A,B,x)=xHBxxHAx
其中, x x x 为非零向量,而 A , B A, B A,B 为 n × n n \times n n×n 的 H e r m i t i a n Hermitian Hermitian 矩阵。 B B B 为正定矩阵。令 x = B − 1 2 x ′ x = B^{-\frac{1}{2}}x' x=B−21x′,则分母转化为
x H B x = x ′ H ( B − 1 2 ) H B B − 1 2 x ′ = x ′ H B − 1 2 B B − 1 2 x ′ = x ′ H x x^HBx = x'^H(B^{-\frac{1}{2}})^HBB^{-\frac{1}{2}}x'=x'^HB^{-\frac{1}{2}}BB^{-\frac{1}{2}}x' = x'^Hx xHBx=x′H(B−21)HBB−21x′=x′HB−21BB−21x′=x′Hx
而分子转化为:
x H A x = x ′ H B − 1 2 A B − 1 2 x ′ x^HAx = x'^HB^{-\frac{1}{2}}AB^{-\frac{1}{2}}x' xHAx=x′HB−21AB−21x′
此时,我们的 R ( A , B , x ) R(A, B, x) R(A,B,x) 转化为 R ( A , B , x ′ ) R(A, B, x') R(A,B,x′):
R ( A , B , x ) = x ′ H B − 1 2 A B 1 2 x ′ x ′ H x ′ R(A, B, x) = \frac {x'^HB^{-\frac{1}{2}}AB^{\frac{1}{2}}x'}{x'^Hx'} R(A,B,x)=x′Hx′x′HB−21AB21x′
利用瑞利熵的性质,可知 R ( A , B , x ) R(A, B, x) R(A,B,x) 的最大值为 B − 1 2 A B − 1 2 B^{-\frac{1}{2}}AB^{-\frac{1}{2}} B−21AB−21 的最大特征值。
注意到上式(3.28)的分子和分母中都是关于
w
w
w 的二次项,因此式(3.28) 中的解与
w
w
w 的长度无关,只与方向有关,不失 一般性,令
w
T
S
w
w
=
1
w^TS_w w = 1
wTSww=1,则式(3.28)等价于
min
w
−
w
T
S
b
w
s
.
t
.
w
T
S
w
w
=
1
(3.29)
\min \limits_{w} -w^TS_bw \\ s.t. w^TS_ww = 1 \tag{3.29}
wmin−wTSbws.t.wTSww=1(3.29)
由拉格朗日乘子法,上式等价于
S
b
w
=
λ
S
w
w
(3.30)
S_bw = \lambda S_ww \tag{3.30}
Sbw=λSww(3.30)
其中,
λ
\lambda
λ 是拉格朗日乘子,注意到
S
b
w
S_bw
Sbw 的方向恒为
μ
0
−
μ
1
\mu_0 - \mu_1
μ0−μ1,不妨令
S
b
w
=
λ
(
μ
0
−
μ
1
)
(3.31)
S_bw = \lambda(\mu_0 - \mu_1) \tag{3.31}
Sbw=λ(μ0−μ1)(3.31)
代入式(3.30)即得
w
=
S
w
−
1
(
μ
0
−
μ
1
)
(3.32)
w = S_w^{-1}(\mu_0 - \mu_1) \tag{3.32}
w=Sw−1(μ0−μ1)(3.32)
考虑到数值解的稳定性,在实践中通常是对
S
w
S_w
Sw 进行奇异值分解,即
S
w
=
U
Σ
V
T
S_w = U\Sigma V^T
Sw=UΣVT,这里
Σ
\Sigma
Σ 是一个实对角矩阵,其对角线上的元素是
S
w
S_w
Sw 的奇异值,然后再由
S
w
−
1
=
V
Σ
−
1
U
T
S_w^{-1} = V\Sigma^{-1}U^T
Sw−1=VΣ−1UT 得到
S
w
−
1
S_w^{-1}
Sw−1 。
值得一提的是,LDA 可从贝叶斯决策理论的角度来阐释,并可证明,当两类数据同先验、满足高斯分布且协方差相等时,LDA 可达到最优分类 。
3.5 多分类学习
不失一般性,考虑 N N N 个类别 C 1 , C 2 , ⋯ , C N C_1, C_2, \cdots, C_N C1,C2,⋯,CN 多分类学习的基本思路是"拆解法",即将多分类任务拆分为若干个二类任务求解。
最经典的拆分策略有三种:“一对多(One vs. One 简称 OvO)”、“一对其余”(One vs. Rest,简称 OvR) 和"多对多"(Many vs. Many, 简称 MvM)。
3.6 类别不平衡问题
类别不平衡(class-imbalance) 就是指分类任务中不同类别的训练样例数目差别很大的情况。即使原始问题中不同类别的训练样例数目相当,在使用 O v R OvR OvR 、 M v M MvM MvM 策略后产生的二分类任务仍可能出现类别不平衡现象,因此有必要了解类别不平衡性处理的基本方法。
从线性分类器的角度讨论容易理解,在我们用 y = w T x + b y = w^Tx + b y=wTx+b 对新样本 x x x 进行分类时,事实上是在用预测出的 y y y 值与一个阈值进行比较,例如通常在 y > 0.5 y > 0.5 y>0.5 时,判别为正例,否则为反例。 y y y 实际上表达了正例的可能性,几率 y 1 − y \frac {y}{1-y} 1−yy 则反映了正例可能性与反例可能性之比值,阈值设置为 0.5 恰表明分类器认为真实正、反例可能性相同,即分类器决策规则为
若 y 1 − y > 1 \frac {y}{1-y} > 1 1−yy>1 则,预测为正例。(3.33)
然而,当训练集中正、反例数目不同时,令 m + m^+ m+ 表示正例数目, m − 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+ 则预测为正例。(3.34)
但是,我们的分类器是基于式(3.33)进行决策,因此,需要其预测值进行调整,使其在基于式(3.34)决策时,实际是在执行式(3.34)。要做到这一点很容易,只需令
y
′
1
−
y
′
=
y
1
−
y
×
m
−
m
+
(3.35)
\frac {y'}{1 - y'} = \frac {y}{1-y} \times \frac {m^-}{m^+} \tag{3.35}
1−y′y′=1−yy×m+m−(3.35)
这就是类别不平衡学习的一个基本策略 —— “再缩放"(rescaling)。
再缩放的思想虽然简单,但实际操作却并不平凡,主要是因为“训练集是真实样本总体的无偏采样”,这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率。现有技术大体上有三类做法:第一类是直接对训练集里的瓜类样例进行“欠采样”(undersampling),即去除一些反例使得正、反例数目接近,然后再进行学习;第二类是对训练集里的正类样例进行”过采样“(oversampling),即增加一些正例使得正、反例数目接近,然后再进行学习;第三类是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式 ( 3.48 ) (3.48) (3.48)嵌入到决策过程中,称为"阈值移动"(threshold-moving)。
欠采样与过采样
欠采样算法时间开销通常远小于过采样,因为欠采样丢弃了很多反例,使得分类器训练集远小于初始训练集,而过采样法增加了很多正例,其训练集大于初始训练集。
过采样算法不能简单地对初始正例样本进行重复采样,否则会导致严重的过拟合;过采样法的代表性算法 SMOTE 是通过对训练集里的正例进行插值来产生额外的正例。
欠采样法若随机丢弃反例,可能丢失一些重要信息;欠采样法 的代表性算法 EasyEnsemble 则是利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息。
值得一提的是,“再缩放”也是"代价敏感学习"(cost-sensitive learning)的基础。在代价敏感学习中将式 ( 3.35 ) (3.35) (3.35) 中的 m − / m + {m^-}/{m^+} m−/m+ 用 c o s t + / c o s t − {cost^+} / {cost^-} cost+/cost− 代替即可,其中 c o s t + cost^+ cost+ 是将正例误分为反例的代价, c o s t − cost^- cost− 是将反例误分为正例的代价。