提纲:

  1. 机器学习为什么可能?
    1. 引入计算橙球概率问题
    2. 通过用Hoeffding's inequality解决上面的问题,并得出PAC的概念,证明采样数据学习到的h的错误率可以和全局一致是PAC的
    3. 将得到的理论应用到机器学习,证明实际机器是可以学习

机器学习的大多数情况下是让机器通过现有的训练集(D)的学习以获得预测未知数据的能力,即选择一个最佳的h做为学习结果,那么这种预测是可能的么?为什么在采样数据上得到的h可以认为适用于全局,也就是说其泛化性的本质是什么?

课程首先引入一个情景:

如果有一个装有很多(数量很大以至于无法通过数数解决)橙色球和绿色球的罐子,我们能不能推断橙色球的比例?

很明显的思路是利用统计中抽样的方法,既然我们无法穷尽数遍所有罐子中的球,不如随机取出几个球,算出其中两种颜色球的比例去近似得到我们要的答案,

这样真的可以么?我们都知道小概率事件也会发生,假如罐子里面大部分都是橙色球,而我们恰巧取出的都是绿色,这样我们就判断错了,那么到底通过抽样得出的比例能够说明什么呢?似乎两者不能直接划等号

由此,课程中引入了一个非常重要的概念,PAC,要理解这个,先得理解一个超级重要的不等式:Hoeffding's inequality

这个不等书说明了对于未知的那个概率,我们的抽样概率可以根它足够接近只要抽样的样本够大或者容忍的限制变松,这个和我们的直觉是相符的。式子最后给出了PAC的概念,即概率上几乎正确。所以,我们通过采用算出的橙球的概率和全局橙球的概率相等是PAC的。

这些和机器学习有什么关系?其实前文中提到的例子可以和机器学习问题一一对应:

映射中最关键的点是讲抽样中橙球的概率理解为样本数据集D上h(x)错误的概率,以此推算出在所有数据上h(x)错误的概率,这也是机器学习能够工作的本质,即我们为啥在采样数据上得到了一个假设,就可以推到全局呢?因为两者的错误率是PAC的,只要我们保证前者小,后者也就小了。

  请注意,以上都是对某个特定的假设,其在全局的表现可以和其在DataSet的表现PAC,保证DataSet表现好,就能够推断其能泛化。可是我们往往有很多假设,我们实际上是从很多假设中挑一个表现最好(Ein最小)的作为最终的假设,那么这样挑的过程中,最小的Ein其泛化能力一定是最好么?肯定不是。

  上面的例子很形象,每一个罐子都是一个假设集合,我们默认是挑表现最好的,也就是全绿色(错误率为0)的那个假设。但是当从众多假设选择时,得到全对的概率也在增加,就像丢硬币一样,当有个150个童鞋同时丢硬币5次,那么这些人中出现5面同时朝上的概率为99%,所以表现好的有可能是小概率事件发生(毕竟对于每个假设其泛化能力是PAC),其不一定就有好的泛化能力(Ein和Eout相同),我们称这次数据是坏数据(可以理解为选到了泛化能力差的假设),在坏数据上,Ein和Eout的表现是差别很大的,这就是那个小概率事件,Hoeffding's inequality告诉我们,每个h在采样数据上Ein和Eout差别很大的概率很低(坏数据):

由于有这个bound,那么我们每次选取Ein最小的h就是合理的,因为如果M小N大,出现表现好的坏数据的假设几率降低了,我们选择表现后就有信心认为其有良好的泛化能力。

总结一下:
  1. M小,N足够大,可以使得假设具有良好的泛化能力;
  2. 如果同时,Ein很小,那么这个假设就是有效地。机器是可以学习的,学习到的就是这个表现最好的假设。

整体证明机器可以学习分了两个层面,首先对于单个假设,根据Hoeffding不等式,当N很大时,其泛化能力强是PAC的;而实际上机器学习是从众多假设中挑Ein最小的(通过测试集找)假设,这个的理论基础是当M不大,N大,选到泛化能力差的假设概率低(用到了单个假设的结论)。

Coursera台大机器学习课程笔记3 – 机器学习的可能性的更多相关文章

  1. Coursera台大机器学习课程笔记3 – 机器学习的分类和机器学习的可能性

    第三讲比较简单,参考:http://www.cnblogs.com/HappyAngel/p/3466527.html 第四讲很抽象,尤其是第四个视频,目的仍然是为了证明机器学习是可能的,不过这个博主 ...

  2. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

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

    最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...

  4. Coursera台大机器学习基础课程学习笔记2 -- 机器学习的分类

    总体思路: 各种类型的机器学习分类 按照输出空间类型分Y 按照数据标记类型分yn 按照不同目标函数类型分f 按照不同的输入空间类型分X 按照输出空间类型Y,可以分为二元分类,多元分类,回归分析以及结构 ...

  5. Coursera台大机器学习基础课程1

    Coursera台大机器学习基础课程学习笔记 -- 1 最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一 机器学习是什么? 感觉和 Tom M. Mitche ...

  6. Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

    Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...

  7. Andrew 机器学习课程笔记

    Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...

  8. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

  9. Andrew Ng机器学习课程笔记(三)之正则化

    Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...

随机推荐

  1. ios8 tableView设置滑动删除时 显示多个按钮

      ** *  tableView:editActionsForRowAtIndexPath:     //设置滑动删除时显示多个按钮 *  UITableViewRowAction          ...

  2. C# Closure

    JavaScript Closure function f1(){ var n=999; return function(){ alert(n); // 999 return n; } } var a ...

  3. HTML 父窗口打开子窗口,并从子窗口返回值

    父窗口:windowdemo.html <html> <head> <title> 接收子窗口返回的内容 </title> <script lan ...

  4. Linux_scp命令

    一.简单概念  scp是有Security的文件copy , 基于ssh登录 二.使用 1. 发送(本地--->远程服务器) [liuwl@hadoop09-linux-02 hadoop-2. ...

  5. mysqldump备份详解

    -A  备份所有-B  恢复时会自动创建库  (同时支持导出多个库  -B  db01 db02) -d  导出表结构 #库中有多个表导出时导出没加 –B参数,则要先导入结构,如果表结构没有备份,那就 ...

  6. 状态压缩 DP

    D - Hie with the Pie Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:65536 ...

  7. mysql syntax bypass some WAF

    select{x table_name}from{x information_schema.tables} mysql> select{x table_name}from{x informati ...

  8. [转载] Can't create table './store/#sql-b2c_1a.frm' (errno: 150)和sql execution error #1452添加外键时错误解决方法

    Can't create table './store/#sql-b2c_1a.frm' (errno: 150)解决方法 错误原因有四: 1.外键的引用类型不一样,主键是int外键是char 2.找 ...

  9. Lua修改文件名

    local lfs = require "lfs"local curPath = "..\\new\\"local  totalFile = 0 local s ...

  10. SVN 的安装与配置

    1.下载subclipse1.6的site包 2.把这个site-1.6.2解压开,将其内部的文件,全部放到 C:\Program Files\MyEclipse\MyEclipse 9\dropin ...