“读书百遍,其义自现“————《三国志·魏志·董遇传》
再读李航老师的《统计学习方法》,上一次没看懂的地方,这次居然豁然开朗。看来,书果然是要重复读的。
从这篇开始,将陆续记录《统计学习方法》的读书笔记,希望再次加深印象和理解,如果能给同道带来一些帮助,则是更好。
进入主题吧。
先回顾一下统计学习方法三要素:模型、策略、算法。(放在这里做定海神针)
对于感知机来说,这三个要素分别是:
—- 模型:f(x) = sign(
w⋅x
w
⋅
x
+b),是线性分类模型。其中sign(x)是符号函数,当
x⩾0时,其值为+1,当x<0时,其值为−1。模型的几何解释:w⋅x+b=0
x
⩾
0
时
,
其
值
为
+
1
,
当
x
<
0
时
,
其
值
为
−
1
。
模
型
的
几
何
解
释
:
w
⋅
x
+
b
=
0
是将正负两类样本分离的超平面。
—- 策略:找到使(经验)损失函数:L(w,b) =
−∑Mi=0yi(w⋅xi+b)
−
∑
i
=
0
M
y
i
(
w
⋅
x
i
+
b
)
极小化的w,b,其中M为误分类点的个数。损失函数由误分类点到分离超平面的总距离获得。
—- 算法:随机梯度下降法,包括原始形式和对偶形式。
原始形式:
由策略中的损失函数得:
∇wL(w,b)
∇
w
L
(
w
,
b
)
=
−∑Mi=0yixi
−
∑
i
=
0
M
y
i
x
i
,
∇bL(w,b)
∇
b
L
(
w
,
b
)
=
−∑Mi=0yi
−
∑
i
=
0
M
y
i
,其中M为误分类点的个数。随机选取一个误分类点(
xi,yi
x
i
,
y
i
),对w,b进行更新:
w
←
←
w+ηyixi,b
←
←
b+ηyi
伪代码:
输入:训练集和学习率(详细内容略,参考教材)
输出:w,b; 感知机模型
f(x)=sign(w⋅x+b)
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
1)选取初值,
w0,b0
w
0
,
b
0
(可设置为0,但是在神经网络中,w的初始值不能设置为0,会造成隐藏层计算的都是相同的内容,失去意义。详參吴恩达深度学习课程)
2)选取数据
(xi,yi)
(
x
i
,
y
i
)
3)将数据代入模型,如果
yi(w⋅xi+b)<0
y
i
(
w
⋅
x
i
+
b
)
<
0
,即为误分类点,更新w,b
w
←
←
w+ηyixi,b
←
←
b+ηyi
4)转至2),直到训练集中没有误分类点。
对偶形式:
其基本想法是把w,b用实例
xi,yi
x
i
,
y
i
表示出来。假设其初始值均为0。根据w,b的更新规则:
w←w+ηyixi,b←b+ηyi
w
←
w
+
η
y
i
x
i
,
b
←
b
+
η
y
i
误分类点
(xi,yi)
(
x
i
,
y
i
)
经过ni次w、b的更新,得以正确分类,则此时:
w=w0+niηyixi=niηyixi,b=b0+niηyi=niηyi
w
=
w
0
+
n
i
η
y
i
x
i
=
n
i
η
y
i
x
i
,
b
=
b
0
+
n
i
η
y
i
=
n
i
η
y
i
设niη=αi,则w=αiyixi,b=αiyi
设
n
i
η
=
α
i
,
则
w
=
α
i
y
i
x
i
,
b
=
α
i
y
i
能将所有数据正常划分的w,b则表示为:
w=∑Ni=1αiyixi,b=∑Ni=1αiyi(N为训练集样本个数)
w
=
∑
i
=
1
N
α
i
y
i
x
i
,
b
=
∑
i
=
1
N
α
i
y
i
(
N
为
训
练
集
样
本
个
数
)
伪代码:
输入:训练集和学习率(详细内容略,参考教材)
输出:α,b; 感知机模型f(x)=sign(
∑Nj=1αjyjxj⋅x+b)(N为训练集样本个数)
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
+
b
)
(
N
为
训
练
集
样
本
个
数
)
1)初值
w0,b0设置为0
w
0
,
b
0
设
置
为
0
.
2)选取数据
(xi,yi)
(
x
i
,
y
i
)
3)将数据代入模型,如果
yi(∑Nj=1αjyjxj.xi+b)<0
y
i
(
∑
j
=
1
N
α
j
y
j
x
j
.
x
i
+
b
)
<
0
,即为误分类点,更新
αi
α
i
(注意这里的角标是i,不是j。即只更新当前样本对应的α),b:
αi←αi+η(解释:αi=niη,那么自然是更新一次,就加一次η),b←b+ηyi
α
i
←
α
i
+
η
(
解
释
:
α
i
=
n
i
η
,
那
么
自
然
是
更
新
一
次
,
就
加
一
次
η
)
,
b
←
b
+
η
y
i
4)转至2),直到训练集中没有误分类点。
下面是关于书中内容的思考:
1. 输入空间中任一点到分离超平面的距离怎么计算?
这里有一点要注意,为了方便书写,用 x1,x2 x 1 , x 2 表示任一点的两个分量,有点不合规矩。正确的书写方法是图上两个坐标轴的标示方法。不过暂且就这样了。由于误分类点的标签y与 (w⋅x+b) ( w ⋅ x + b ) 的符号肯定相反,即其乘积为 −|w⋅x+b| − | w ⋅ x + b | ,因此,误分类点到超平面的距离为 [−y(w⋅x+b)]/||w|| [ − y ( w ⋅ x + b ) ] / | | w | | 。将所有误分类点到超平面的距离相加,并且不再考虑 1||w|| 1 | | w | | ,即得损失函数。
2. 算法收敛性证明(原始模型,前提是数据集线性可分)
因为虽然书上的证明很完美,但自愧没有那么好的脑回路,不明白为什么老师就能想到该如此如此证明呢,所以本部分主要采取分析的推理方法,从结论倒推。
基本思路是证明经过有限次迭代(假设为k次),可以找到能将训练集数据完全正确划分的分离超平面及感知机模型。即证明k会小于等于一个数。所以我们需要构造一个不等式和一个数。在向量运算中,最明显的不等式就是比较模的大小了。又鉴于模的计算涉及开方,为简化,我们直接就比较模的平方了。那么这个数怎么构造呢?k肯定是跟w、b的迭代有关的,而我们知道我们可以把b并入到向量w中生成
ŵ
w
^
,把1并入
x中生成x̂
x
中
生
成
x
^
,
ŵ ⋅x̂ =w⋅x+b
w
^
⋅
x
^
=
w
⋅
x
+
b
。那么我们根据
ŵ
w
^
的更新公式来看看第k次
|̂ |w||
|
^
|
w
|
|
的情况吧:
||ŵ k||2=||ŵ k−1+ηyix̂ i||2=||ŵ k−1||2+||ηyix̂ i||2+2ηyix̂ i⋅ŵ k−1
|
|
w
^
k
|
|
2
=
|
|
w
^
k
−
1
+
η
y
i
x
^
i
|
|
2
=
|
|
w
^
k
−
1
|
|
2
+
|
|
η
y
i
x
^
i
|
|
2
+
2
η
y
i
x
^
i
⋅
w
^
k
−
1
由于
xi,yi
x
i
,
y
i
是误分类点,所以
2ηyix̂ i⋅ŵ k−1⩽0
2
η
y
i
x
^
i
⋅
w
^
k
−
1
⩽
0
,由上式得出
||ŵ k||2⩽||ŵ k−1||2+||ηyix̂ i||2
|
|
w
^
k
|
|
2
⩽
|
|
w
^
k
−
1
|
|
2
+
|
|
η
y
i
x
^
i
|
|
2
由于
yi
y
i
是+1或者-1,
η
η
是标量,因此
||ηyix̂ i||2=η2||xi||2
|
|
η
y
i
x
^
i
|
|
2
=
η
2
|
|
x
i
|
|
2
,由上式得出:
||ŵ k||2⩽||ŵ k−1||2+η2||x̂ i||2
|
|
w
^
k
|
|
2
⩽
|
|
w
^
k
−
1
|
|
2
+
η
2
|
|
x
^
i
|
|
2
假设
R=max1⩽i⩽N||xi||
R
=
m
a
x
1
⩽
i
⩽
N
|
|
x
i
|
|
,则由上式有:
||ŵ k||2⩽||ŵ k−1||2+η2R2
|
|
w
^
k
|
|
2
⩽
|
|
w
^
k
−
1
|
|
2
+
η
2
R
2
同理:
||ŵ k−1||2⩽||ŵ k−2||2+η2R2
|
|
w
^
k
−
1
|
|
2
⩽
|
|
w
^
k
−
2
|
|
2
+
η
2
R
2
则有:
||ŵ k||2⩽||ŵ k−2||2+2η2R2
|
|
w
^
k
|
|
2
⩽
|
|
w
^
k
−
2
|
|
2
+
2
η
2
R
2
继续递推得:
||ŵ k||2⩽||ŵ 0||2+kη2R2
|
|
w
^
k
|
|
2
⩽
|
|
w
^
0
|
|
2
+
k
η
2
R
2
我们将权重初始化为0,即
ŵ 0=0
w
̂
0
=
0
,则有:
||ŵ k||2⩽kη2R2
|
|
w
^
k
|
|
2
⩽
k
η
2
R
2
不等式的构造到这里算是完成了一半,因为
||ŵ k||2
|
|
w
̂
k
|
|
2
并不确定。我们还需要构造另一半,以
||ŵ k||2
|
|
w
̂
k
|
|
2
或
||ŵ k||
|
|
w
̂
k
|
|
为桥,即”
k的表达式"⩽||ŵ k||2
k
的
表
达
式
"⩽
|
|
w
̂
k
|
|
2
或
||ŵ k||
|
|
w
̂
k
|
|
,其中k的次数要高,系数要保证不等号的方向。
向量计算中另一个常见的可以比较大小的量是向量点乘。而我们又知道,向量点乘
⩽
⩽
向量模的乘积。如果能构造出一个“k“的表达式小于等于
ŵ k
w
̂
k
与另一个向量的点乘是再好不过的。这另一个向量该选谁呢?我们暂且取向量z,与
ŵ k
w
̂
k
同维。将
ŵ k
w
̂
k
迭代(这样才能出现k的表达式):
ŵ k⋅z=ŵ k−1⋅z+ηyix̂ i⋅z
w
̂
k
⋅
z
=
w
̂
k
−
1
⋅
z
+
η
y
i
x
^
i
⋅
z
鉴于我们希望
ŵ k⋅z
w
̂
k
⋅
z
是大于等于一个“k的表达式“的,那么当然
ηyix̂ i⋅z
η
y
i
x
^
i
⋅
z
恒大于某个数就好了。而对于有限的数据集,
yix̂ i⋅z
y
i
x
^
i
⋅
z
(考虑到另一半不等式中有
η
η
,我们这一半最好也有,以便于约分,因此把它撇出去,不放在这个整体里考虑)当然存在最小值,我们不妨叫它
γ
γ
。则有:
ŵ k⋅z=ŵ k−1⋅z+ηyix̂ i⋅z⩾ŵ k−1⋅z+ηγ⩾ŵ k−2⋅z+2ηγ...递推...⩾ŵ 0⋅z+kηγ=kηγ(注:ŵ 0=0)
w
̂
k
⋅
z
=
w
̂
k
−
1
⋅
z
+
η
y
i
x
^
i
⋅
z
⩾
w
̂
k
−
1
⋅
z
+
η
γ
⩾
w
̂
k
−
2
⋅
z
+
2
η
γ
.
.
.
递
推
.
.
.
⩾
w
̂
0
⋅
z
+
k
η
γ
=
k
η
γ
(
注
:
w
^
0
=
0
)
又因为
ŵ k⋅z⩽||ŵ k||||z||
w
̂
k
⋅
z
⩽
|
|
w
^
k
|
|
|
|
z
|
|
,要将各不等式连起来,显然令z的模为1是最方便的,有:
kηγ⩽ŵ k⋅z⩽||ŵ k||⩽ηRk√
k
η
γ
⩽
w
̂
k
⋅
z
⩽
|
|
w
^
k
|
|
⩽
η
R
k
公式两边同时除以
ηγk√
η
γ
k
,等等,
η,k√
η
,
k
都是大于0的,可
γ
γ
是什么符号呢?这可决定着能不能除,以及除之后不等号的方向问题。若要得出想要的结论,即k小于等于一个正数,我们需要
γ>0
γ
>
0
,那么
yix̂ i⋅z
y
i
x
^
i
⋅
z
就都得大于0,即z需要是能将所有样本正确分类的分类超平面的
ŵ
w
^
,我们叫它
ŵ opt
w
^
o
p
t
,取optimum,即最优之意。问题是它真的存在吗?答:既然数据集线性可分,那么它一定存在。还有一个问题,它的模是1吗?答:它的模可以是1,相关证明见备注2。
因此,我们最后证明的结论就是:
k⩽(Rγ)2
k
⩽
(
R
γ
)
2
<正文终于写完了>
备注1:证明两个向量的点乘小于等于向量模的乘积。
设两个向量
a⃗ ,b⃗
a
→
,
b
→
分别为
[a1,a2]T,[b1,b2]T
[
a
1
,
a
2
]
T
,
[
b
1
,
b
2
]
T
,则
a⃗ ⋅b⃗ =a1b1+a2b2
a
→
⋅
b
→
=
a
1
b
1
+
a
2
b
2
,
||a⃗ ||||b⃗ ||=(a21+a22)(b21+b22)‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√=a21b21+a21b22+a22b21+a22b22‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√=(a1b1+a2b2)2+(a1b2−a2b1)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√⩾a1b1+b2b2
|
|
a
→
|
|
|
|
b
→
|
|
=
(
a
1
2
+
a
2
2
)
(
b
1
2
+
b
2
2
)
=
a
1
2
b
1
2
+
a
1
2
b
2
2
+
a
2
2
b
1
2
+
a
2
2
b
2
2
=
(
a
1
b
1
+
a
2
b
2
)
2
+
(
a
1
b
2
−
a
2
b
1
)
2
⩾
a
1
b
1
+
b
2
b
2
备注2:证明方程ax+by+c=0(
a≠0,b≠0
a
≠
0
,
b
≠
0
)的系数向量
[a,b,c]T
[
a
,
b
,
c
]
T
的模缩为1,只要方向保持不变,其所确定的直线不变。
该直线必经过(0,
−cb),(−ca,0)两点。设a2+b2+c2=C2(C>0)
−
c
b
)
,
(
−
c
a
,
0
)
两
点
。
设
a
2
+
b
2
+
c
2
=
C
2
(
C
>
0
)
,直线方程两边同时除以C,得
ax+by+cC=0
a
x
+
b
y
+
c
C
=
0
,则系数向量模为
a2+b2+c2C2=1
a
2
+
b
2
+
c
2
C
2
=
1
,而直线仍经过$(0,-\frac {c}{b}),(-\frac {c}{a},0)两点。由两点确定一条直线,得出直线不变。
<备注也终于写完了>