Perceptron Learning Algorithm

感知器算法,

本质是二元线性分类算法,即用一条线/一个面/一个超平面将1,2维/3维/4维及以上数据集根据标签的不同一分为二。

算法确定后,根据W取值的不同形成不同的h,构成假设集合H。

如2维感知器算法,根据w0,w1,w2的不同取值,构成了不同的h,这些h最终构成H。注意为了方便表示,将阈值的相反数记为w0,对应的数据点增加一维x0,恒为1。

而算法就是根据给定数据集D从H中选出与目标模式f最为相似的g。

更新规则/学习过程,

遍历数据集合,若遇到异常点,即由当前W更新为新的W,

若异常点的y值为+1,表明X与当前W的内积值为负,角度过大,更新后角度将会变小;若异常点的y值为-1,表明X与当前W的内积值为正,角度过小,更新后角度将会变大。

更新W的本质其实是从H中选出与f更为相似的h的过程。

注意,更新后不能保证异常点变为正常点,只是异常的程度小了点。

何时停止更新?

在当前W的情况下,遍历D中所有数据点,无异常点时停止更新。

一定能够保证能停止更新吗?即在当前W下无法找到一个新的W使得对应的h与f更为接近?

只要数据线性可分就能!

Wf与Wt的内积值随着更新次数的上升而增大,同时,Wt的模也在增大,

不过,内积增大的程度大于模增大的程度,保证了随着更新次数的上升,Wt与Wf越来越接近。

PLA的优缺点:

优点:简单、快速、任意维度;

缺点:假设数据线性可分,然而我们并不知道f,也就不知道是否可分,再来,要是知道线性可分,W也已经知道了,没有必要再用PLA了;

经过多少次更新才能收敛也不知道,如上证明,T与Wf有关,然而我们不知道Wf。

Pocket Algorithm

若数据线性不可分,使用PA,

即既然异常点无法避免,PA在H中找到一个使得异常点数目最小的h作为g。

注:O(nk)为多项式型时间复杂度,O(kn)/O(n!)/O(>n!)/...为指数型时间复杂度。

问题分为可解问题和不可解问题,多项式型时间复杂度的可解问题为P问题,验证时为多项式型时间复杂度的为NP问题,能否可解未知。

P问题肯定是NP问题,NP问题不一定是P问题。

PA,初始化W,放到口袋里,若遇到异常点,使用PLA的更新规则得到新的W,遍历数据集,若是新的W下异常点的数目更少,则用新的W替换旧的W放到口袋中,否则不替换。继续遍历数据集,得到下一个异常点,重复上述过程,直到在遍历一轮完整数据集的过程中,口袋里的W从未变过,则停止。

口袋里放的永远是目前使得异常点最少的W。


如果数据集是线性可分的,PLA和PA都能够实现D内无异常点的分类,

但是PA的时间会长于PLA,因为多了比较两个不同的W下遍历一轮数据所得异常点数目多少的过程。

02 Learning to Answer Yes/No的更多相关文章

  1. 机器学习基石:02 Learning to Answer Yes/No

    Perceptron Learning Algorithm 感知器算法, 本质是二元线性分类算法,即用一条线/一个面/一个超平面将1,2维/3维/4维及以上数据集根据标签的不同一分为二. 算法确定后, ...

  2. 机器学习基石笔记:02 Learning to Answer Yes/No、PLA、PA

    原文地址:https://www.jianshu.com/p/ed0aee74523f 一.Perceptron Learning Algorithm (一)算法原理 PLA本质是二元线性分类算法,即 ...

  3. 机器学习基石 2 Learning to Answer Yes/No

    机器学习基石 2 Learning to Answer Yes/No Perceptron Hypothesis Set 对于一个线性可分的二分类问题,我们可以采用感知器 (Perceptron)这种 ...

  4. 机器学习基石(台湾大学 林轩田),Lecture 2: Learning to Answer Yes/No

    上一节我们跟大家介绍了一个具体的机器学习的问题,以及它的内容的设定,我们今天要继续下去做什么呢?我们今天要教大家说到底我们怎么样可以有一个机器学习的演算法来解决我们上一次提到的,判断银行要不要给顾客信 ...

  5. 林轩田机器学习基石笔记2—Learning to Answer Yes/No

    机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...

  6. CS萌新的汇编学习之路02 Learning of Assembly Language

    第二节课  寄存器 1. 寄存器的定义: 进行信息储存的器件,是CPU中程序员可以读写的部件,通过改变各种寄存器中的内容来实现对CPU的控制 2. 寄存器的种类: 本节课学习通用寄存器和段寄存器 2. ...

  7. 《Applying Deep Learning to Answer Selection: A Study And an Open Task》文章理解小结

    本篇论文是2015年的IBM watson团队的. 论文地址: 这是一篇关于QA问题的一篇论文: 相关论文讲解1.https://www.jianshu.com/p/48024e9f7bb22.htt ...

  8. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  9. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

随机推荐

  1. 项目架构开发:数据访问层之Cache

    数据访问层简单介绍 数据访问层,提供整个项目的数据访问与持久化功能.在分层系统中所有有关数据访问.检索.持久化的任务,最终都将在这一层完成. 来看一个比较经典的数据访问层结构图 大概可以看出如下信息 ...

  2. 关于IAR开发STM32配置

    因为自己要学Msp430还有ZigBee发现IAR真的挺好用,,,所以以后想着就用IAR写单片机程序,, 这次配置我不会把程序的配置弄得有条理,分开文件夹存放,,,我要把那些文件全都放到一块,,弄得乱 ...

  3. js基础---cookie存储

    一.Cookie是什么Cookie是一种客户端(浏览器)把用户信息以文件形式存储到本地硬盘的技术,说白了就是一种浏览器技术 二.Cookie的作用Cookie的作用很单一,就是存储客户数据.(存储数据 ...

  4. Memcached·Redis缓存的基本操作

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  5. Java系统属性与Preferences API的简单介绍

    系统属性在和Preferences API都是键值对,前者只能当前应用程序中共享数据,而后者可以在用户的各个应用或用户之间共享数据. 系统属性 Java 的系统属性决定了 Java 程序实际运行的环境 ...

  6. 警惕!MySQL成数据勒索新目标

    据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击 ...

  7. Robot Framework自动化测试环境部署

    文档版本:v1.0 作者:令狐冲 如有问题请发邮件到:1146009864@qq.com 使用Robot Framework框架(以下简称RF)来做自动化测试. 模块化设计 1.所需环境一览表 软件 ...

  8. HTML初学者常用标签及属性

    1.HTML5头部结构   [DOCTYPE html] 声明文档类型为HTML5文件. 文档声明在HTML5文档必不可少,且必须放在文档的第一行.   [meta标签] 1-charset属性:单独 ...

  9. Instant App 即将到来,Android 集权或将加速分裂

    在境外,Android 的体验将越来越好,在中国,Android 的更新可能将止步于6.0! 话题讨论:Instant App 在中国将何去何从? 以下为谷歌原创文章 2017-03-03 Googl ...

  10. 百度地图API-覆盖物

    这两天一直在研究百度地图开放平台的各种好玩的东西,闲暇之余自己动手体验了一番,果然是妙趣横生,而且还可以自定义理想中的地图,不得不说,百度地图的开放平台为我们的应用提供了很多的便利,之前我们已经学习了 ...