第二章 感知机
感知机(preceptron)是二分类的线性模型,其输入为实例的特征向量,输出为实例的类别,去 +1 + 1 和 −1 − 1 。旨在求出将训练数据进行现行划分的分离超平面。
方法:导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
模型
w
w
和 为模型参数,
w∈Rn
w
∈
R
n
叫作权值(weight)或权值向量(weight vector),
b∈R
b
∈
R
叫作偏置(bias),
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 b 是超平面的截距。
策略
数据集的线性可分性:给定一个数据集
其中 xi∈X=Rn x i ∈ X = R n , yi∈Y={+1,−1} y i ∈ Y = { + 1 , − 1 } , i=1,2,...,N i = 1 , 2 , . . . , N ,如果存在某个超平面 S:w⋅x+b=0 S : w · x + b = 0 ,能够正确将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有 yi=+1 y i = + 1 的实例 i i ,有,对所有 yi=−1 y i = − 1 的实例 i i ,有,则称数据集 T T 为线性可分数据集(linearly separable data set);否则,称其为线性不可分。
感知机学习策略:
将损失函数极小化,步骤:
写出输入空间 中任意一点 x0 x 0 到超平面 S S 的距离:
其中 ∥w∥ ‖ w ‖ 是 w w 的 范数。对于误分类的数据 (xi,yi) ( x i , y i ) 来说,
−yi(w⋅xi+b)>0 − y i ( w · x i + b ) > 0
成立。因为当 w⋅xi+b>0 w · x i + b > 0 时, yi=−1 y i = − 1 ,而当 w⋅xi+b<0 w · x i + b < 0 时, yi=+1 y i = + 1 。因此,误分类点 xi x i 到超平面 S S 的距离为:
假设超平面 S S 的误分类点集合为 ,那么所有误分类点到超平面 S S 的距离为:
不考虑 1∥w∥ 1 ‖ w ‖ ,就得到感知机学习的损失函数,即:
L(w,b)=−∑xi∈Myi(w⋅xi+b) L ( w , b ) = − ∑ x i ∈ M y i ( w · x i + b )
L(w,b) L ( w , b ) 是非负的,如果没有误分类,损失函数为0.给定训练数据集 T T ,损失函数 是 w,b w , b 的连续可导函数。
算法
原始形式:
输入:训练数据集 T T ,学习率 ;
输出: w,b w , b ;感知机模型 f(x)=sign(w⋅x+b) f ( x ) = s i g n ( w · x + b ) .
选取初值 w0,b0 w 0 , b 0
在训练集中选取数据 (xi,yi) ( x i , y i )
如果 yi(w⋅xi+b)≤0 y i ( w · x i + b ) ≤ 0
w←w+ηyixib←b+ηyi w ← w + η y i x i b ← b + η y i转至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 .
Novikoff 定理:
存在满足条件 ∥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,3,...,N i = 1 , 2 , 3 , . . . , N
yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)≥γ y i ( w ^ o p t · x ^ i ) = y i ( w o p t · x i + b o p t ) ≥ γ令 R=max1≤i≤N∥x^i∥ R = max 1 ≤ i ≤ N ‖ x ^ i ‖ ,则感知机算法在训练数据集上的误分类次数 k k 满足不等式
对偶形式:
输入:训练数据集 T T ,学习率 ;
输出: α,b α , b ;感知机模型 f(x)=sign(∑j=1Nα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 .
α←0, b←0 α ← 0 , b ← 0
在训练集中选取数据 (xi,yi) ( x i , y i )
如果 yi(∑j=1Nαjyjxj⋅xi+b)≤0 y i ( ∑ j = 1 N α j y j x j · x i + b ) ≤ 0
αi←αi+ηb←b+ηyi α i ← α i + η b ← b + η y i转至2.直到没有误分类数据.