机器学习真的可以起作用吗?(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上限的上限。(可以证明,上面的≤实际上是=)

时间: 2024-10-11 03:29:22

机器学习真的可以起作用吗?(2)(以二维PLA算法为例)的相关文章

机器学习真的可以起作用吗?(1)

[此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法>] 机器学习真的可以起作用吗?答案是肯定的. 那为什么这个问题还要拿出来讲一讲呢? 考虑一个问题: 现在知道了5个数据,预测其余3个xn的输出,有如下可能: 我们根本没法预测! 这个问题formally的表示是:对于一个整体,我们随机抽取一个数据集D,那么inside D内,g≍f,但是outsideD(即整体),g与f的关系是什么? 我们用符号Ein(h)来表示h在inside D上犯的错误,用Eout(h)来表示h在

人肉工程在机器学习实践中的作用

关于人肉工程,包括业务知识.领域知识,经验等,在实际的机器学习问题中的应用,是一个屡见不鲜的话题,典型的有苦逼的数据清洗.人肉特征工程等.大家都想把尽可能多的过程由机器自动完成,但是目前的状态是,大部分机器学习问题中,最困难也最重要的部分,还是依靠人的经验来生成特征.那么人的经验为什么重要,能否用机器完成这个过程,本文试作一简单分析. 机器和人看待数据的区别 首先要看一下,从机器的角度看,机器学习是怎样一个问题?在机器看来,机器学习的问题通常是在一组特征上,最大化某个目标函数.注意,对于这组特征

R语言︱机器学习模型评估方案(以随机森林算法为例)

R语言︱机器学习模型评估方案(以随机森林算法为例) 笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评价模型的方式. 常见的应用在监督学习算法中的是计算平均绝对误差(MAE).平均平方差(MSE).标准平均方差(NMSE)和均值等,这些指标计算简单.容易理解:而稍微复杂的情况下,更多地考虑的是一些高大上的指标,信息熵.复杂度和基尼值等等. 本篇可以用于情感挖

paper 27:机器学习中的范数规则化之(二)核范数与规则项参数选择

机器学习中的范数规则化之(二)核范数与规则项参数选择 [email protected] http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮叨下核范数和规则项参数选择.知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正.谢谢. 三.核范数 核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm.这个相对于上面火热的L1和L2来说,可能大家就会陌生点.那它是干嘛用的呢?霸气登场:约束Low-Ra

机器学习中的范数规则化之(二)核范数与规则项参数选择 非常好,必看

机器学习中的范数规则化之(二)核范数与规则项参数选择 [email protected] http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮叨下核范数和规则项参数选择.知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正.谢谢. 三.核范数 核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm.这个相对于上面火热的L1和L2来说,可能大家就会陌生点.那它是干嘛用的呢?霸气登场:约束Low-Ra

Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法

这学期学了机器学习这门课,想趁期末看看台大的这门课再把课程梳理一遍. 笔记可以参考这位博主,写得还不错:http://www.cnblogs.com/HappyAngel/p/3456762.html 其中证明PLA算法确实能够越来越接近最完美的感知机以及PLA算法最后一定能停下来那部分非常的精彩. 最后对那些线性不可分的数据,提出了一个Pocket PLA算法,实质就是PLA算法,只不过稍有不同,但也能满足一定的要求.

二维数组和二级指针(真的没什么关系)

刚开始学c语言的时候,总是会认为,一级指针可以用来访问一维数组,那么二维数组就要用二级指针来访问啦.... 实际上二级指针和二维数组真的没什么关系,而且,切记千万不要用二级指针访问二维数组..... 下面是几个有关的小程序,加深印象........ 实验环境:主机CPU酷睿i5,vs2012 程序1: int _tmain(int argc, _TCHAR* argv[]) { int **p= NULL; int a[2][3] = {1,2,3,4}; p = a; return 0; }

台大林轩田机器学习课程笔记----机器学习初探及PLA算法

机器学习初探 1.什么是机器学习 学习指的是一个人在观察事物的过程中所提炼出的技能,相比于学习,机器学习指的就是让计算机在一堆数据中通过观察获得某些经验(即数学模型),从而提升某些方面(例如推荐系统的精度)的性能(可测量的). 2.机器学习使用的条件 需要有规则可以学习 有事先准备好的数据 编程很难做到 3.机器学习所组成的元素 输入X 输出 Y 目标函数f:X->Y 数据(训练集):D={(x1,y1),(x2,y2),-.(xn,yn)}假设(skill):g:X->Y 4.如何使用机器学

机器学习实战读书笔记(二)k-近邻算法

knn算法: 1.优点:精度高.对异常值不敏感.无数据输入假定 2.缺点:计算复杂度高.空间复杂度高. 3.适用数据范围:数值型和标称型. 一般流程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法:不适用 5.测试算法:计算正确率 6.使用算法:需要输入样本和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理. 2.1.1 导入数据 operator是排序时要用的 from numpy import * import operato