看完上一章的概要学习后,开始就进入第二章的内容——感知机。对于统计学习方法而言,包含三要素,模型+策略+算法,接下来就从以下三个要素全面了解感知机。
感知机模型
简单来说,感知机(Perceptron)针对的是二分类的线性模型,其输入为实例的特征向量,输出为实例的类别,取+1、-1。利用数学语言抽象模型可以这样描述:
假设输入空间(特征空间)是χ∈Rn,输出空间是y=+1,−1,输入x∈χ表示实例的特征向量,对应于输入空间的点;输出y∈Y表示实例的类别。由输入空间到输出空间满足如下函数:f(x)=sign(w⋅x+b)其中w是权重参数,b是偏置项,sign是符号函数,即:sign(x)={1−1,,x≥0x<0
感知机模型属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。如图所示:
感知机学习策略
在对于一个训练数据集是线性可分的情况下,感知机学习的目标就是在于找到一个可以将正实例点和负实例点完全正确分隔开的超平面。既然要明确这样一个分离超平面,那么就需要确定一个感知机模型,也就是需要确定一个学习策略,即定义损失函数并将损失函数最小化。
对于常见的损失函数就是一个自然选择是误分类点的总数,但是这样的一个损失函数并不是连续可导函数,不容易优化,那么另一个选择就是误分类点到超平面的总距离。即可抽象描述为:
输入空间Rn中任意一点x0到超平面S的距离可表示为:∣∣w∣∣∣w⋅x+b∣,其中∣∣w∣∣表示为w的L2范数
其次,对于误分类点(x,y)来说,-y(w x+b)>0成立。
∵w⋅x+b>0时,yi=1又∵w⋅x+b>0时,yi=−1∴总距离为:−∣∣w∣∣1Xi∈M∑yi(w⋅x+b)
由此,可这样描述为:
给定数据集T=(X1,Y1),(X2,Y2)...(XN,YN),其中,xi∈χ=Rn,yi∈Y=+1,−1,i=1,2,...N损失函数定义为:L(w,b)=−Xi∈M∑yi(w⋅x+b),其中M时误分类点的集合
感知机算法
感知机的学习问题转化为求解损失函数的的最优化问题,其最优化的方向是随机梯度下降法(Stochastic Gradient Descent)。(每次迭代更新的是两个向量)
原始形式
输入:训练数据集T=(X1,Y1),(X2,Y2)...(XN,YN),其中,xi∈χ=Rn,yi∈Y=+1,−1,i=1,2,...N;学习率η(0<η≤1);输出:w,b;感知机模型f(x)=sign(w⋅x+b)(1)选取初值w0,b0;(2)在训练集中选取数据(xi,yi)(3)如果yi(w⋅x+b)≤0w←w+ηyixib←b+ηyi(4)转至(2),直至训练集中没有误分类点
对偶形式
对偶形式的基本思想是将w和b表示为实例x和标记y的线性组合形式,通过求解其系数而求得w和b,从而逐步更新w和b。那么w和b关于(x,y)的增量分别描述为:
w=i=1∑Nαiyixib=i=1∑Nαiyi其中,αi=niη.实例点更新越多,表示距离分离超平面越近,也就是比较难分类。
以下可以对照着原始形式来描述对偶形式:
输入:训练数据集T=(X1,Y1),(X2,Y2)...(XN,YN),其中,xi∈χ=Rn,yi∈Y=+1,−1,i=1,2,...N;学习率η(0<η≤1);输出:w,b;感知机模型f(x)=sign(i=1∑Nαiyixi⋅x+b)其中α=(α1,α2,α3,...αN)(1)α←0,b←0;(2)在训练集中选取数据(xi,yi)(3)如果yi(i=1∑Nαiyixi⋅xi+b)≤0αi←αi+ηb←+ηyi(4)转至(2)直至没有误分类点
其实对偶形式中训练实例仅以内积的形式出现,为了方便,其实可以将训练集中的实例间的内积先计算出来以矩阵形式进行存储,这个矩阵即是所谓的Gram矩阵,即:
G=[xi⋅xj]N×N
回过头来对比原始形式,可以看出原始形式实质每次更新的是两个向量,其计算量比较大,但是对偶形式由于可以先将实例间的内积先计算出来进行存储,因此对偶形式每次迭代更新的就是数据,相比较而言,更新代价小。
Novikoff定理的数学推导
定理描述:设训练集T=(x1,y1),(x2,y2)...(xN,yN)是线性可分的,其中xi∈χ=Rn,yi∈Y=+1,−1,i=1,2,3...N,则:(1)存在满足条件∣∣w^∣∣=1的超平面w^opt⋅x^=wopt⋅x+bopt=0将训练数据集完全正确分开;且存在γ>0,对所有i=1,2...N满足:yi(w^opt⋅x^)=yi(wopt⋅x+bopt)≥γ(2)令R=max∣∣xi^∣∣,则感知机在训练集的误分类次数k满足不等式:k≤(γR)2
证明
为了便于描述推导过程,将偏置b并入权重向量w中,同样也将输入向量作为扩充,加进常数1。
基于以上的提示,可得到w^=(wT,b)T;x^=(xT,1)T;x^∈Rn+1;w^∈Rn+11.证明(1):由于训练集是线性可分的,因此存在超平面将数据集完全正确分开,取超平面w^opt⋅x^=wopt⋅x+bopt=0,使得∣∣(^w)opt∣∣=1.对有限的i=1,2...N,均有yi(w^opt⋅x^)=yi(wopt⋅x+bopt)≥0所以存在,γ=min(yi(wopt⋅x+bopt)),使得yi(w^opt⋅x^)=yi(wopt⋅x+bopt)≥γ2.证明(2):感知机算法从w^=1开始,如果实例被误分类,则更新权重。令wk−1^是第k个误分类实例之前的扩充权重向量,即:wk−1^=(wk−1T,bk−1)T那么存在:yi(w^k−1⋅x^)=yi(wk−1⋅x+bk−1)≤0若(xi,yi)是被wk−1^=(wk−1T,bk−1)T误分类的数据,那么w和b的更新是:wk−1←wk−1+ηyixibk−1←bk−1+ηyi即:wk^=wk−1^+ηyixi^∴wk^⋅wopt^=(wk−1^+ηyixi^)⋅wopt^=wk−1^⋅wopt^+ηyiwopt^⋅xi^≥wk−1^⋅wopt^+ηγ≥wk−2^⋅wopt^+2ηγ≥wk−3^⋅wopt^+3ηγ...≥kηγ又∵∣∣wk^∣∣2=(wk−1^+ηyixi^)2=∣∣wk−1^∣∣2+2ηyiwk−1^⋅xi^+η2∣∣xi^∣∣2≤∣∣wk−1^∣∣2+η2∣∣xi^∣∣2≤∣∣wk−1^∣∣2+η2R2≤∣∣wk−2^∣∣2+2η2R2...≤kη2R2∴由不等式可得:kηγ≤wk^⋅wopt^≤∣∣wk^∣∣wopt^≤kηR∴k2γ2≤kR2∴既可得证:k≤(γR)2
思考
1.感知机模型的假设空间是什么?模型的复杂度体现在哪儿?
感知机是一种线性分类模型,属于判别模型。其假设空间实在定义特征空间中所有线性分类模型,也就是wx+b;
其模型复杂度体现在所有实例的特征数量,也就是特征维度上。