统计学习方法笔记(二)

来源:互联网 发布:windows 8.1K 编辑:程序博客网 时间:2024/04/27 18:28

      (二)

      这部分讲的是感知机,简单来说就是二类分类的线性分类模型,是神经网络和支持向量机的基础。

      首先给出感知机的定义:

      定义1:假设输入空间(特征空间)是X ,输出空间是Y,Y取值为-1或1,输入X 表示实例的特征向量, 对应于输入空间(特征空间〉的点:输出Y表示实例的类别,由输入空间到输出空间的如下函数就称为感知机。

                                           f(X)=sign(w*x+b)

       简单来说就是找到一个超平面将数据集的正负实例分开。

       而感知机的任务就是想方设法的找出这个超平面。

       由上一篇博客中我们知道,有了模型之后就要确定策略,即要定义损失函数并将损失函数极小化。

       这里再插入一个定义,数据集的线性可分性:

        

         为什么要引入这个定义?因为感知机的前提是训练数据集是线性可分的。

         接下来,我们来定义损失函数:

         首先写出输入空间中任一点x0到超平面S的距离:

                                                      

          其中||w||为w的L2范数。

          其次,对于误分类的数据(xi,yi)来说

                                                             -yi(w*xi+b)>0

          这样的话,xi到超平面S的距离就可以写成

                                                        

           这样,假设超平面S 的误分类点集合为M. 那么所有误分类点到超平面S 的总距离为

                                          

           不考虑左边的系数,我们就得到了感知机学习的损失函数

                                      

           这个损失函数就是感知机学习的经验风险函数。

           那么接下来,我们就要求极小化这个损失函数的解

                           

        这里我们采用经典的随机梯度下降法,首先,任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化目 标函数,极小化过程中不是一次使M 中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

          先求出损失函数的梯度


         随机选取一个误分类点(xi,yi),对w,b进行更新:

                                                          

          接下来给出感知机学习算法的整个流程:

       

       整个算法意思就是,当有点被误分的时候,根据随机梯度下降法公式对w,b进行更新,以减少该误分点与超平面S之间的距离,一直到超平面越过误分点使其被正确分类。

注1:随机梯度下降法,是向负梯度方向进行的,所以迭代公式里 为 + 号。

注2:从算法流程中,也可看出,感知机存在许多解,既依赖于初值的选择,也依赖于迭代过程中误分点的选择顺序。

1 0
原创粉丝点击