1.感知机
感知机是一种二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别{+1,-1}。感知机要求数据集是线性可分的。
按照统计学习三要素模型、策略、算法的顺序来介绍。
2.感知机模型
由输入空间到输出空间的如下函数:
f(x)=sign(ω⋅x+b)
其中
ω,b 为模型参数,
ω⊂Rn 叫权值(weight)或权值向量(weight vector),
b⊂R 叫偏置。
感知机模型的假设空间是定义在特征空间中的所有线性分类模型(linear classification model)或线性分类器(linear classifier),即函数集合
{f|f(x)=ω⋅x+b} .
2.1感知机模型的几何解释
线性方程 ω⋅x+b 对应于特征空间的一个超平面S, ω 代表超平面的法向量, b 代表截距。这个超平面将特征空间分为两个部分,位于两部分的点(特征向量)被划分为正负两类,所以超平面S被称为分离超平面(separating hyperplane)。
在看几何模型这里有几点疑惑:
1.超平面是什么
2.原点到超平面的距离 −b∥ω∥ (纯属高数忘的差不多了)
2.1.1超平面
百度百科给出的定义:超平面是n维欧式空间中余维度等于一的线性子空间(也就是说超平面的维度为n-1)。这是平面中的直线、空间中的平面之推广。
似乎并没有起到什么帮助理解的作用!这个东西为什么要叫超平面也是很迷!刨除这个蜜汁叫法,还是试图从公式上进行理解吧。
百度到资料一:给定 Rn 空间中的一点 p 和非零向量 n⃗ ,满足
n⃗ ⋅(x−p)=0
的点集 x 称为经过点 p 的超平面。向量 n⃗ 为该超平面的法向量。按照这个定义,一条直线是 R2 空间的超平面,一个平面是 R3 空间的超平面。
老学长解惑:在 Rn 空间中的超平面为:
ω⃗ T⋅x⃗ +b=0
在几维空间中,向量
ω⃗ ,x⃗ 就是几维的。当然,
ω⃗ ,x⃗ 属于该空间。在二维空间下,该方程表示一条直线,直线是平面的超平面。三维空间下,该方程表示一个平面,平面是空间的超平面。
老学长这个解释,我还是比较能接受的。
2.1.2点到超平面的距离
写到这里,我已决心要重看一遍高数。
向量的投影:给定两个向量 u⃗ ,v⃗ ,求 u⃗ 在 v⃗ 上的投影长度,向量间的夹角为 cosθ 。
算不上推导的推导:
d=|u|⋅cosθ
cosθ=u⋅v|u||v|
综上,
d=u⋅v|v|
点到超平面的距离:假设
x⃗ 0 是超平面
ω⃗ T⋅x⃗ +b=0 上任意一点,则点
x 到超平面的距离为
x⃗ −x⃗ 0 在超平面法向量
ω⃗ 上的投影长度:
d=|ω⃗ T(x⃗ −x⃗ 0)|∥ω⃗ ∥=|ω⃗ T⋅x⃗ +b−ω⃗ T⋅x⃗ 0−b|∥ω⃗ ∥=|ω⃗ T⋅x+b|∥ω⃗ ∥
2.1.3超平面的正反面
一个超平面可以将该空间分成两部分,和法向量同向规定为正面,和法向量反向称为反面。 x⃗ 0 是超平面上的一点, x⃗ −x⃗ 0 与 ω⃗ 的夹角小于 90。 时该点位于超平面正面,即
ω⃗ T⋅(x⃗ −x⃗ 0)>0
ω⃗ T⋅x⃗ +b>0
3.感知机学习策略
3.1损失函数
误分类集M,对于 xi∈M ,有 −yi(ω⋅xi+b)>0 ,感知机损失函数与误分类点到超平面的距离有关。所有误分类点到超平面的距离和为
−1∥ω∥∑xi∈Myi(ω⋅xi+b)
忽略
1∥ω∥ ,就得到了损失函数:
L(ω,b)=−∑xi∈Myi(ω⋅xi+b)
4.感知机学习算法
感知机学习问题转换为求解使损失函数 L(ω,b) 最小的最优化问题,采用随机梯度下降法(stochastic gradient descent)。
∇ωL(ω,b)=−∑xi∈Myixi
∇bL(ω,b)=−∑xi∈Myi
其中M是误分类集
(1)
ω=ω0,b=b0 ,学习速率
η
(2)选择
xi∈M ,更新
ω,b
ωk=ωk−1+ηyixi
bk=bk−1+ηyi
(3)转至(2),直到不存在误分类点。
4.1感知机学习算法的收敛性
4.1.1定理
为了便于叙述,令 ω^=(ωT,b),x^=(xT,1)T ,显然 ω^⋅x^=ω⋅x+b .
假设训练集是线性可分的,则
(1)存在 ∥ω^opt∥=1 的超平面,使
yi(ω^opt⋅x^i)≥γ
(2)
R=max1≤i≤n∥x^i∥ ,则误分类次数k满足
k≤(Rγ)2
4.1.2证明
(1)由于训练数据集是线性可分的,所以存在超平面可以将训练数据集完全正确的分开。取此超平面为 ω^opt⋅x^i=0,使∥ω^opt∥=1 .对于数据集中所有的 xi 都有
yi(ω^opt⋅x^i)>0
存在
γ=min{yi(ω^opt⋅x^i)}
使
yi(ω^opt⋅x^i)≥γ
(2)
ω^k−1 是第k次误分类前的权重向量,
x^i 是使其误分类的点,则有
ω^k=ω^k−1+ηyix^i
ω^k⋅ω^opt=ω^k−1ω^opt+ηyiω^optx^i≥ω^k−1ω^opt+ηγ≥ω^k−2ω^opt+2ηγ≥⋯≥ω0+kηγ
∥ω^k∥2=∥ω^k−1∥2+2ηyiω^k−1x^i+η2y2i∥x^i∥2
由于
x^i 被
ω^k−1 误分类,所以
yiω^k−1x^i<0,y2i=1 ,所以
∥ω^k∥2≤∥ω^k−1∥2+η2R2≤∥ω^k−2∥2+2η2R2≤⋯≤∥ω^0∥2+kη2R2
当
ω^0=0 时,
ω^k⋅ω^opt≥kηγ
∥ω^k∥≤k√ηR
kηγ≤ω^k⋅ω^opt≤∥ω^k∥⋅∥ω^opt∥⋅cosθ≤∥ω^k∥⋅∥ω^opt∥≤∥ω^k∥≤k√ηR
k2γ2≤kR2
k≤(Rγ)2
注意到初始条件为0时,迭代次数k与学习速率
η 无关。
5.感知机的对偶形式
感知机的对偶形式是初始值为0条件下的一种变形,似乎能起到减少每一次迭代的计算量的作用,有待验证。