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。
PA不影响PLA的正常运行,只是从历史W中挑出使得样本内分类错误最少的W作为最终返回值。
如果数据集是线性可分的,PLA和PA都能够实现D内无异常点的分类,
但是PA的时间会长于PLA,因为多了比较两个不同的W下遍历一轮数据所得异常点数目多少的过程。
 

机器学习基石:02 Learning to Answer Yes/No的更多相关文章

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

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

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

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

  3. 02 Learning to Answer Yes/No

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

  4. 机器学习基石 4 Feasibility of Learning

    机器学习基石 4 Feasibility of Learning Learning is Impossible? 机器学习:通过现有的训练集 \(D\) 学习,得到预测函数 \(h(x)\) 使得它接 ...

  5. 机器学习基石 3 Types of Learning

    机器学习基石 3 Types of Learning Learning with Different Output Space Learning with Different Data Label L ...

  6. 机器学习基石 1 The Learning Problem

    机器学习基石 1 The Learning Problem Introduction 什么是机器学习 机器学习是计算机通过数据和计算获得一定技巧的过程. 为什么需要机器学习 1 人无法获取数据或者数据 ...

  7. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总

    大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...

  8. 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem

    课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...

  9. 机器学习基石第三讲:types of learning

    博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完毕机器学习基石的第三讲.这一讲主要介绍了机器学习的分类.对何种问题应该使用何种 ...

随机推荐

  1. 20162308 实验一《Java开发环境的熟悉》实验报告

    a 20162308 实验一<Java开发环境的熟悉>实验报告 实验内容 使用JDK编译.运行简单的Java程序. 使用IDEA 编辑.编译.运行.调试Java程序. 实验要求 没有Lin ...

  2. C语言--第一周作业(更改)

    *********************学习总结********************* 1.所用词典: 2.Git截图: *********************遇到的问题和解决方法***** ...

  3. 关于第一次使用vue-cli

    前段时间终于终于可以用vue-cli,webpack做个企业站,记一下过程... 首先node.js,按照vue官网的步骤命令提示符走一波,网速原因,所以用的是淘宝镜像 cnpm # 全局安装 vue ...

  4. ThreadLocal就是这么简单

    前言 今天要研究的是ThreadLocal,这个我在一年前学习JavaWeb基础的时候接触过一次,当时在baidu搜出来的第一篇博文ThreadLocal,在评论下很多开发者认为那博主理解错误,给出了 ...

  5. 在windows环境下安装redis和phpredis的扩展

    在windows环境下安装redis和phpredis的扩展 1.首先配置php: 需要在windows的集成环境中找到php的扩展文件夹,ext,然后在网上寻找自己的php对应的.dll文件 比如说 ...

  6. LeetCode & Q167-Two Sum II - Input array is sorted-Easy

    Array Two Pointers Binary Search Description: Given an array of integers that is already sorted in a ...

  7. Linux--初次体验

    关于Linux已经听闻很久的大名了,但是一直没有机会来使用,这次趁着放假的机会,来体验一把Linux吧. 之前使用visuabox和Ubuntu16,但是虚拟机总是不能连接互联网,在虚拟机上面无法上网 ...

  8. R语言-离职率分析

    案例:员工流失是困扰企业的关键因素之一,在这次的分析中我将分析以下内容: 对一些重要变量进行可视化及探索分析,收入,晋升,满意度,绩效,是否加班等方面进行单变量分析 分析员工流失的因素,探索各个变量的 ...

  9. SpringMvc返回报文形式的控制-验证方法: JSON or HTML or XML

    首先,请求通过accept请求头声明了支持的返回格式 然后,框架根据该请求头和代码实现(注解)选择了对应的MessageConverter处理返回! 一.验证过程 1.返回html 1.1.请求组装 ...

  10. ASP.NET Web API编程——序列化与内容协商

    1 多媒体格式化器 多媒体类型又叫MIME类型,指示了数据的格式.在HTTP协议中多媒体类型描述了消息体的格式.一个多媒体类型包括两个字符串:类型和子类型. 例如: text/html.image/p ...