机器学习真的可以起作用吗?(2)(以二维PLA算法为例)
一个问题:大多数情况下,M(hypothesis set的大小)是无穷大的,例如PLA算法。那么是不是我们的原则1就不能使用了?
我们试着做一些努力:
Step1:寻找hypothesis set的effective number来代替M

什么意思呢?就是之前推导中
,但是呢,例如在PLA算法中,h1和h2是如此的相像(考虑平面上的直线),所以,如果D对于h1是GOOD,那么对于h2也是GOOD。即:重叠部分太多,我们over-estimatinng了。
现在我们换一种思路。从DataSet的角度看问题。

什么意思?对于只有一个点的D,所有的h分为两类:一种是把x1分为  的,一种是分为 ×。


到现在,我们已经明白这种思路了。对于对于每一个h,我们看它对于D中每一个数据的分类情况。这叫做一个dichotomy。那么H的effective Number 就是dichotomies的总数。

但是呢,这样的话,我们的计算过程又依赖于D的具体数据,所以使用Growth Function来移除对数据的依赖:即我们使用|H(x1; x2; : : : ; xN)|的上限。用
来表示:

如果Growth Function是polynomial 而非exponential,那么我们就可以使用原则1设计学习算法A。
Step2:effective number是Polynomial 而非exponential
根据上文,我们知道,只需要证明effective number是Polynomial 而非exponential,我们就大功告成了。但是,我们需要引入几个概念来辅助我们的证明过程
概念:Break Point & shatter
这是对于解决Growth Function问题很重要的两个概念。
存在2个输入点,PLA的H可以完全实现四种分类。这时,称这2个点被shatter。
存在3个输入点,PLA的H可以完全实现8种分类,这时,称这3个点被shatter。
但是,没有任何4个点,可以被PLA的H shatter。
此时,4就是H的break point。
设k是H的break point,则有 
,下面是证明过程。正常巧妙。
定义bounding function:
则有:
如何求解其余的B(N,k)?
以B(4,3)为例,看看能不能用B(3,?)解决。
B(4,3)=11,可以分成两类:一类是x4成对出现的,一类是x4成单出现的。
因为k=3,所以任意3点都不能shatter,即:α+β≤B(3,3)。
又因为对于2α来说,x4是成对出现的,所以,x1,x2,x3任意两个点必然不能shatter,否则的话,再加上x4,就会有三个点被shatter。即:α≤B(3,2)。
可用数学归纳法证明。此时不等式右端为growth function上限的上限。(可以证明,上面的≤实际上是=)
机器学习真的可以起作用吗?(2)(以二维PLA算法为例)的更多相关文章
- 机器学习真的可以起作用吗?(3)(以二维PLA为例)
		
前两篇文章已经完成了大部分的工作,这篇文章主要是讲VC bound和 VC dimension这两个概念. (一)前文的一点补充 根据前面的讨论,我们似乎只需要用来替代来源的M就可以了,但是实际公式却 ...
 - paper 127:机器学习中的范数规则化之(二)核范数与规则项参数选择
		
机器学习中的范数规则化之(二)核范数与规则项参数选择 zouxy09@qq.com http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮 ...
 - [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
		
上次我们使用精度评估得到的成绩是 61%,成绩并不理想,再使 recall 和 f1 看下成绩如何? 首先我们先了解一下 召回率和 f1. 真实结果 预测结果 预测结果 正例 反例 正例 TP 真 ...
 - R语言︱机器学习模型评估方案(以随机森林算法为例)
		
笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...
 - [转]Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)
		
转自http://blog.csdn.net/c406495762/article/details/75172850 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一 简 ...
 - 学机器学习,不会数据处理怎么行?—— 二、Pandas详解
		
在上篇文章学机器学习,不会数据处理怎么行?—— 一.NumPy详解中,介绍了NumPy的一些基本内容,以及使用方法,在这篇文章中,将接着介绍另一模块——Pandas.(本文所用代码在这里) Panda ...
 - 机器学习:PCA(高维数据映射为低维数据  封装&调用)
		
一.基础理解 1) PCA 降维的基本原理 寻找另外一个坐标系,新坐标系中的坐标轴以此表示原来样本的重要程度,也就是主成分:取出前 k 个主成分,将数据映射到这 k 个坐标轴上,获得一个低维的数据集. ...
 - 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA
		
本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...
 - 【Python机器学习实战】决策树和集成学习(二)——决策树的实现
		
摘要:上一节对决策树的基本原理进行了梳理,本节主要根据其原理做一个逻辑的实现,然后调用sklearn的包实现决策树分类. 这里主要是对分类树的决策进行实现,算法采用ID3,即以信息增益作为划分标准进行 ...
 
随机推荐
- Unix编程之size_t、ssize_t
			
http://blog.csdn.net/lalor/article/details/7426184 首先,我非常肯定以 及确定的告诉你ssize_t是有符号整型,在32位机器上等同与int,在64位 ...
 - Retrofit2 源码解析
			
原文链接:http://bxbxbai.github.io/2015/12/13/retrofit2-analysis/ 公司里最近做的项目中网络框架用的就是Retrofit,用的多了以后觉得这个框架 ...
 - VB 语言学习笔记.
			
暂时用到,学习学习. 变量声明 Dim 变量名 as 数据类型类型 Set 实例 = new 类名 自定义数据类型 Type 数据类型标识符 域名 As 数据类型; 域名 As 数据类型; 域名 As ...
 - gdb 基本命令
			
backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 info(或i) locals 查看当前栈帧局 ...
 - selvert的过滤器filter处理中文乱码
			
注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk.虽然两种都可以出来中文乱码,但是却造成了处 ...
 - uva10820Send a Table
			
筛法. 首先使cnt[i]=sqr(n/i),这样cnt[i]就表示gcd(x,y)大于等于i的数对的个数,然后倒序枚举减去gcd大于i的个数就可以得到ans[i].最终得到ans[1]. 这个算法单 ...
 - UVa 12716 (GCD == XOR) GCD XOR
			
题意: 问整数n以内,有多少对整数a.b满足(1≤b≤a)且gcd(a, b) = xor(a, b) 分析: gcd和xor看起来风马牛不相及的运算,居然有一个比较"神奇"的结论 ...
 - Drupal 7.31版本爆严重SQL注入漏洞
			
今早有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码. 在本地搭建Drupal7.31的环境,经过测试,发现该利用代码可成功执行并 ...
 - Android ArrayAdapter 详解
			
本文主要讲解ArrayAdapter的创建方法,我把ArrayAdapter分为三种:简单的.样式丰富的但内容简单的.内容丰富的. 默认的,ArrayAdapter期望接受的样式文件里只含有一个tex ...
 - AngularJS promise()
			
实例说明一 <!DOCTYPE html> <html ng-app="my-app"> <head> <meta charset=&qu ...
 
			
		




