12.计算学习理论

12.1基础知识

计算学习理论(computationallearning theory)研究的是关于通过计算来进行学习的理论,即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。理论是共性的、抽象的,是基于众多个体总结出来的规律,反过来可以作为个体的理论依据。

12.2PAC学习

计算学习理论中最基本的是概率近似正确(probably approximately correct,pac)学习理论。

令c表示概念(concept),是从样本空间X到标记空间Y的映射,它决定示例x的真实标记y,若对任何样例(x,y)有c(x)=y成立,则称c为目标概念;所有学得的目标概念所构成的集合称为概念类(concept class),用C表示。

给定学习算法A,其所考虑的所有可能概念的集合称为假设空间(hypothesis space),用符号H表示。学习算法事先并不知道概念类的真实存在,因此H和C通常是不同的。学习算法会把自认为可能的目标概念集中起来构成H,对h∈H,由于并不能确定它是否真是目标概念,因此成为假设(hypothesis)。假设h也是从样本空间X到标记空间Y的映射。

若目标概念c∈H,则H中存在假设能将所有示例按与真实标记一致的方式完全分开,称该问题对学习算法A是可分的(separable),也称为一致性(consistent);若c∉H,则H中不存在任何假设能将所有示例完全正确分开,称该问题对学习算法A是不可分的(non-separable),也称不一致性(non-consistent)。

给定训练集D,期望基于学习算法A学得的模型所对应的假设h尽可能接近目标概念c。由于机器学习过程受到众多因素制约,包括样本数量的有限性、采样的偶然性,因此只能接近目标概念,而不能精确,希望以比较大的把握学得比较好的模型,也就是说,以较大的概率学得误差满足预设上限的模型,也就是PAC定义的来由,使概率上近似正确。

如上,PAC学习给出了一个抽象地刻画机器学习能力的框架,基于这个框架能对很多重要问题进行理论探讨,如研究某任务在什么样的条件下可学得较好的模型?某算法在什么样条件下可进行有效的学习?需多少训练样例才能获得较好的模型?

PAC学习中一个关键因素是假设空间H的复杂度。H包含了学习算法A所有可能输出的假设,若在PAC学习中假设空间与概念类完全相同,即H=C,称为恰PAC可学习(properly PAC Learnable);直观上理解,意味着学习算法的能力与学习任务恰好匹配。然后,这种让所有候选假设都来自概念类的要求并不切实际,因为现实中对概念类C通常是一无所知。因此,重要的研究假设空间与概念类不同的情形,即H≠C。一般而言,H越大,其包含任意目标概念的可能性越大,但从中找到某个具体目标概念的难度也越大。|H|有限时,称H为有限假设空间,否则称为无限假设空间。

12.3有限假设空间

1)可分情形

可分情形是说目标概念c属于假设空间H,即c∈H。给定包含m个样例的训练集D,如何找出满足误差参数的假设呢?

既然D中样例标记都是由目标概念c赋予的,并且c存在于假设空间H中,那么任何在训练集D上出现标记错误的假设肯定不是目标概念c。如此,只需保留与D一致的假设,剔除与D不一致的假设即可。

如训练集D足够大,则可不断借助D中的样例剔除不一致的假设,直到H中仅剩下一个假设为止,这个假设就是目标概念c。通常情形下,由于训练集规模有限,假设空间H中可能存在不止一个与D一致的等效假设,对这些等效假设,无法根据D来对它们的优劣进行进一步区分。

12.4VC维

现实学习任务所面临的通常是无限假设空间,例如实数域中的所有区间、Rd空间中的所有线性超平面。要对这类学习任务的可学习性进行研究,通过考虑假设空间的VC(Vapnik-Chervonenkis dimension)维来度量假设空间的复杂度。先引入增长函数(growth function)、对分(dichotomy)和打散(shattering)。

12.5Rademacher复杂度

上文推出基于VC维的泛化误差界是分布无关、数据独立的,即对任何数据分布都成立,使基于VC维的可学习性分析结果具有一定的普适性;但从另一方面来说,由于没有考虑数据自身,基于VC维得到的泛化误差界通常比较松,尤其是与学习问题相差甚远的不好分布。

Rademacher复杂度(Rademachercomplexity)是另一种刻画假设空间复杂度的途径。和VC维不同的是,它在一定程度上考虑了数据分布。

12.6稳定性

基于VC维和Rademacher复杂度来推导泛化误差界,所得结果与具体算法无关,对所有学习算法适用,是通用性算法可学习性的刻画。学习理论的意义就在于从个体中总结出一般规律,从而应用于实际。与算法无关的学习理论,固然可以脱离具体学习算法设计而考虑学习问题本身的性质,但若要获得与算法有关的分析结果,则需另辟蹊径;稳定性(stability)分析就是分析算法相关的。

算法的稳定性考察的是算法在输入发生变化时,输出是否也随之发生变化。学习算法的输入是训练集,先定义两种训练集的变化。

给定D={ z1=(x1,y1),z2= (x2,y2),…, zm= (xm,ym)},xi∈X是来自分布D的独立同分布示例,yi∈{-1,+1}。对假设空间H:X->{-1,+1}和学习算法A,令AD∈H表示基于训练集D从假设空间H中学得的假设,考虑下面两种变化:

1)D\i表示移除D中第i个样例得到的集合D\i={z1, z2,…, zi-1, zi+1,…, zm};

2)Di表示替换D中第i个样例得到的集合Di={z1, z2,…, zi-1, z*i ,zi+1,…,zm};

其中z*i={x*i, y*i},x*i服从分布D并独立于训练集。

损失函数Loss(AD(x),y):YxY->R+刻画了假设AD的预测标记AD(x)与真实标记y之间的差别,记为Loss(AD,z)。下面定义关于假设AD的几种损失:

1)泛化损失:Loss(A,D)=E x ∈X,z=(x,y)[ Loss(A D,z)]。

机器学习笔记(十二)计算学习理论相关推荐

  1. 机器学习笔记十二之异常检测

    本节目录 1 问题的动机 2 高斯分布 3 开发和评价一个异常检测系统 4 异常监测与监督学习对比 5 选择特征 6 多元高斯分布 7 多元高斯分布进行异常检测 1 问题的动机 我们先看下什么是异常检 ...

  2. 机器学习笔记十四:随机森林

    在上一篇机器学习笔记十三:Ensemble思想(上)中,简要的提了一下集成学习的原理和两种主要的集成学习形式.  而在这部分要讲的随机森林,就算是其中属于bagging思路的一种学习方法.为了篇幅,b ...

  3. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  4. 机器学习笔记(二十八):高斯核函数

    凌云时刻 · 技术 导读:核函数是机器学习算法中一个重要的概念.简单来讲,核函数就是样本数据点的转换函数.这一节我们来看看应用非常广泛的一个核函数,高斯核函数. 作者 | 计缘 来源 | 凌云时刻(微 ...

  5. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  6. [2022]李宏毅深度学习与机器学习第十二讲(必修)-Reinforcement Learning RL

    [2022]李宏毅深度学习与机器学习第十二讲(必修)-Reinforcement Learning RL 做笔记的目的 What is RL Policy Gradient Version 1 Ver ...

  7. Spark机器学习实战 (十二) - 推荐系统实战

    0 相关源码 将结合前述知识进行综合实战,以达到所学即所用.在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统. 1 ...

  8. 《C++游戏开发》笔记十二 战争迷雾:初步实现

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http:// ...

  9. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

最新文章

  1. Hash算法解决冲突的四种方法
  2. 地图点击省跳转到市_城市天际线导入真实世界地图教程
  3. 史上最详细Docker搭建Redis Cluster集群环境 值得收藏 每步都有图,不用担心学不会
  4. 浙江大数据交易中心正式上线
  5. php 判断http还是https,以及获得当前url的方法
  6. C# WinForm 中Label自动换行 解决方法
  7. Scala里Map()集合
  8. 常见的嵌入式linux学习和如何选择ARM芯片问答
  9. Maven scope中import的作用
  10. python when库_python 库收集
  11. wow修改人物模型_wow - 1.12 - 修改 人物 模型 ,
  12. tomcat配置war包解压地址
  13. 光学镜头参数详解(EFL、TTL、BFL、FFL、FBL/FFL、FOV、F/NO、RI、MTF、TV-Line、Flare/Ghost)
  14. 真实原创,记录程序员的艰辛生活-接私单记1
  15. oracle10g dblink优化,dblink如果很慢可以用这种方式优化
  16. 股市投资必修课二十三--增长的导向
  17. 小程序+动易SF制作随手拍实例全景式操作(3)
  18. HTML5期末大作业:英雄联盟网站设计——英雄联盟LOL(4页) HTML+CSS+JavaScript web期末网站设计大作业
  19. 关闭微软Edge浏览器打开时使用推荐浏览器设置的弹窗
  20. 无符号数与带符号数的相加减

热门文章

  1. Redis:Redis集群模式(Cluster)原理
  2. Java设计模式(一):策略设计模式
  3. 如何将某个groupbox中的数据赋值到另一个groupbox_React中的数据和数据流
  4. laravel框架中文手册_Laravel框架的这些你都懂的话,它核心架构基本就懂了
  5. 一个用WPF做的简单计算器源代码
  6. 目的地返回POJ 2336 动态规划(DP) Ferry Loading II
  7. 斐波那契数列算法(C#)
  8. [转载]一个Spectral Clustering方法的小结
  9. 要注意页面中加载的第三方脚本
  10. input驱动12种事件类型Event types的含义