全部笔记的汇总贴:统计学习方法读书笔记汇总贴
一、感知机模型
假设输入空间(特征空间)是
X
⊆
R
n
X\subseteq \R^n
X⊆Rn, 输出空间是
Y
=
{
+
1
,
−
1
}
Y=\{+1,-1\}
Y={+1,−1}。输入
x
∈
X
x\in X
x∈X表示实例的特征向量,对应于输入空间(特征空间)的点; 输出
y
∈
Y
y\in Y
y∈Y表示实例的类别。 由输入空间到输出空间的如下函数:
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)
称为感知机。其中,
w
w
w和
b
b
b为感知机模型参数,
w
∈
R
n
w\in \R^n
w∈Rn 叫作权值(weight )或权值向 量(weight vector ) ,
b
∈
R
b\in\R
b∈R叫作偏置(bias),
w
•
x
w • x
w•x表示
ω
ω
ω和
x
x
x的内积。sign是符号函数, 即
s
i
g
n
(
x
)
=
{
+
1
,
x
≥
0
−
1
,
x
<
0
sign(x)=\left\{\begin{matrix} +1,x\ge0\\ \\-1,x<0\end{matrix}\right.
sign(x)=⎩⎨⎧+1,x≥0−1,x<0
感知机预测,就是通过学习得到的感知机模型,对于新的输入实例给出其对应的输出类别。
二、感知机学习策略
数据集一定要线性可分。感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。为了找出这样的超平面,即确定感知机模型参数 w , b w,b w,b,需要确定一个学习策略,即定义(经验)损失函数井将损失函数极小化。
选择损失函数的两种原则:
- 误分类点的总数
- 误分类点到超平面 S S S的总距离(感知机是通过这种方法)
对于误分类点数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),它的
y
i
y_i
yi一定与
w
⋅
x
i
+
b
w\cdot x_i+b
w⋅xi+b异号,即:
−
y
i
(
w
⋅
x
i
+
b
)
>
0
-y_i(w\cdot x_i+b)>0
−yi(w⋅xi+b)>0
所以误分类点
x
i
x_i
xi到超平面
S
S
S的距离为,
−
1
∣
∣
w
∣
∣
y
i
(
w
⋅
x
i
+
b
)
-\frac1{||w||}y_i(w\cdot x_i+b)
−∣∣w∣∣1yi(w⋅xi+b)
其中,
∣
∣
w
∣
∣
||w||
∣∣w∣∣是
w
w
w的
L
2
L_2
L2范式。我们假设误分类点的集合为
M
M
M,所以误分类点到超平面的总距离为,
−
1
∣
∣
w
∣
∣
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
-\frac1{||w||}\sum_{x_i\in M}y_i(w\cdot x_i+b)
−∣∣w∣∣1xi∈M∑yi(w⋅xi+b)
不考虑
1
∣
∣
w
∣
∣
\frac1{||w||}
∣∣w∣∣1,就得到感知机学习的损失函数,即,
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b)
L(w,b)=−xi∈M∑yi(w⋅xi+b)
这个损失函数就是感知机学习的经验风险函数。如果没有误分类点 ,损失函数值是0。而且, 误分类点越少,误分类点离超平面越近,损失函数值 就越小。
三、感知机学习算法
原始形式
假设误分类点集合
M
M
M是固定的,那么损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)的梯度由
∇
w
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
x
i
∇
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\nabla _w L(w,b)=-\sum_{x_i\in M} y_ix_i\\\nabla _b L(w,b)=-\sum_{x_i\in M} y_i
∇wL(w,b)=−xi∈M∑yixi∇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
b
′
=
b
+
η
y
i
w'=w+\eta y_ix_i\\b'=b+\eta y_i
w′=w+ηyixib′=b+ηyi
其中
η
(
0
<
η
≤
1
)
\eta(0<\eta\le1)
η(0<η≤1)是步长,在统计学习 中又称为学习率<learning rate)。这样,通过迭代可以期待损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)不断减小,直到为0。
算法为:
- 选取初值 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\cdot x_i+b)\le0
yi(w⋅xi+b)≤0,
w ← w + η y i x i b ← b + η y i w\leftarrow w+\eta y_ix_i\\b\leftarrow b+\eta y_i w←w+ηyixib←b+ηyi - 转至2,直至训练集中没有误分类点。
可以自行推算一下P40的例2.1。
算法原始形式的收敛性
算法的收敛性证明也可以之间看P42的定理2.1。(其实也不是很重要,根据经验分析很容易可以想到,对于一个线性可分的数据集,最后的误分类次数 k k k一定是有一个上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。也就是说, 当训练数据集线性可分时,感知机学习算法原始形式法代是收敛的。)
对偶形式
逐步修改
w
,
b
w,b
w,b,设修改
n
n
n次,则
w
,
b
w, b
w,b关于
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的增量分别是
α
i
y
i
x
i
\alpha_iy_ix_i
αiyixi和
α
i
y
i
\alpha_iy_i
αiyi,这里
α
i
=
n
i
η
\alpha_i=n_i\eta
αi=niη。这样,从学习过程不难看出,最后学习到的
w
,
b
w,b
w,b可以分别表示为
w
=
∑
i
=
1
N
α
i
y
i
x
i
b
=
∑
i
=
1
N
α
i
y
i
w=\sum_{i=1}^N\alpha_iy_ix_i\\b=\sum_{i=1}^N\alpha_iy_i
w=i=1∑Nαiyixib=i=1∑Nαiyi
这里,
α
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\alpha_i\ge0,i=1,2,\cdots,N
αi≥0,i=1,2,⋯,N,当
η
=
1
\eta=1
η=1时,表示第
i
i
i个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。也就是说,这样的实例对学习结果影响最大。
我们可以推导一遍书P45的例2.2,可以很快的掌握对偶形式的感知机算法的优化过程。
下一章传送门:统计学习方法读书笔记(三)-k近邻法