机器学习五 -- 机器学习的“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”,感知机的更多相关文章

  1. Spark机器学习 Day1 机器学习概述

    Spark机器学习 Day1 机器学习概述 今天主要讨论个问题:Spark机器学习的本质是什么,其内部构成到底是什么. 简单来说,机器学习是数据+算法. 数据 在Spark中做机器学习,肯定有数据来源 ...

  2. 机器学习笔记(一)&#183; 感知机算法 &#183; 原理篇

    这篇学习笔记强调几何直觉,同时也注重感知机算法内部的动机.限于篇幅,这里仅仅讨论了感知机的一般情形.损失函数的引入.工作原理.关于感知机的对偶形式和核感知机,会专门写另外一篇文章.关于感知机的实现代码 ...

  3. Andrew Ng机器学习 五:Regularized Linear Regression and Bias v.s. Variance

    背景:实现一个线性回归模型,根据这个模型去预测一个水库的水位变化而流出的水量. 加载数据集ex5.data1后,数据集分为三部分: 1,训练集(training set)X与y: 2,交叉验证集(cr ...

  4. 机器学习五 EM 算法

    目录 引言 经典示例 EM算法 GMM 推导 参考文献: 引言 Expectation maximization (EM) 算法是一种非常神奇而强大的算法. EM算法于 1977年 由Dempster ...

  5. Spark机器学习· 实时机器学习

    Spark机器学习 1 在线学习 模型随着接收的新消息,不断更新自己:而不是像离线训练一次次重新训练. 2 Spark Streaming 离散化流(DStream) 输入源:Akka actors. ...

  6. Coursera 机器学习课程 机器学习基础:案例研究 证书

    完成了课程1  机器学习基础:案例研究 贴个证书,继续努力完成后续的课程:

  7. coursera机器学习笔记-机器学习概论,梯度下降法

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  8. 数学之路(3)-机器学习(3)-机器学习算法-SVM[7]

    SVM是新近出现的强大的数据挖掘工具,它在文本分类.手写文字识别.图像分类.生物序列分析等实际应用中表现出非常好的性能.SVM属于监督学习算法,样本以属性向量的形式提供,所以输入空间是Rn的子集. 图 ...

  9. [机器学习&数据挖掘]机器学习实战决策树plotTree函数完全解析

    在看机器学习实战时候,到第三章的对决策树画图的时候,有一段递归函数怎么都看不懂,因为以后想选这个方向为自己的职业导向,抱着精看的态度,对这本树进行地毯式扫描,所以就没跳过,一直卡了一天多,才差不多搞懂 ...

随机推荐

  1. 【团队冲刺总结】一个编码人员的反(tu)思(cao)

    消失了半个多月了啊,算算时间,好像确实有近个把月没有好好的写博客来了.我一直很想写博客的,之前有老师问过写博客的动力是什么.我想了想,我觉得可能是我比较喜欢看书吧,不管是专业书还是小说(好吧,我承认, ...

  2. BZOJ1008 /乘法原理+快速幂 解题报告

    1008: [HNOI2008]越狱 Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生 ...

  3. 检测局域网中还可用的ip地址

    #!/bin/bash ` do { .$i &>/dev/null ];then echo "192.168.1.$i is not used" fi } done

  4. Win10安装.net framework 4.0失败提示已是操作系统一部分如何解决

    有位用户因为工作需求,所以想在win10系统电脑中安装microsoft .net framework 4.0.可是在安装过程中却失败了,还遇到提示"Microsoft.net framew ...

  5. 自定义ConfigurationSection,创建多个嵌套的ConfigurationElementCollection节点

    由于接口地址都是固定的,所以想到使用自定义节点,来将接口都配置到web.config中. 很快,v1.0版本出炉: public class RequestConfigSection : Config ...

  6. HDFS Append时packet的格式以及DataNode对block/checksum文件的处理

    HDFS Append时packet的格式以及DataNode对block/checksum文件的处理 HDFS的Block一般比较大,默认64MB/128MB,客户端给DataNode发数据实际上是 ...

  7. Winform开发框架之权限管理系统功能介绍

    权限管理系统的重要特性总结: 1) 高度集成的权限系统.独立模块,能快速整合使用.2) 符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制.3) 多数据库架构支持,内置支持Sql ...

  8. css中visiblity和display异同

    visiblity 是设置元素的可见性,即可见 / 隐藏:隐藏后元素所占有位置保留: display 是设置元素按什么样的方式来显示,是按块显示,显示成一条线的形式,显示为“消失”等等,当displa ...

  9. PHP入门:在Windows中安装PHP工作环境

    PHP入门:在Windows系统中分别安装PHP工作环境 一.什么是LAMP? Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是 ...

  10. C#130问,初级程序员的面试宝典

    首先介绍下,目前C#作为一门快速开发的语言,在面试的过程中需要注意的技术知识点,了解下面的知识点对于初级工程师入职非常有帮助,也是自己的亲身体悟. 1.    简述 private. protecte ...