感知机是二分类的线形分类模型,其输入是实例的特征向量,输出是实例的类型,定义为{-1, +1}
。
2.1 感知机模型
由输入空间映射到输出空间的函数为如下形式:
f(x)=sign(w·x+b)f(x)=sign(w·x+b)
其中sign(x)sign(x):
sign(x)={+1−1if x >= 0if x < 0sign(x)={+1if x >= 0−1if x < 0
线形方程w·x+b=0w·x+b=0的几何解释是一个超平面。如果所有实例是线形可分的,则该平面将正负实例划分开。如图2.1:
2.2 感知机策略
对线性可分的实例集而言,yi=+1yi=+1的实例 ii,有,yi=−1yi=−1的实例 ii,同样有。因此,可以根据误分类的点构造目标函数:
L(w,b)=∑xi∈M−yi∗(w∗xi+b)L(w,b)=∑xi∈M−yi∗(w∗xi+b)
M
是所有误分类点的集合。感知机学习的策略就是取L(w, b)
最小时的参数w, b
。
2.3 感知机学习算法
感知机学习算法是误分类驱动的,具体采用的是梯度下降算法。在上一节我们学习到,感知机的目标函数为:
L(w,b)=∑xi∈M−yi∗(w∗xi+b)L(w,b)=∑xi∈M−yi∗(w∗xi+b)
对应地,
w, b
的梯度: ▽wL(w,b)=−∑xi∈Myixi▽wL(w,b)=−∑xi∈Myixi
▽bL(w,b)=−∑xi∈Myi▽bL(w,b)=−∑xi∈Myi
算法的核心是设定初始的w = 0, b = 0
,迭代,每轮通过1个误分类点,使用梯度进行更新,直到所有的点都正确分类:
w←w+ηyixib←b+ηyiw←w+ηyixib←b+ηyi
2.3.2 算法收敛性
要使用迭代法更新参数,必须要能够收敛,可以证明,迭代的次数k有上限:
k≤(Rγ)2k≤(Rγ)2
RR表示所有实例的长度的最大值,γγ表示实例点到超平面函数距离的最小值:
yi∗(w∗xi+b)≥γyi∗(w∗xi+b)≥γ
除此之外,感知机学习算法还有对偶形式,其基本想法是将ww和表示为实例xixi和标记yiyi的线形组合的形式,通过求解其系数而求得ww和。
感知机学习算法根据每次使用误分类点的顺序不同,可能产生的解会是多个,并不能求出最优解。
问题思考
- 感知机算法能实现异或吗?为什么?