第二章 感知机
感知机是二类分类的线性分类模型,输入为特征向量,输出为实例的类别,感知机对应于输入空间(特征空间)中将
实例划分为正负两类的超平面
2.1感知机模型
假设输入空间(特征空间)是
x⊆Rn
x
⊆
R
n
,输出空间为
y=+1,−1
y
=
+
1
,
−
1
,由输入空间到输出空间的如下函数:
称为感知机,其中 w w 和为感知机模型参数 w∈Rn w ∈ R n 叫做权值或者权向量, b∈R b ∈ R 叫做偏置,
w⋅x w ⋅ x 表示 w w 和的内积 sign s i g n 是符号函数:
感知机的解释:
线性方程 w⋅x+b=0 w ⋅ x + b = 0 对应于特征空间 Rn R n 中的一个超平面 S S ,其中为超平面的法向量,
−b||w|| − b | | w | | 为原点到超平面的距离,这个超平面将特征空间划分成两个部分
2.2感知机学习策略
2.2.1
数据集为线性可分数据集
2.2.2
选择损失函数为误分类点到超平面
S
S
的总距离,特征空间中任意一点到超平面
S
S
的距离:
这里的 ||w|| | | w | | 是 w w 的范数
对于误分类的数据
(xi,yi)
(
x
i
,
y
i
)
来说:
成立,那么误分类点 xi x i 到超平面 S S 的距离:
假设超平面 S S 的误分类点集合为,那么所有误分类点到超平面的总距离:
不考虑 1||w|| 1 | | w | | 得到在给定数据集:
其中 xi∈Rn x i ∈ R n , yi∈{+1,−1} y i ∈ { + 1 , − 1 } , i=1,2,⋯,N i = 1 , 2 , ⋯ , N 感知机的损失函数为:
2.3感知机学习算法
求解感知机参数也就是损失函数极小化的问题:
采用随机梯度下降算法,首先任意选取一个超平面 w0,b0 w 0 , b 0 ,然后梯度下降法不断极小化目标函数
损失函数 L(w,b) L ( w , b ) 的梯度为:
随机选取一个误分类点 (xi,yi) ( x i , y i ) 对 w,b w , b 进行更新:
其中 η η 为学习速率
算法流程
输入:训练数据集
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
N
,
y
N
)
}
其中
xi∈Rn,yi∈{+1,−1},i=1,2,⋅,N
x
i
∈
R
n
,
y
i
∈
{
+
1
,
−
1
}
,
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)直至训练集中没有误分类点