统计学习方法
统计学习
监督学习——本书主要部分
基本概念
输入空间、输出空间、特征空间
- 输入空间:输入所有可能取值的集合,习惯表示为 X X X
- 输出空间:输出所有可能取值的集合习惯表示为 Y Y Y
- 特征空间:特征向量存在的空间
- 输入变量一般使用 X X X表示,输出变量一般使用 Y Y Y表示。输入变量所取的值一般使用 x x x表示,输出变量所取得值使用 y y y
- 以上的x我们可以使用特征向量记为
- x = ( x ( 1 ) , x ( 2 ) , x . . . , x ( i ) , x ( n ) ) T x = (x^{(1)} ,x^{(2)},x...,x^{(i)},x^{(n)})^T x=(x(1),x(2),x...,x(i),x(n))T 其中 x i x^{i} xi表示x的第 i i i个特征,注意本书中 x i x_i xi表示多个输入变量的第 i i i个,即 x i = ( x i ( 1 ) , x i ( 2 ) , . . . x i ( n ) ) T x_i = (x_i^{(1)},x_i^{(2)},...x_i^{(n)})^T xi=(xi(1),xi(2),...xi(n))T
- 训练集一般表示为 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x n , y n ) T = {(x_1,y_1),(x_2,y_2),...(x_n,y_n)} T=(x1,y1),(x2,y2),...(xn,yn)
- 回归问题: X X X Y Y Y 连续——> 回归问题
- 分类问题: X X X Y Y Y 离散——> 分类问题
联合概率分布
P ( X , Y ) P(X,Y) P(X,Y)代表输入与输出的随机变量遵循联合概率分布
假设空间
模型属于输入空间和输出空间的映射集合,这个集合就是假设空间,假设空间确定意味着学习范围的确定
问题的形式化
监督学习分为 学习 和 预测 两个过程,如下图所示:
学习系统中输入参数 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x n , y n ) T = {{(x_1,y_1),(x_2,y_2),...(x_n,y_n)}} T=(x1,y1),(x2,y2),...(xn,yn) 代表样本或者样本点。 x i ϵ X ⊆ R n x_i \epsilon X \subseteq R^n xiϵX⊆Rn 输入的观测值, y ϵ Y y \epsilon Y yϵY输出的观测值,也称为输出
模型中处理可以为决策函数 $ Y = f(x)$ 或 条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)
统计学习三要素
方 法 = 模 型 + 策 略 + 算 法 方法 = 模型 + 策略 + 算法 方法=模型+策略+算法
模型
假设空间有
F
F
F表示,假设空间可以定义为决策函数的集合
F
=
{
f
∣
Y
=
f
(
X
)
}
F = \{f|Y=f(X)\} \space\space
F={f∣Y=f(X)}
其中
X
和
Y
X 和 Y
X和Y是定义在输入空间和输出空间上的变量,这时
F
F
F通常是由一个参数向量决定的函数族:
F
=
{
f
∣
Y
=
f
θ
(
X
)
,
θ
ϵ
R
n
}
F \space = \{f|Y = f_{\theta}(X),\theta \epsilon \space R^n\}
F ={f∣Y=fθ(X),θϵ Rn}
参数向量
θ
\theta
θ取值于
n
n
n维欧式空间
R
n
R^n
Rn,称为参数空间。
假设空间也可以为条件概率的集合
F
=
{
P
∣
P
(
Y
∣
X
)
}
F =\{P | P(Y|X)\}
F={P∣P(Y∣X)}
这时
F
F
F通常是由一个参数向量决定的条件概率分布族:
F
=
{
P
∣
P
θ
(
Y
∣
X
)
,
θ
ϵ
R
n
}
F \space = \{P|P_{\theta}(Y|X),\theta \epsilon \space R^n\}
F ={P∣Pθ(Y∣X),θϵ Rn}
策略
-
损失函数和风险函数
-
用一个损失函数或代价函数来度量预测错误程度,损失函数是 f ( X ) f(X) f(X)和 Y Y Y的非负实值函数,记为 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X)),主要有以下几种
-
0-1损失函数
{ 1 , Y ≠ f ( X ) 0 Y = f ( X ) \begin{cases} 1,\space \space Y \neq f(X) \\ 0 \space\space \space Y = f(X)\end{cases} {1, Y=f(X)0 Y=f(X) -
平方损失函数
( Y − f ( X ) ) 2 (Y - f(X))^2 (Y−f(X))2 -
绝对损失函数
∣ Y − f ( X ) ∣ |\space Y - f(X)\space| ∣ Y−f(X) ∣ -
对数损失函数
− l o g P ( Y ∣ X ) -logP(Y|X) −logP(Y∣X)
损失函数期望(风险函数或期望损失):
R e x p ( f ) = E [ L ( Y , f ( X ) ) ] = ∫ X × Y L ( Y , f ( X ) ) P ( x , y ) d x d y R_{exp}(f) = E[L(Y,f(X))] = \int_{X\times Y}L(Y,f(X))P(x,y)dxdy Rexp(f)=E[L(Y,f(X))]=∫X×YL(Y,f(X))P(x,y)dxdy -
-
-
经验风险最小化和结构风险最小化——由以上的损失函数期望得出
这里有点难理解,需要克服
-
经验风险——求解最优化问题
min f ϵ F 1 N L ( y i , f ( x i ) ) \min \limits_{f \epsilon F} \frac{1}{N}L(y_i,f(x_i)) fϵFminN1L(yi,f(xi))
其中 F F F代表假设空间;当样本容量足够大时,经验风险最小化能保证很好的学习效果,如
极大拟然函数
;而样本容量比较小,经验风险最小化效果就未必很好,出产生“过拟合”现象
-
结构风险最小化
-
为了防止过拟合而提出来的策略,结构风险最小化相当于正则化
R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}(f) = \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+ \lambda J(f) Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
J ( f ) J(f) J(f)模型的复杂度, λ \lambda λ代表系数,用来权衡经验风险和模型复杂度,如贝叶斯估计中的最大后验概率估计
-
求解最优化问题
min f ϵ F 1 N L ( y i , f ( x i ) ) + λ J ( f ) \min \limits_{f \epsilon F} \frac{1}{N}L(y_i,f(x_i)) + \lambda J(f) fϵFminN1L(yi,f(xi))+λJ(f)
-
-
算法
略
模型评估与模型选择
训练误差与测试误差
顾名思义:训练误差与测试误差即模型训练和模型测试误差
过拟合和模型选择
过拟合:对于已知数据预测十分准确,但是对于未知数据预测效果不太理想
正则化与交叉验证
正则化
正则化一般具有如下形式
min
f
ϵ
F
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\min \limits_{f \epsilon F} \frac{1}{N}L(y_i,f(x_i)) + \lambda J(f)
fϵFminN1L(yi,f(xi))+λJ(f)
第一项就是之前所述的经验风险,第二项则是我们所说的罚值
正则化作用是选择 经验风险与模型复杂度较小 的模型。符合奥卡姆剃刀原理
:能够解释已知数据并且十分简单才是最好的模型
- 比如:回归问题中,损失函数是平方损失,正则化项可以是参数向量的
L
2
L_2
L2范数
L ( w ) = 1 N ∑ i = 1 N ( f ( x i , w ) − y i ) 2 + λ 2 ∣ ∣ w ∣ ∣ 2 ∣ ∣ w ∣ ∣ 表 示 参 数 向 量 w 的 L 2 范 数 L(w)=\frac{1}{N}\sum_{i=1}^N(f(x_i,w)-y_i)^2 +\frac{\lambda}{2}||w||^2 \space \space ||w||表示参数向量w的L_2范数 L(w)=N1i=1∑N(f(xi,w)−yi)2+2λ∣∣w∣∣2 ∣∣w∣∣表示参数向量w的L2范数
正则化项也可以是参数向量的 L 1 L_1 L1范数:
L ( w ) = 1 N ∑ i = 1 N ( f ( x i , w ) − y i ) 2 + λ ∣ ∣ w ∣ ∣ ∣ ∣ w ∣ ∣ 表 示 参 数 向 量 w 的 L 1 范 数 L(w)=\frac{1}{N}\sum_{i=1}^N(f(x_i,w)-y_i)^2 +{\lambda}||w|| \space \space ||w||表示参数向量w的L_1范数 L(w)=N1i=1∑N(f(xi,w)−yi)2+λ∣∣w∣∣ ∣∣w∣∣表示参数向量w的L1范数
交叉验证
将数据集分为训练集、验证集、测试集。训练集用来训练模型,验证集用来模型的选择,而测试集用来对学习方法进行评估。
- 简单交叉验证
- S折交叉验证
- 留一交叉验证
泛化能力
泛化误差
设定学到模型为
f
^
\widehat{f}
f
,那么用这个未知数据预测的误差即为泛化误差
R
e
x
p
(
f
)
=
E
[
L
(
Y
,
f
(
X
)
)
]
=
∫
X
×
Y
L
(
Y
,
f
^
(
X
)
)
P
(
x
,
y
)
d
x
d
y
R_{exp}(f) = E[L(Y,f(X))] = \int_{X\times Y}L(Y,{\widehat{f}}(X))P(x,y)dxdy
Rexp(f)=E[L(Y,f(X))]=∫X×YL(Y,f
(X))P(x,y)dxdy
泛化误差反映了学习方法的泛化能力,如果一个方法比另一种方法学习的模型具有更小的泛化误差,则该方法更有效
。泛化误差即学习到模型的期望风险
泛化误差上界
泛化误差上界:研究泛化误差的概率上界
用途:通过比较两种模型的泛化误差上界
的大小来比较它们的优劣。
-
性质:
- 样本容量的函数,泛化上界趋于0
- 假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大
-
example:
-
假设数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x n , y n ) T = {{(x_1,y_1),(x_2,y_2),...(x_n,y_n)}} T=(x1,y1),(x2,y2),...(xn,yn),假设空间是函数的有限集合 F = f 1 , f 2 , … , f d F = {f_1,f_2,\dots,f_d} F=f1,f2,…,fd d代表函数个数
- R ( f ) R(f) R(f)测试集期待风险 R ^ ( f ) \widehat{R}(f) R (f)训练集经验风险
-
R ( f ) = E [ L ( Y , f ( X ) ) ] R(f)=E[L(Y,f(X))] R(f)=E[L(Y,f(X))]
R ^ ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) \widehat{R}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i)) R (f)=N1i=1∑NL(yi,f(xi))
经 验 风 险 最 小 化 函 数 : f N = a r g min f ϵ F R ^ ( f ) 经验风险最小化函数: \space \space \space f_N = arg\space \min \limits_{f\epsilon F}\widehat{R}(f) 经验风险最小化函数: fN=arg fϵFminR (f)
不过,我们更关心$f_N$的泛化能力
$$
R(f_N) = E[L(Y,f_N(X))]
$$
```期望风险和经验风险```
-
泛化误差上界
- 证明需要使用到Hoeffding不等式,
需要重点注明
——重点关注
R ( f ) ≤ R ^ ( F ) + ε ( d , N , σ ) R(f) \leq \widehat{R}(F) + \varepsilon(d,N,\sigma) R(f)≤R (F)+ε(d,N,σ)
- 证明需要使用到Hoeffding不等式,
生成模型和判别模型
- 生成方法由数据学习联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),然后求出条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)作为预测模型,即生成模型(
X、Y都是随机变量
):
P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(Y∣X)=P(X)P(X,Y)
典型的生成模型有:朴素贝叶斯模型和隐马尔可夫模型
-
判别方法有数据直接学习决策函数 f ( X ) f(X) f(X)或条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)作为预测的模型,即判别模型。
典型的判别模型:k近邻法、感知机、决策树、逻辑回顾模型、最大熵模型、提升方法和条件随机场等
分类问题
分类问题输出变量为 Y Y Y取有限个离散值时,预测问题便成为分类问题。注:输入变量 X X X可以为连续、也可以为离散。
分类器
:监督学习从数据中学习一个分类模型或分类决策函数
分类(类)
:分类器对新的输入进行输出预测
评价分类器指标一般使用分类准确率来表示:TP、FN、FP、TN
分类方法包括:k近邻法、感知法、朴素贝叶斯法、决策树、决策列表、支持向量机、提升方法、贝叶斯网络、神经网络、Winnow等
标注问题
分类问题的一个推广,标注问题复杂的结构预测。
example: 文本分类
常用的统计学习方法:隐马尔可夫模型、条件随机场
回归模型
输入变量和输出变量之间映射的函数。回归问题的学习等价于函数拟合
- 分类:
- 按照输入变量的个数:一元回归和多元回归
- 按照输入变量和输出变量之间的关系:线性回归和非线性回归
感知机
感知机是 二类分类 的 线性分类模型,输入为实例的特征向量,输出为实例的类别,取值为(-1,1) 属于判别模型
感知机模型——判别模型
定义及其引入
定义:假设输入空间(特征空间)是 X ⊆ R n X\subseteq R^n X⊆Rn,输出空间是 Y = { + 1 , − 1 } Y = \{{+1, -1\}} Y={+1,−1}.输入 x ϵ X x\epsilon X xϵX表示实例的特征向量,对应于输入空间(特征空间)的点;输出 y ϵ Y y\epsilon Y yϵY表示实例的类别。
由输入空间到输出空间为以下公式
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
(2-1)
f(x)=sign(w·x+b) \tag{2-1}
f(x)=sign(w⋅x+b)(2-1)
称之为感知机,其中,
w
、
b
w、b
w、b称之为感知机模型参数,
w
ϵ
R
n
w\epsilon R^n
wϵRn 叫做权值或权值向量,
b
ϵ
R
b \epsilon R
bϵR 偏置,
w
⋅
x
w·x
w⋅x 表示内积,而sign代表符合函数
s
i
g
n
(
x
)
=
{
+
1
,
x
≥
0
−
1
,
x
<
0
(2-2)
sign(x)=\begin{cases}+1,\space \space x \geq0 \\ -1, \space \space x < 0 \end{cases} \tag{2-2}
sign(x)={+1, x≥0−1, x<0(2-2)
几何解释
w ⋅ x + b = 0 (2-3) w·x + b =0 \tag{2-3} w⋅x+b=0(2-3)
超平面知识的引入,这里需要了解超平面是什么
对应于特征空间 R n R^n Rn 一个超平面 S S S,其中 w w w是超平面的法向量, b b b 是超平面的截距。这个超平面将特征空间划分为两个部分。我们也称超平面 S S S为分离超平面。
感知机学习策略
数据集的线性可分性
线性可分数据集:即可以完全正确划分到超平面的两侧
感知机学习策略
确定分离超平面——确定感知机模型参数 w , b w,b w,b ,需要确定一个学习策略(定义损失函数并损失最小化)
损失函数我们可以考虑误分类点的个数,但这样的损失函数不是参数
w
,
b
w,b
w,b 的连续可导函数,不易优化。那我们可以换一种思路:计算误分类点到超平面的距离。因此,做以下定义,首先写出输入空间
R
n
R^n
Rn中任一点
x
0
x_0
x0到超平面
S
S
S的距离:
1
∣
∣
w
∣
∣
∣
w
⋅
x
0
+
b
∣
\frac{1}{||w||}|w·x_0+b|
∣∣w∣∣1∣w⋅x0+b∣
其中,
∣
∣
w
∣
∣
||w||
∣∣w∣∣是
w
w
w的
L
2
L_2
L2范数,误差点到超平面的距离为
−
1
∣
∣
w
∣
∣
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||}y_i(w·x_i+b)
−∣∣w∣∣1yi(w⋅xi+b)
假设超平面
S
S
S的误分类点集合为
M
M
M,那所有误分类点到超平面距离为
−
1
∣
∣
w
∣
∣
∑
x
ϵ
M
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||}\sum_{x\epsilon M}y_i(w·x_i+b)
−∣∣w∣∣1xϵM∑yi(w⋅xi+b)
不考虑系数
,得到感知机学习的损失函数——这里不太理解,为什么可以忽略参数
所以感知机
s
i
g
n
(
w
⋅
x
+
b
)
sign(w·x+b)
sign(w⋅x+b)学习的损失函数定义为
L
(
w
,
b
)
=
−
∑
x
i
ϵ
M
y
i
(
w
⋅
x
i
+
b
)
(①)
L(w,b)=-\sum_{x_i\epsilon M}y_i(w·x_i+b) \tag{①}
L(w,b)=−xiϵM∑yi(w⋅xi+b)(①)
其中
M
M
M代表误分类的个数集合,这个损失函数就是感知机学习的经验风险函数
显然
,损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)是非负的,并且它是连续可导的。感知机学习的策略是在假设空间中选取使损失函数①最小的
w
,
b
w,b
w,b,即感知机模型
感知机学习算法
▽ \bigtriangledown ▽
对于感知机学习算法,给定一组训练集
T
=
{
(
x
1
,
y
1
)
,
…
,
(
x
n
,
y
n
)
}
T=\{ (x_1,y_1),\dots,(x_n,y_n) \}
T={(x1,y1),…,(xn,yn)},
x
ϵ
X
=
R
n
,
y
ϵ
Y
=
−
1
,
+
1
,
i
=
1
,
2
,
…
,
n
x\epsilon X=R^n,y\epsilon Y={-1,+1},i=1,2,\dots,n
xϵX=Rn,yϵY=−1,+1,i=1,2,…,n, 求解参数
w
,
b
w,b
w,b 问题,使得以下损失函数极小化问题的解
min
w
,
b
=
−
∑
x
i
ϵ
M
y
i
(
w
⋅
x
+
b
)
(2-5)
\min_{w,b}=-\sum_{x_i\epsilon M}y_i(w·x+b)\tag{2-5}
w,bmin=−xiϵM∑yi(w⋅x+b)(2-5)
采用随机梯度下降法
,随机梯度下降法不是一次使得
M
M
M的所有误分类点的梯度下降,而是一次随机选取一个误差点使其梯度下降
假设误分类点集合
M
M
M固定,那损失函数为
▽
w
L
(
w
,
b
)
=
−
∑
x
i
ϵ
M
y
i
x
i
\bigtriangledown_{w} L(w,b)=-\sum_{x_i\epsilon M}y_ix_i
▽wL(w,b)=−xiϵM∑yixi
▽ b L ( w , b ) = − ∑ x i ϵ M y i \bigtriangledown_b L(w,b)=-\sum_{x_i \epsilon M}y_i ▽bL(w,b)=−xiϵM∑yi
随机选取一个误差点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi) 进行更新,对
w
,
b
w, b
w,b 进行更新:
w
←
w
+
η
y
i
x
i
w \leftarrow w+\eta y_i x_i
w←w+ηyixi
b ← b + η y i b \leftarrow b + \eta y_i b←b+ηyi
其中,
η
\eta
η是步长,统计学习中也称之为
l
e
a
r
n
i
n
g
_
r
a
t
e
learning\_ rate
learning_rate ,通过不断使得损失函数减少
,直到为0。所以得出以下算法:
算法 2.1(感知机学习算法的原始形式)
输入: T = { ( x 1 , y 1 ) , … , ( x n , y n ) } T=\{ (x_1,y_1),\dots,(x_n,y_n) \} T={(x1,y1),…,(xn,yn)}, x ϵ X = R n , y ϵ Y = − 1 , + 1 , i = 1 , 2 , … , n x\epsilon X=R^n,y\epsilon Y={-1,+1},i=1,2,\dots,n xϵX=Rn,yϵY=−1,+1,i=1,2,…,n, 学习率 η ( 0 < η ≤ 1 ) \eta (0 < \eta \leq 1) η(0<η≤1)
输出: w , b w, b w,b 感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x + b) f(x)=sign(w⋅x+b)
-
选取初值 w 0 , b 0 ) w_0,b_0) w0,b0)
-
在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
-
如果 y i ( w ⋅ x i + b ) ≤ 0 y_i(w·x_i + b) \leq 0 yi(w⋅xi+b)≤0
w ← w + η y i x i w \leftarrow w+\eta y_i x_i w←w+ηyixib ← b + η y i b \leftarrow b + \eta y_i b←b+ηyi
-
转着(2),直到训练集中没有误分类点