机器学习五 -- 机器学习的“Hello World”,感知机
机器学习五 -- 机器学习的“Hello World”,感知机
感知机是二类分类的线性分类模型,是神经网络和支持向量机的基础。其输入为实例的特征向量,输出为实例的类别,取+1和-1二值之一,即二类分类。感知机对应于输入空间(特征空间)将实例划分为正负两类的分离超平面,属于判别模型。我们对于感知机的学习旨在求出将训练数据进行线性划分的分离超平面,为此目标,我们需要导入基于误分类的损失函数,利用后文所提到的梯度下降法对损失函数进行极小化,求得感知机模型。
感知机模型
对此我们都知道了什么叫感知机了。这里给出一个比较数理化的定义:假设输入空间(特征空间)是XєRn,输出空间是Y={+1,-1}。输入xєX表示实例的特征向量,对应于输入空间的点,输出yєY表示实例的类别。由输入空间到输出空间的如下函数
f(x)=sign(w*x+b)
称为感知机。其中,w和b为感知机模型参数,wєRn叫做权值或权值向量,bєR叫做偏置,w·x表示w和x的内积,sign是符号函数,即为

感知机有以下几何解释:线性方程w·x+b=0对应于特征空间Rn的一个超平面S,其中w是超平面的法向量,b是超平面的截距。这个超平面将特征空间划分为两个部分,位于两部分的点分别被称为正、负两类。因此,超平面S即被称为分离超平面。
感知机学习策略
给定一个数据集合T={(x1,y1),(x2,y2),……,(xn,yn)},其中xiєX=Rn,yiєY={+1,-1},i=1,2,3,,,,n,如果存在某个超平面S:w·x+b=0能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,即对所有yi=+1的实例点,有w·xi+b>0,对所有yi=-1的实例点,有w·xi+b<0,则称数据集T为线性可分数据集;否则,称数据集T为线性不可分。
刚才我们有提到,我们感知机学习的目标就是求得一个能够将训练集正实例和负实例点完全正确分开,为了找到这样一个分离超平面,我们需要定义损失函数并将损失函数极小化。
给定一个数据集合T={(x1,y1),(x2,y2),……,(xn,yn)},其中xiєX=Rn,yiєY={+1,-1},i=1,2,3,,,,n,感知机sign(w·x+b)学习的损失函数定义为
L(w,b) = -∑yi(w·xi+b)(xiєM)
其中M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。
想一想:是不是可以肯定损失函数L(w,b)是非负的,为什么?
感知机学习算法
感知机学习算法转化为求解损失函数式子的最优化问题,下面简单介绍一下两个具体的算法:原始形式和对偶形式。
感知机学习的原始形式
感知机学习算法是误分类驱动的,如果我们人类逼格够高,给出任意一个线性可分数据集,可以马上脑补出一个将其数据集完全正确分类的模型,那么就用不着感知机学习算法了。所以,我们需要用算法来尽可能的优化函数来达到期望目标。其方法具体采用了随机梯度下降法。首先,任意选取一个超平面w0,b0,然后用梯度下降法不断的极小化目标函数,极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其下降。
输入:训练数据集T={(x1,y1),(x2,y2),……,(xn,yn)},其中xiєX=Rn,yiєY={+1,-1},i=1,2,3,,,,n;学习率η(0<η<=1);
输出:w,b;感知机模型f(x)=sign(w·x+b)。
(1)选取初值w0,b0;
(2)在训练集中选取数据(xi,yi)
(3)如果yi(w·xi+b)<=0
w ← w+ηyixi b ← b+ηyi
(4)转至(2),直至训练集中没有误分类点
感知机学习的对偶形式
对偶形式的基本想法是:将w和b表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w和b。
刚才说到如果yi(w·xi+b)<=0,那么w ← w+ηyixi b ← b+ηyi
假设修改了n次,则w,b关于(xi,yi)的增量分别是αiyixi和αiyi,这里αi=niη。
输入:训练数据集T={(x1,y1),(x2,y2),……,(xn,yn)},其中xiєX=Rn,yiєY={+1,-1},i=1,2,3,,,,n;学习率η(0<η<=1);
输出:α,b:感知机模型f(x)=sign{∑αjyjxj·x+b}(1<=j<=N)
其中α=(α1,α2,,,αn)T
(1)α ← 0 , b←0
(2)在训练集中选取数据(xi,yi)
(3)如果yi(∑αjyjxj·x+b(1<=j<=N))<=0
ai ← ai+η b ← b+ηyi
(4)转至(2)直到没有误分类数据。
机器学习五 -- 机器学习的“Hello World”,感知机的更多相关文章
- Spark机器学习 Day1 机器学习概述
Spark机器学习 Day1 机器学习概述 今天主要讨论个问题:Spark机器学习的本质是什么,其内部构成到底是什么. 简单来说,机器学习是数据+算法. 数据 在Spark中做机器学习,肯定有数据来源 ...
- 机器学习笔记(一)· 感知机算法 · 原理篇
这篇学习笔记强调几何直觉,同时也注重感知机算法内部的动机.限于篇幅,这里仅仅讨论了感知机的一般情形.损失函数的引入.工作原理.关于感知机的对偶形式和核感知机,会专门写另外一篇文章.关于感知机的实现代码 ...
- Andrew Ng机器学习 五:Regularized Linear Regression and Bias v.s. Variance
背景:实现一个线性回归模型,根据这个模型去预测一个水库的水位变化而流出的水量. 加载数据集ex5.data1后,数据集分为三部分: 1,训练集(training set)X与y: 2,交叉验证集(cr ...
- 机器学习五 EM 算法
目录 引言 经典示例 EM算法 GMM 推导 参考文献: 引言 Expectation maximization (EM) 算法是一种非常神奇而强大的算法. EM算法于 1977年 由Dempster ...
- Spark机器学习· 实时机器学习
Spark机器学习 1 在线学习 模型随着接收的新消息,不断更新自己:而不是像离线训练一次次重新训练. 2 Spark Streaming 离散化流(DStream) 输入源:Akka actors. ...
- Coursera 机器学习课程 机器学习基础:案例研究 证书
完成了课程1 机器学习基础:案例研究 贴个证书,继续努力完成后续的课程:
- coursera机器学习笔记-机器学习概论,梯度下降法
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- 数学之路(3)-机器学习(3)-机器学习算法-SVM[7]
SVM是新近出现的强大的数据挖掘工具,它在文本分类.手写文字识别.图像分类.生物序列分析等实际应用中表现出非常好的性能.SVM属于监督学习算法,样本以属性向量的形式提供,所以输入空间是Rn的子集. 图 ...
- [机器学习&数据挖掘]机器学习实战决策树plotTree函数完全解析
在看机器学习实战时候,到第三章的对决策树画图的时候,有一段递归函数怎么都看不懂,因为以后想选这个方向为自己的职业导向,抱着精看的态度,对这本树进行地毯式扫描,所以就没跳过,一直卡了一天多,才差不多搞懂 ...
随机推荐
- Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)
Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...
- JS中 toString() & valueOf()
数据的转换 所有对象继承了两个转换方法: 第一个是toString(),它的作用是返回一个反映这个对象的字符串 第二个是valueOf(),它的作用是返回它相应的原始值 toString() toSt ...
- vs 2010 中类文文件模板的修改
类模板 文件的修改,以前也修改过,这次有个同事问我,搞了有一会才搞定,这里还是记录分享下. 如果想在每次创建文件时,自动生成文档注释(注意是自动生成文档注释而不是帮助文档),如下面的代码,需要设置VS ...
- [水]用vb写了个PCB
这学期我们学操作系统,所以得写个PCB. 于是我借鉴了一下windows的PCB,写了这个 Imports System.Runtime.InteropServices ''' <summary ...
- 用stimulsoft Reports报表工具制作简单报表的过程
这是在数据库sql server中People表的数据
- visual studio 2013 配置开发环境
https://www.visualstudio.com/explore/xamarin-vs http://sourceforge.net/projects/easyeclipse/files/?s ...
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据 ...
- Programming in Go (Golang) – Setting up a Mac OS X Development Environment
http://www.distilnetworks.com/setup-go-golang-ide-for-mac-os-x/#.V1Byrf50yM8 Programming in Go (Gola ...
- 个人收集整理的5Ucms标签
{field:cid} 当前栏目id {field:id} 当前页面id {field:content} 当前页面内容 [List:Modifytime $format=yy-mm-dd] 文章发布 ...
- Vue条件渲染
gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson08 一 v-if显示单个元素 注意else只能跟在v-if或者v-s ...