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