统计学习方法之感知机模型

1.前言

           写这篇博客的时候,我头晕脑胀的。晚上11点多,特别想睡觉,但是一种深深的负罪感把我从床上拉了起来。世界上最遥远的距离,就是明明非常喜欢那张床,却还得假装丝毫没有把它放在心上。为什么要写感知机呢?这么一个老古董。因为我正好看到了《统计学习方法》的那一课。欲生欲死、死不足惜、夕阳西下、夏天真的特别容易困。

2.感知机模型-随机梯度下降法

           关于感知机的正儿八经的博客一大堆,如果一味的重复别人的套路就太无聊了。所以这篇我打算以问题驱动的方式,来解释这个算法。就当提前面试演练吧!

           感知机模型是做什么的?分类的。几分类?二分类。怎么分的?使用一个超平面分的。什么叫做超平面?如果输入变量是二维的可以用一条直线分开,如果输入是三维的那就是一个平面,如果是n维的那就是n-1维的一个超平面,为了一致我们统一叫做超平面。超平面是怎么来的?梯度下降得到的。可以具体解释一下吗?我可以拒绝吗?那我只好拒绝给你发offer。好吧,当我没问。

        

            1.您看上面的图,美吗?首先我们的数据集必须是线性可分的(不可分你让我分个毛啊),你仔细听我上面说的那句话,有没有发现什么秘密?线性可分,对、这是重点。那它就满足我们的模型要么是一条线,要么是多条直线组成的平面或者超平面。

           2.怎么算呢?这就贼简单了。首先随便画一条直线WX+b=0(此处的W,X都是向量,WX表示的是内积,即对应位置元素相乘),知道为什么要随机吗?有本事你不随机一个给我看看。然后选择一个分错的点,把直线往误分的点方向调节,不断的调直到所有的点都分对了,模型的活就干完了(所以你知道为什么人们每天有干不完的活了吧,因为模型就是为了干活才被训练的)

          3.怎么知道分错了呢?

                分对了是这样:wx+b>=0表示为正例1,wx+b<0表示为负例-1;如果不符合就是分错了;比如正例算出来小于0,负例算出来大于0;

          4.如何去调节分错的点?

                这个问题比较麻烦,聊完估计得半个小时,如果你听懂了offer估计也就到手了。因为是梯度下降,所以我们分为四步,第一步选择一个分错的点,第二步求损失loss(也就是分错的点到超平面的距离,机器学习跟我们的应试教育不同的一点是:我们的满分是100分,错题扣分。机器的满分是0分,对一个扣一个分数,在这里学渣轻松考清华。);第三步求梯度;第四步使用梯度调节参数w和b;

               1.选择一个分错的点

               2.损失loss

                          点xi到超平面WX+b=0的距离,可以这么表示,(wxi+b) / ||w||,因为是求距离,所以可以这样|wxi+b|/||w||

                对于分错的点来说yi和wxi+b的符号是相反的;所以我们又可以写成这样-yi(wxi+b)/||w||,因为损失函数是求上面式                  子的最小值,分母是一个常数,所以我们令分子最小即可,最终的损失函数为 下面这样,m表示所有分错的点;

                         

               3.求梯度

                        损失函数关于参数w和b的梯度分别为:

                        

              4.使用梯度调节参数w和b

                    

              5.最后当所有点都正确分类,就停止训练,得到的w和b就是最终模型。

           

3.感知机模型-对偶形式

         基于上面的感知机模型,对偶模型进行了一些改进。初始的W为0,那么n时刻的w就是所有的点对w的更新之和,每个点更新的次数可以表示为这个点被分错的次数,b也是一样。基于此就得出了w和b的新表达式,其中α为点i对应的w更新的次数*学习率η;一般离超平面越近分错的次数也就越多;η*yi*xi表示一个点一次对w的更新,η*yi表示一个点一次对b的更新 

         

      更新的流程为:

                  

      我们的预测就变成了下面这样,其中xi*x的内积我们可以提前计算好格拉姆矩阵(内积矩阵),这样训练的速度会有所提升,所以在通常情况下对偶形式的速度会比随机梯度下降法要快一些。

                   y=\sum_{i=1}^{n}\alpha iyixi * x + \sum_{i=1}^{n}\alpha iyi

4.总结

    我们介绍了感知机模型,其核心思想是寻找一个超平面对数据进行二分类。使用点到超平面的距离来度量损失。其中有两种常用模型,一种随机梯度下降法,每次选择一个分错的点计算loss,更新w;另一种是对偶算法,使用所有的点历史对w和b的更新来表示w和b,每次更新本次分错的点对应的次数,优点是可以提前计算x的格拉姆矩阵,提升训练速度。

  我用清洁的心来缓解疲劳,用善良的灵来为自己疗伤。下面这个视频我看了不下十遍,阿詹将军完美的向我们阐述了什么叫做字字珠玑,撼动人心的九个大字:‘趁着年轻,我偏要勉强’

詹青云:趁着年轻,我偏要勉强——2018华语辩论世界杯决赛,哈佛耶鲁联队vs中国人民大学

猜你喜欢

转载自blog.csdn.net/gaobing1993/article/details/108230546