机器学习基石笔记: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\):分类(二分类.多分类).回归.结构化(监督学习+输出空间有结构): 根据 ...
随机推荐
- hadoop_随笔二_参数
1) dfs.datanode.handler.count : datanode上用于处理RPC的线程数.默认为3,较大集群,可适当调大些,比如8.需要注意的是,每添加一个线程,需要的内存增加. 2) ...
- OO第二次作业总结
OO~第二次作业总结 连续三周的电梯作业结束了,总的来说这三次作业做的还算平稳,既没有被刀,也没有刀中别人.那么接下来开始谈谈我对这三次作业的认识. 一.设计策略 我三次作业的设计思路基本上是相同的, ...
- 天兔(Lepus)数据库监控系统安装笔记
天兔(Lepus)数据库监控系统安装笔记 一.部署:本次操作系统:centos6.9 IP:192.168.153.145Lepus_v3.8_beta MySQL-python-1.2.5xampp ...
- LD的-rpath,-rpath-link
http://blog.chinaunix.net/uid-24709751-id-3563351.html http://songzhangzhang.blog.163.com/blog/stati ...
- hw1
如上面两个小程序中,分析下列问题: 1.Identify the fault. 2. If possible, identify a test case that does not execute t ...
- 数组,arrayList和List
数组,arrayList和List (1)数组在C#中是最早出现的.它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单.可以利用偏移地址访问元素,时间复杂度为O(1);可以用折半查 ...
- django中的modelform和modelfoemset
一. ModelForm ModelForm是根据Model来定制的Form 二. ModelForm的创建 from django import forms from app import mode ...
- windows安装zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- Lambda表达式遍历和泛型ForEach遍历方式
lambda表态式 DataTable dtAllItems = policySecurity.GetUserAccessTypeOnAllItems(userID); List<DataRow ...
- Strusts2
Strusts2的原理很简单,首先,地址栏输入http://xxxx/xxxx/webapp/xx.action首先,请求会通过httpservlet发送给tomcat容器,tomcat发现这个请求是 ...