机器学习基石笔记:02 Learning to Answer Yes/No、PLA、PA
原文地址:https://www.jianshu.com/p/ed0aee74523f
一、Perceptron Learning Algorithm
(一)算法原理
PLA本质是二元线性分类算法,即用一条线/一个面/一个超平面将1、2维/3维/4维及以上数据集根据标签的不同一分为二。算法确定后,根据\(W\)取值的不同形成不同的\(h\),构成假设集合\(H\)。如2维感知器算法,根据\(w_0\),\(w_1\),\(w_2\)的不同取值,构成了不同的\(h\),这些\(h\)最终构成\(H\)。为了方便表示,将阈值的相反数记为\(w_0\),对应的数据点增加一维\(x_0\),恒为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更为接近?
答案是只要数据线性可分就能!
\(W_f\)与\(W_t\)的内积值随着更新次数的上升而增大,同时,\(W_t\)的模也在增大。不过,内积增大的程度往往大于模增大的程度,保证了随着更新次数的上升,\(W_t\)与\(W_f\)趋于越来越接近。
(四)PLA的优缺点
优点:简单、快速、任意维度;
缺点:假设数据线性可分,然而我们并不知道\(f\),也就不知道是否可分。再来,要是知道线性可分,\(W\)也已经知道了,没有必要再用PLA了;经过多少次更新才能收敛也不知道,如上证明,\(T\)与\(W_f\)有关,然而我们不知道\(W_f\)。
二、Pocket Algorithm
若数据线性不可分,使用PA,即既然异常点无法避免,PA在\(H\)中找到一个使得异常点数目最小的\(h\)作为\(g\)。
NP问题:\(O(n^k)\)为多项式型时间复杂度,\(O(k^n)/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、PLA、PA的更多相关文章
- 林轩田机器学习基石笔记2—Learning to Answer Yes/No
机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...
- 机器学习基石:02 Learning to Answer Yes/No
Perceptron Learning Algorithm 感知器算法, 本质是二元线性分类算法,即用一条线/一个面/一个超平面将1,2维/3维/4维及以上数据集根据标签的不同一分为二. 算法确定后, ...
- 机器学习基石 1 The Learning Problem
机器学习基石 1 The Learning Problem Introduction 什么是机器学习 机器学习是计算机通过数据和计算获得一定技巧的过程. 为什么需要机器学习 1 人无法获取数据或者数据 ...
- 林轩田机器学习基石笔记3—Types of Learning
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...
- 机器学习基石笔记:01 The Learning Problem
原文地址:https://www.jianshu.com/p/bd7cb6c78e5e 什么时候适合用机器学习算法? 存在某种规则/模式,能够使性能提升,比如准确率: 这种规则难以程序化定义,人难以给 ...
- 林轩田机器学习基石笔记4—Feasibility of Learning
上节课介绍了机器学习可以分为不同的类型.其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题.本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决. 一.Lear ...
- 林轩田机器学习基石笔记1—The Learning Problem
机器学习分为四步: When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can Machine Lear ...
- 机器学习基石笔记:04 Feasibility of Learning
原文地址:https://www.jianshu.com/p/f2f4d509060e 机器学习是设计算法\(A\),在假设集合\(H\)里,根据给定数据集\(D\),选出与实际模式\(f\)最为相近 ...
- 机器学习基石笔记:03 Types of Learning
原文地址:https://www.jianshu.com/p/86b2a9cef742 一.学习的分类 根据输出空间\(Y\):分类(二分类.多分类).回归.结构化(监督学习+输出空间有结构): 根据 ...
随机推荐
- zxlizsm
好久没发表了,毕业之后就没回来过!
- span的title标签中的换行
var strs = data.flowSummary; strs=strs.replace(/燮r燮n/g," "); js的全局替换用/要替换的字符串/g span的titl ...
- python 数据可视化 -- 生成可控的随机数据集合
生成可控的随机数据集合 使用 numpy.random 模块 numpy.random.random(size=None) 返回 [0.0, 1.0) 区间的随机 floats, 默认返回一个 fl ...
- 原来这就是 UI 设计师的门槛
本文主要分享 UI 设计师入行的一些个人经验指南,希望可以带给新入行业的设计师一点帮助! 写在前面 随着互联网的不断发展,特别是移动互联网的不断成熟,视觉设计师也进行了迭代与细分.衍生出的 UI 设计 ...
- node vue 项目部署问题汇总
场景:vue-router为history模式,不带项目名访问的部署,如果资源是用相对路径加载,则资源匹配路径不对 一.带项目名称访问,如部署到tomcat服务上 webpack: build/ut ...
- Python学习笔记:基础
本文根据廖雪峰的博客,学习整理笔记.主要内容有:基本数据类型,容器数据类型,变量及其作用域,判断及循环语法,函数式编程,面向对象,模块等概念. 数据类型 在python中,能够直接处理的数据类型有以下 ...
- Linux 第十六天
十六.服务管理 1.服务分类 1)RPM包默认安装的服务:包括独立的服务.基于xinetd的服务 2)源码包安装的服务 3)RPM安装服务和源码包安装服务的区别就是安装位置的不同 >源码包安装在 ...
- LOJ-10092(最大半连通子图)
题目连通:传送门 思路: 题目定义很清晰,然后就不会了QAQ…… 后来看了书,先缩点,然后再用拓扑排序找到最长的链子的节点数(因为缩点后所有点都是一个强连通分量,所以找最长的链子就是最大限度包含 点的 ...
- 关于Data URI
[新增]:http://www.webhek.com/post/data-url.html 引子:在研究FileReader时,有个方法readAsDataURL;然后看到打印出来的东西类似于如下:[ ...
- django安装及简单使用
1 web应用2 cs和bs架构3 http协议----重点 -特点:1 2 3 4 -请求头: 请求首行 get / http/1.1\r\n key:value\r\n key:value\r\n ...