第二章 感知机
一、感知机定义
假设输入空间(特征空间)是
x
⊆
R
n
x\subseteq R^n
x⊆Rn,输出空间是
y
=
{
+
1
,
−
1
}
y=\{+1,-1\}
y={+1,−1}。输入
x
∈
X
x \in X
x∈X表示实例的特征向量,对应于输入空间(特征空间)的点;输出
y
∈
Y
y \in Y
y∈Y表示实例的类型。由输入空间到输出空间的如下函数:
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)
称为感知机,感知机是根据输入实例的特征向量x对其进行二类分类的线性分类模型。
感知机模型对应于输入空间(特征空间)中的分离超平面 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0。
二、感知机学习策略
感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。
感知机学习的策略是极小化损失函数:
其中M为误分类点的集合,损失函数对应于误分类点到分离超平面的总距离。
三、感知机学习算法
1.原始形式
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中 x i ∈ X = R n x_i \in X =R^n xi∈X=Rn, y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , . . . N y_i \in Y =\{-1,+1\},i=1,2,...N yi∈Y={−1,+1},i=1,2,...N; 学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η≤1);
输出:w,b;感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w \cdot x+b) f(x)=sign(w⋅x+b)。
(1)选取初值 w 0 , b 0 w_0,b_0 w0,b0;
(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi);
(3)如果
y
i
(
w
⋅
x
i
+
b
)
≤
0
y_i(w \cdot x_i +b)\leq 0
yi(w⋅xi+b)≤0,
w
←
w
+
η
y
i
x
i
w\leftarrow w+\eta y_i x_i
w←w+ηyixi
b ← b + η y i b \leftarrow b+\eta y_i b←b+ηyi
(4)转至(2),直至训练集中没有误分类点。
直观上有如下解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。
2.对偶形式
输入:线性可分的数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中 x i ∈ X n x_i \in X ^n xi∈Xn, y i ∈ { − 1 , + 1 } , i = 1 , 2 , . . . N y_i \in \{-1,+1\},i=1,2,...N yi∈{−1,+1},i=1,2,...N; 学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η≤1);
输出: α \alpha α,b;感知机模型 f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=sign(\sum_{j=1}^N \alpha _jy_jx_j\cdot x+b) f(x)=sign(∑j=1Nαjyjxj⋅x+b),其中 α = ( α 1 , α 2 , . . . , α N ) T \alpha=(\alpha_1,\alpha_2,...,\alpha_N)^T α=(α1,α2,...,αN)T
(1) α ← 0 , b ← 0 \alpha \leftarrow 0,b \leftarrow 0 α←0,b←0;
(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi);
(3)如果
y
i
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
i
+
b
)
≤
0
y_i(\sum_{j=1}^N \alpha_jy_jx_j \cdot x_i+b)\leq0
yi(∑j=1Nαjyjxj⋅xi+b)≤0,
α
i
←
α
i
+
η
\alpha_i \leftarrow \alpha_i+\eta
αi←αi+η
b ← b + η y i b\leftarrow b+ \eta y_i b←b+ηyi
(4)转至(2)直至没有误分类数据。
对偶形式中训练实例仅以内积的形式出现,可预先将数据集中实例间的内积用Gram矩阵存储
G = [ x i ⋅ x j ] N × N G=[x_i\cdot x_j]_{N\times N} G=[xi⋅xj]N×N