Title: 感知器基础
Date: 2016-10-19 17:53:50
category: 机器学习
tags: CS, 机器学习, 人工智能
summary: 感知器基础, 也是模型, 策略, 算法, 应该还有证明
引言
致谢
本文来自以下内容:
- 李航《统计学习方法》第2章 感知机
- 没有参考但可以参考 林轩田《机器学习基石》第二单元?
- Hinton Coursera Neural Network for Machine Learning
模型
我们现在打算根据简单原则先弄个线性模型, 即 y=w*x+b
那简单, y=w∗x+b 是个超平面,分开了男女,一边男一边女,不就是平面上平面下各是一类吗,所以对应数学表达式,就是求w*x+b的正负,写作:
策略
感知机 sign(w∗x+b) 学习的损失函数定义为 L(w,b)=−∑xi∈Myi(w∗xi+b)
是否是w,b的连续可导函数, 书上也只是概念上的分析,并没有推导、证明,反正它就是。
感知机学习的策略就是求:
算法
绕了大圈,终于开始搞算法了——计算机专业一般都听说过 程序=数据结构+算法,但在机器学习中,模型选定很难,策略选择一开始好说,但转换就麻烦了,反倒是最后的算法部分,很多都使用梯度下降法(stochastic gradient descent),要么像SVM直接说凸二次规划问题,算法细节上的缺失让我经常有名不副实的感觉 8-)
感知机学习的算法也是用的随机梯度下降法#todo, 原始形式:
- 选取初值 w0,b0
- 在训练集中选取数据$(x_i,y_i)
- 如果 $y_i(w*x_i+b) \le 0w = w + \eta y_i x_i \ b = b + \eta y_i
- 转至(2),直到训练集中没有误分类点(或可分性未知情况下,迭代若干次,选误分类最小的)
编程实践
纸上得来终觉浅,绝知此事要躬行。 所以我制作了一个ipython notebook的练习, 链接下载地址
有ipython notebook的朋友知道如何使用。
没有ipython notebook的朋友, 如果想了解python,可以自己下载python,安装ipython\jupyter包。
觉得配置麻烦(其实不麻烦)的,可以参考 虚拟机