统计学习方法—第二章 感知机(perceptron)(持续更新)

来源:互联网 发布:nginx转发不同ip和域名 编辑:程序博客网 时间:2024/06/04 20:08
感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。类别分别用+1和-1二值表示。顾名思义,这个模型能通过一个“黑箱”“感知到”输入变量的属性/特点,从而将变量分类。感知机(perceptron)是监督学习的一种,监督学习的模型可分为生成模型和判别模型,其中感知机模型为判别模型。感知机模型的工作原理,我们可以简单的理解为:在二维平面里,一条直线把坐标平面里的点分为+1和-1两类。在三维空间里面,则是一个平面将空间里面的点分为+1和-1两类。延伸到多维空间里面,类似的道理。而将平面空间分类的“线”或者“面”,我们称作超平面(seperating hyperplane)。在支持向量机学习中也应用到超平面的概念,可以简单的将支持向量机理解为加了距离限制的感知机。感知机模型在分类的时候,会出现将+1类的点分到-1类或者将-1类的点分到+1类。我们将这种误分类用损失函数表示,因此整个感知机模型学习的目标就是将损失函数极小化。感知机模型可以表示为 :f(x)
=sign(w*x+b),w被称为权值(weight)或者权值向量(weight vector)。b被称为偏置(bias)。sign函数可表示为sign(x)=+1(x=>0)OR sign(x)=-1(x<0)。其中损失函数定义就是误分离点到超平面之间的总距离,感知机sign(w*x+b)学习的损失函数表示
为:
这个损失函数就是感知机学习的经验风险函数。因此感知机学习问题就转化为求解损失函数的最优化问题,最优化方法是随机梯度下降法
感知机学习算法是误分类驱动的,具体算法包括原始形式对偶形式。两种算法都是对w和b进行不断的迭代更新,从而使模型达到最优化。
具体迭代更新将用python来实现。

综上,感知机的学习策略就是:
感知学习目标--------->将正负实例点分离----------->超平面---------------->评价模型用到损失函数------------->w,b迭代更新----------->将损失函数最少化



在感知机学习中涉及到范数,sigmoid神经元,随机梯度下降法等等,这些博客介绍的挺好的。
  • 感知机和支持向量机的区别:https://www.zhihu.com/question/51500780             --------- SVM是加了距离限制的感知机
  • sigmoid神经元:  https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap1/c1s3.html
  • 随机梯度下降法 : https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap1/c1s5.html
  • 统计学习方法第二章课本
  • 感知机学习笔记(博客): http://www.cnblogs.com/OldPanda/archive/2013/04/12/3017100.html
  • 感知机学习笔记(博客2):http://blog.csdn.net/dream_angel_z/article/details/48915561
  • 感知机收敛证明:http://www.cs.columbia.edu/~mcollins/courses/6998-2012/notes/perc.converge.pdf
  • 感知机对偶形式:https://www.zhihu.com/question/26526858
  • 梯度下降算法:https://en.wikipedia.org/wiki/Gradient_descent
  • 从感知机到支持向量机:http://staff.ustc.edu.cn/~qiliuql/files/DM2013/2013SVM.pdf
  • 超平面的理解:http://blog.csdn.net/m0_37658225/article/details/70048959          ---------------就是将二维平面里面的直线方程,推广到三维平面里面的面方程,推导到多维平面里面的
  • L1范数与L2范数的理解   http://blog.csdn.net/zouxy09/article/details/24971995
  • 感知机python实现:http://www.cnblogs.com/bsdr/p/5405082.html