感知机

      感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1,-1两个值。感知机通过训练数据得出一个分离超平面,根据这个分离超平面对新的输入实例进行分类,取+1,-1。感知机的学习算法分为原始形式和对偶形式,使神经网络与支持向量机的基础。


感知机模型

       假设输入空间(特征空间)是X∈R^n,输出空间是Y∈{+1,-1},输入x∈X表示实例的特征向量,对应于输入空间的点,输出y∈Y表示实例的类别由输入空间到输出空间的感知机数学模型是:

                                    f(x)=sign(w·x+b)                                     

其中,w和b为感知机的模型参数,w∈R^n叫做权值或权值向量,b∈R叫偏置,w·x表示w和x的内积。sign是符号函数,即

                                      sign(x)= +1,   x>=0

                                                     -1,   x<0                               

我们所求的超几何平面的公式为

                                     w·x+b=0

通过此超平面分类,输入特征若在超平面的一侧输出为+1,在另一侧输出为-1 。


感知机学习策略

        若存在某个超平面S

                                   w·x+b=0

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

       感知机采用的损失函数是误分类点到超平面S的总距离,其中一点到超平面的距离为

                                 1/||w||*|w·x+b|

这里||w||是w的L2范数。

        对于误分类点来说,满足下列关系

                                  yi*(w·xi+b)<0

因此误分类点xi到超平面S的距离是

                                 - (1/||w||*|w·x+b|)

不考虑1/||w||,就得到损失函数。

         假定给定训练数据集

                                T={(x1,y1),(x2,y2),......,(xn,yn)}

我们定义的损失函数为L(w,b)=-∑yi(w·xi+b


感知机学习算法

原始形式:

       (1)选取初值w0,b0

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

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

                                       w<<w+η*yi*xi

                                       b<<b+η*yi

η为学习率,0<η<=1

       (4)转至(2),只知训练中没有误分类点。

对偶形式:

        在对w,b迭代的过程中,逐步修改w,b,设修改了n次,则w,b关于(xi,yi)的增量分别是ai*yi*xi和ai*yi,这里ai=ni*η。这样,学习到最后的w,b分别可以表示为

                                               w=∑(ai*yi*xi)

                                               b=∑(ai*yi)

       (1)给定初始值a=0,b=0

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

       (3)如果yi(∑aj*yj*xj·xi+b)<=0

                                              ai<<ai+η

                                              b<<b+η*yi

       (4)转至(2)知道没有误分类数据。

算法的收敛性:

           当训练数据集线性可分时,感知机的学习算法是收敛的,感知机算法在训练数据集上的误分类次数k满足不等式

                                                            k<=(R/γ)^2


本文为自己在学习算法的过程中为了记录而写的,若形成侵权请联系我,我会第一时间改正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值