第二章 感知机
- 感知机(perceptron)是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别。
- 感知机属于判别模型
- 感知机主要是为了求出将训练数据进行线性划分的分离超平面,导入误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型
2.1 感知机模型
定义 2.1(感知机)假设输入空间(特征空间)是 X ∈ R n X \in 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)
其中 w ∈ R n w\in R^n w∈Rn 叫做权值(weight)或权值向量(weight vector), b ∈ R b \in R b∈R 叫做偏置(bias), s i g n sign sign 是符号函数
s i g n ( x ) = { + 1 x ≥ 0 − 1 x < 0 sign(x)= \begin{cases} +1& x \geq 0 \\ -1& x < 0 \end{cases} sign(x)={+1−1x≥0x<0
感知机可以如下解释,由 w w w 和 b b b 得到一个对应于特征空间 R n R^n Rn 的超平面 S S S , 如下式所示
w ⋅ x + b = 0 w \cdot x + b = 0 w⋅x+b=0
这个超平面将空间划分为两个部分,位于两部分的点(特征向量)分别分为正、负两类. 因此,超平面 S S S 称为分离超平面(separating hyperplane)
2.2 感知机学习策略
2.2.1 数据集的线性可分性
定义 2.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)
如果存在超平面 S S S 能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,则称数据集 T T T 为线性可分数据集(linear separable data set);否则,称数据集 T T T 线性不可分
2.2.2 感知机的学习策略
在训练数据集线性可分的前提假设下,感知机的目标是找到分离超平面,一般的策略是定义(经验)损失函数并将损失函数极小化
感知机 s i g n ( w ⋅ x + b ) sign(w \cdot x + b) sign(w⋅x+b)学习的损失函数定义为
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w, b)=-\sum \limits_{x_i \in M}y_i(w \cdot x_i + b) L(w,b)=−xi∈M∑yi(w⋅xi+b)
这个损失函数就是感知机学习的经验风险函数
感知机的学习策略就是在假设空间中选取是损失函数最小的模型参数 w , b w, b w,b,即感知模型.
2.3 感知机学习算法
感知机学习算法分为两大类:
- 原始形式
- 对偶形式
2.3.1 感知机学习算法的原始形式
求解损失函数极小化情况下,参数 w , b w,b w,b的值
min w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) \min \limits_{w,b} L(w,b)=-\sum \limits_{x_i \in M} y_i(w \cdot x_i + b) w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
采用随机梯度下降法,求解的算法描述如下
算法 2.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 } y_i \in Y = \{-1, +1\} yi∈Y={−1,+1}, i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N;学习率 η ( 0 < η ≤ 1 ) \eta(0< \eta \leq 1) η(0<η≤1)
输出: w , b w, b 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)
(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 b ← b + η y i \begin{array}{cc} w \leftarrow w + \eta y_i x_i \\ b \leftarrow b + \eta y_i \end{array} w←w+ηyixib←b+ηyi
(4) 转至(2),直至训练集中没有误分类点
2.3.2 算法的收敛性
对于线性可分数据感知集学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型
定理 2.1 (Novikoff) 设训练数据集 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 y_i\in Y={-1, +1} yi∈Y=−1,+1, i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N,则
(1) 存在满足条件 ∣ ∣ w ^ o p t ∣ ∣ = 1 ||\hat{w}_{opt}||=1 ∣∣w^opt∣∣=1的超平面 w ^ o p t ⋅ x ^ = w o p t ⋅ x + b o p t = 0 \hat{w}_{opt} \cdot \hat{x} = w_{opt} \cdot x + b_{opt} = 0 w^opt⋅x^=wopt⋅x+bopt=0将训练数据集完全正确分开;且存在 γ > 0 \gamma > 0 γ>0,对所有的 i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N
y i ( w ^ o p t ⋅ x ^ i ) = y i ( w o p t ⋅ x i + b o p t ≥ γ y_i(\hat{w}_{opt} \cdot \hat{x}_i)=y_i(w_{opt} \cdot x_i + b_{opt} \geq \gamma yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt≥γ
(2) 令 R = max 1 ≤ i ≥ N ∣ ∣ x ^ i ∣ ∣ R=\max \limits_{1 \leq i \geq N}||\hat{x}_i|| R=1≤i≥Nmax∣∣x^i∣∣,则感知机算法在训练数据集上的误分类次数 k k k 满足不等式
k ≤ ( R γ ) 2 k \leq (\frac{R}{\gamma})^2 k≤(γR)2
- 定理表明,误分类的次数 k k k是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面
- 当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡
2.3.3 感知机学习算法的对偶形式
算法2.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 = R N x_i \in X=R^N xi∈X=RN, y i ∈ Y = { − 1 , + 1 } y_i \in Y = \{-1, +1\} yi∈Y={−1,+1}, i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N;学习率 η ( 0 < η ≤ 1 ) \eta(0< \eta \leq 1) η(0<η≤1)
输出:
a
,
b
a,b
a,b; 感知机模型
f
(
x
)
=
s
i
g
n
(
∑
j
=
1
N
a
j
y
j
x
j
⋅
x
+
b
)
f(x)=sign(\sum \limits_{j=1}^N a_j y_j x_j \cdot x + b)
f(x)=sign(j=1∑Najyjxj⋅x+b).
其中
a
=
(
a
1
,
a
2
,
.
.
.
,
a
N
)
T
a=(a_1,a_2,...,a_N)^T
a=(a1,a2,...,aN)T.
(1)
a
←
0
,
b
←
0
a \leftarrow 0, b\leftarrow 0
a←0,b←0
(2) 在训练集中选取数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)
(3) 如果
y
i
(
∑
j
=
1
N
a
j
y
j
x
j
⋅
x
+
b
)
≤
0
y_i(\sum \limits_{j=1}^N a_j y_j x_j \cdot x + b)\leq 0
yi(j=1∑Najyjxj⋅x+b)≤0
a i ← a i + η b ← b + η y i \begin{array}{cc} a_i \leftarrow a_i + \eta\\ b \leftarrow b + \eta y_i \end{array} ai←ai+ηb←b+ηyi
(4) 转至(2)直到没有误分类数据
与原始形式一样,感知机学习算法的对偶形式迭代是收敛的,存在多个解
最近比较闲,自己做了个个人网站,有兴趣的可以瞅一眼:中微子的个人笔记