机器学习五 -- 机器学习的“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函数完全解析
在看机器学习实战时候,到第三章的对决策树画图的时候,有一段递归函数怎么都看不懂,因为以后想选这个方向为自己的职业导向,抱着精看的态度,对这本树进行地毯式扫描,所以就没跳过,一直卡了一天多,才差不多搞懂 ...
随机推荐
- [C#高级编程]基础知识摘要一
核心C#: 值类型存储在堆栈中,而引用类型存储在托管堆上. object类型可以用于两个目的: 可以使用object引用绑定任何子类型的对象 object类型执行许多一般用途的基本方法,包括Equal ...
- 2013 - Lost connection to MySQL server at 'reading initial communication packet' 错误解决
一.操作与状态 当使用MySQL客户端连接localhost本地数据库时,连接不上,报错.(使用Tomcat连接数据库时可以连接上,但需要很长的请求时间.) 二.原因与解决办法 关于这个问题网上的解决 ...
- SQL Server分布式数据库技术(LinkedServer,CT,SSB)
SQL Server自定义业务功能的数据同步 在不同业务需求的驱动下,数据库的模块化拆分将会面临一些比较特殊的业务逻辑处理需求.例如,在数据库层面的数据同步需求.同步过程中,可能会有一些比较复杂的业务 ...
- Brute Force - B. Candy Boxes ( Codeforces Round #278 (Div. 2)
B. Candy Boxes Problem's Link: http://codeforces.com/contest/488/problem/B Mean: T题目意思很简单,不解释. ana ...
- 【C#】线程协作式取消
Microsoft .Net Framework 提供了一个标准的取消操作的模式.这个模式是协作式的,意味着你想取消的操作必须显示地支持取消. CLR为我们提供了两个类: System.Threadi ...
- c#调用word com组件 替换书签套打
安装office2007,添加com引用Microsoft Word12.0 Object Library和Microsoft Office12.0 Object Library using Syst ...
- Vs2012出现停止工作问题的解决方法
我的VS2012总是出现问题,打开项目会,更改移动控件位置也会,后来在网上找到了解决方法 这是出现问题
- mysql防止重复插入记录方法总结
mysql防止重复插入记录方法总结 防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了. ...
- PHP框架中最喜欢的WindFramework
题外话, 像我这样从小到大作文打0分居多的人,写文章,实在是没有耐心的,抱歉. 尽管自己也山寨过许多PHP框架,但被山寨的对象中,最喜欢的是WindFramework. Yii其实更好,但太大而全. ...
- spring事件通知机制详解
优势 解耦 对同一种事件有多种处理方式 不干扰主线(main line) 起源 要讲spring的事件通知机制,就要先了解一下spring中的这些接口和抽象类: ApplicationEventPub ...