感知机
感知机是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值。
1、感知机模型
定义2.1(感知机)假设输入空间(特征空间)是
X⊆Rn
X
⊆
R
n
,输出空间是
Y
Y
={+1,−1}
=
{
+
1
,
−
1
}
. 输入
x∈X
x
∈
X
表示实例的特征向量,对应于输入空间(特征空间)的点;输出
y∈Y
y
∈
Y
表示实例的类别。由输入空间到输出空间的如下函数:
称为感知机。其中 w∈Rn w ∈ R n 叫做权值或权值向量, b∈R b ∈ R 叫做偏置, w⋅x w ⋅ x 表示 w w 和的内积。 sign s i g n 是符号函数。
感知机是一种线性分类模型,属于判别模型。它的假设空间是定义在特征空间中的所有线性分类模型。它有如下几何解释:线性方程
它对应于特征空间 Rn R n 中的一个超平面 S S ,其中是超平面的法向量, b b 是超平面的截距,该超平面把特征空间分为两个部分,对应于输出空间的两个类别所在的空间。因此感知机的学习即是求模型参数和 b b 。通过学习得到的感知机模型,可以对新的输入实例给出对应的输出类别。
2、感知机学习策略
数据集的线性可分性
定义2.2(数据集的线性可分性)给定一个数据集
感知机学习策略
假设训练集线性可分,感知机学习的目标是找到能完全正确分开的超平面,我们需要确定一个学习策略来确定模型参数
w,b
w
,
b
,那么我们要定义损失函数并将其最小化。
感知机损失函数的选择:误分类点到超平面
S
S
的总距离
定义:输入空间中任一点
x0
x
0
到超平面
S
S
的距离:
公式推导:
设点 x0 x 0 在平面 S S 上的投影为,则有 w⋅x1+b=0,w⋅x1=−b w ⋅ x 1 + b = 0 , w ⋅ x 1 = − b
由于向量 x0x1→ x 0 x 1 → 与 S S 平面上的法向量平行,则有
|w⋅x0x1→|=|w||x0x1→|=(w1)2+...+(wN)2−−−−−−−−−−−−−−√d=∥w∥d | w ⋅ x 0 x 1 → | = | w | | x 0 x 1 → | = ( w 1 ) 2 + . . . + ( w N ) 2 d = ‖ w ‖ d
又 w⋅x0x1→=w⋅(x0→−x1→)=w⋅x0−w⋅x1=w⋅x0−(−b)=w⋅x0+b w ⋅ x 0 x 1 → = w ⋅ ( x 0 → − x 1 → ) = w ⋅ x 0 − w ⋅ x 1 = w ⋅ x 0 − ( − b ) = w ⋅ x 0 + b
所以 ∥w∥d=|w⋅x0x1→=|w⋅x0+b| ‖ w ‖ d = | w ⋅ x 0 x 1 → = | w ⋅ x 0 + b |
即 d=1∥w∥|w⋅x0+b| d = 1 ‖ w ‖ | w ⋅ x 0 + b |
因为对于误分类的数据
(xi,yi)
(
x
i
,
y
i
)
来说
−yi(w⋅xi+b)>0
−
y
i
(
w
⋅
x
i
+
b
)
>
0
成立,因此,误分类点
xi
x
i
到超平面
S
S
的距离是。这样,假设超平面
S
S
的误分类点集合为,那么所有误分类点到超平面
S
S
的总距离为,不考虑
−1∥w∥
−
1
‖
w
‖
,则感知机
sign(w⋅x+b)
s
i
g
n
(
w
⋅
x
+
b
)
学习的损失函数定义为:
损失函数 L(w,b) L ( w , b ) 是非负的,误分类点越少,损失函数值就越小,且损失函数是 w,b w , b 的连续可导函数。
感知机学习的策略是在假设空间中选取损失函数式(3)最小的模型参数 w,b w , b ,即感知机模型。
3、感知机学习算法
感知机学习算法的原始形式
感知机学习算法实际上就是参数
w,b
w
,
b
使其为以下损失函数极小化问题的解:
算法具体采用随机梯度下降法。首先任取一超平面 w0,b0 w 0 , b 0 ,然后用梯度下降法不断地极小化目标函数(4).具体梯度下降如下:
假设误分类点集合 M M 是固定的,那么损失函数的梯度由
给出。
随机选取一个误分类点 (xi,yi) ( x i , y i ) ,对 w,b w , b 进行更新:
式中 η(0<η≤1) η ( 0 < η ≤ 1 ) 是步长,又称为学习率。这样通过迭代可以期待损失函数不断减小直至为0。
算法2.1(感知机学习算法的原始形式)
输入:训练集 T={(x1,y1),(x2,y2),...,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } ,其中 xi∈X=Rn x i ∈ X = R n , yi∈Y y i ∈ Y ={+1,−1} = { + 1 , − 1 } , i=1,2,...,N i = 1 , 2 , . . . , N ;学习率 η(0<η≤1) η ( 0 < η ≤ 1 ) ;
输出: w,b w , b ;感知机模型 f(x)=sign(w⋅x+b). f ( x ) = s i g n ( w ⋅ x + b ) .
(1)选取初值 w0,b0 w 0 , b 0
(2)在训练集中选取数据 (xi,yi) ( x i , y i )
(3)如果 yi(w⋅xi+b)≤0 y i ( w ⋅ x i + b ) ≤ 0
(4)转至(2),直至训练集中没有误分类点。
算法的收敛性
为了便于推导,将偏置
b
b
并入权重向量,记做
w^=(wT,b)T
w
^
=
(
w
T
,
b
)
T
,同样也将输入向量加以扩充,加进常数1,记做
x^=(xT,1)T
x
^
=
(
x
T
,
1
)
T
。这样
x^∈Rn+1,w^∈Rn+1
x
^
∈
R
n
+
1
,
w
^
∈
R
n
+
1
。显然
w^⋅x^=w⋅x+b
w
^
⋅
x
^
=
w
⋅
x
+
b
。
定理2.1(Novikoff)设训练集
T={(x1,y1),(x2,y2),...,(xN,yN)}
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
是线性可分的,其中
xi∈X=Rn
x
i
∈
X
=
R
n
,
yi∈Y
y
i
∈
Y
={+1,−1}
=
{
+
1
,
−
1
}
,
i=1,2,...,N
i
=
1
,
2
,
.
.
.
,
N
,则
(1)存在满足条件
∥w^opt∥=1
‖
w
^
o
p
t
‖
=
1
的超平面
w^opt⋅x^=wopt⋅x+bopt=0
w
^
o
p
t
⋅
x
^
=
w
o
p
t
⋅
x
+
b
o
p
t
=
0
将训练集完全正确分开;且存在
γ>0
γ
>
0
,对所有
i=1,2,...,N
i
=
1
,
2
,
.
.
.
,
N
(2)令 R=max1≤i≤N∥x^i∥ R = max 1 ≤ i ≤ N ‖ x ^ i ‖ ,则感知机算法2.1在训练集上的误分类次数 k k 满足不等式
定理表明,误分类次数 k k 是有上界的。另外,感知机学习算法存在许多解,这些解与初值的选择有关。当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。
感知机学习算法的对偶形式
对偶形式的基本想法是,将和
b
b
表示为实例和标记
yi
y
i
的线性组合的形式,通过求解其系数而求得
w,b
w
,
b
。不失一般性,在算法2.1中可假设初始值
w0,b0
w
0
,
b
0
均为0,对误分类点
(xi,yi)
(
x
i
,
y
i
)
通过
w←w+ηyixi
w
←
w
+
η
y
i
x
i
和
b←b+ηyi
b
←
b
+
η
y
i
逐步修改
w,b
w
,
b
。设修改
n
n
次后,则关于
(xi,yi)
(
x
i
,
y
i
)
的增量分别是
αiyixi
α
i
y
i
x
i
和
αiyi
α
i
y
i
,这里
αi=niη
α
i
=
n
i
η
。这样从学习过程不难看出,最后学习到的
w,b
w
,
b
可以分别表示为
当 η=1 η = 1 时,表示第 i i 个实例点由于误分而进行更新的次数。
算法2.2(感知机学习算法的对偶形式)
输入:线性可分的训练集,其中 xi∈Rn x i ∈ R n , yi∈{+1,−1} y i ∈ { + 1 , − 1 } , i=1,2,...,N i = 1 , 2 , . . . , N ;学习率 η(0<η≤1) η ( 0 < η ≤ 1 ) ;
输出: α,b α , b ;感知机模型 f(x)=sign(∑Nj=1αjyjxj⋅x+b) f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) 。
其中 α=(α1,α2,...,αN)T α = ( α 1 , α 2 , . . . , α N ) T
(1) α←0,b←0 α ← 0 , b ← 0
(2)在训练集中选取数据 (xi,yi) ( x i , y i )
(3)如果 yi(∑Nj=1αjyjxj⋅x+b)≤0 y i ( ∑ j = 1 N α j y j x j ⋅ x + b ) ≤ 0
(4)转至(2)中直到没有误分类数据。
对偶形式中训练实例仅以内积形式出现,为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵
G=[xi⋅xj]N×N G = [ x i ⋅ x j ] N × N与原始形式一样,感知机算法的对偶形式迭代是收敛的,存在多个解。