您的位置:首页 > 其它

整理:统计学习-2 感知机

2016-03-08 20:54 211 查看
感知机是线性分类器,属于判别模型。在二维空间里,感知机模型就是一条直线,f(x)=a·x+b,a就是该直线超平面的法向量,b就是截距。需要注意的是,这里a·x是内积,比如一个输入是x=(x1,x2,x3),那么a=(a1,a2,a3),a·x=a1x1+a2x2+a3x3,一定要转换思维。形象的看:



感知机的作用就是对输入的点分类,看它是属于正类还是负类,所以就用到符号函数,f(x)=sign(w·x+b),f(x)只有两种情况,正类或负类。

策略

定义:数据集的线性可分性

给定一个数据集

T={(x1,y1),(x2,y2),...,(xn,yn)},其中xi属于输入特征空间即实数空间,yi属于输出空间{+1,-1},i=1,2,...N,如果存在某个超平面S

w·x+b=0

能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有yi=+1的实例i,有w·x+b>0,对所有yi=-1的实例 i,有w·x+b<0,则称数据集T为线性可分数据集。否则为线性不可分。

当然,感知机学习的数据都是线性可分的。感知机的学习策略同样用到损失函数,这里的思路是评价错误分类点到超平面的总距离,如果这个距离越小,那么这个分类器效果越好。首先,某一点到超平面S的距离为:

(1/||w||) |w·x+b|,如果该点被误分类,那么输出y就=-1,此时误分类点的距离就可以表示为: -y(1/||w||) (w·x+b),那么我们就可以得到损失函数,即所有误分类点到超平面的距离和(可以去掉w的模,以简化计算):



那么我们后面的任务就是要把这个损失函数即经验风险函数最小化。

算法

原始形式

根据上一篇的储备知识,我们利用梯度下降法来求上面损失函数的最小情况。

对L求w和b的梯度很好求,





然后就是不断迭代直到w,b的结果不会产生误分类点:

1、选取初值 w0,b0;

2、在训练集中选取数据(xi,yi);

3、如果yi(w·xi+b)<=0,

另 w <- w+nyixi, b<-b+nyi

4、转至2,直至无误分类点。

这里的n是学习率,就是梯度下降法里的步长。这种算法实现简单,也比较直观,称为感知机的原始算法。

对偶形式

感知机算法的对偶形式和原始形式相对应,主要思想就是

将参数w和b表示为实例xi和标记yi的线性组合形式,通过求解其系数而求得w和b。

我们从w <- w+nyixi, b<-b+nyi ,可以将w和b归纳为 w=sigma(ai yi xi),b=sigma(ai yi),i=1,2,...,N。如果我们将步长设为1,那么ai就表示第i个实例点由于误分类而进行的更新次数。实例点更新次数越多,说明它离超平面越近,也就越难分类。

对偶形式的算法步骤因为符号函数改变,f(x)=sign(sigma(aj yj xj ·xi+b)),而在第3步更新时变为:

ai <- ai+n

b<- b+nyi

对偶形式其实是使原始形式的计算更加简便了,我们可以事先计算出xi和xj的内积,这样迭代更快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: