Andrew Ng机器学习课程9


首先以一个工匠为例,说明要成为一个出色的工匠,就需要掌握各种工具的使用,才能知道在具体的任务中选择什么工具来做。所以今天要讲的就是机器学习的理论部分。


bias variance trade off,以线性回归为例,underfitting对应high的bias(偏差),overfitting对应high的variance(方差),主要是拟合出了一些奇怪的特性。同样的对于分类问题,复杂的分类边界(decision boundary)也可能出现high variance,而简单的分类边界出现high bias。


training data set:(x(i),y(i))独立同分布,定义了一个简单的训练误差为犯错误的个数所占样本数的比例,叫做经验风险最小化(ERM)。这样的话是一个非凸优化问题,比较困难,通常采用其近似形似进行。利用e^作为对generalization error的估计,我们最关心的还是prediction error,也就是在实际使用中的error,叫做generalization error。跟台大机器学习课程一样,引入了霍弗丁不等式(hoffeding)来说明一个upper bound,独立同分布的变量的观测值的均值估计的量与真实的量之间的差大于某一个值得概率要小于某一个与差值相关的概率,说明一个非常有意义的事情,当观测的样本数量逐渐增加,这个概率的upper bound将指数下降。

ϕ^=1m∑xi
p(|ϕ−ϕ^|>γ)≤2exp(−2γ2m)

下面主要说明在何种条件下能够通过training error作为一个generalization error的很好估计,通过hoffeding不等式建立一个upper bound的关系,有利于推出如何的训练条件能够保证是好的估计。最后得到了如下形式的联系:

p(|e(hj)−e^(hj)|>γ)≤2exp(−2γ2m)

这是对于一个hypothesis hj来说的,后面要推广到对于hypothesis set中的k个都成立,然后得到了如下形式的泛化指标:

p(在hypothesis set中不存在|e(hj)−e^(hj)|>γ)≥1−2k×exp(−2γ2m)

上式说明了一个一致性收敛问题,就是说在hypothesis set中至少以概率为1−2k×exp(−2γ2m)得到的训练误差的估计e^(h)与generalization error e(h)之间的差值在γ内,这就是uniform convergence 的结果。

后面又引入了sample complexity即样本复杂度bound,说明的是为了达到对误差的一定bound或需要多少训练样本。公式中可以看出,log选项说明对于增加模型复杂度即Hypothesis的数量k,而在保证同样的error bound时,样本数量不用增加太多,因为log是增长速度最慢的一个函数了。


training error会随着hypothesis model complexity的增加而下降,而generalization error随之下降后增加,对应着high bias到high variance,即underfitting到overfitting


2015-9-10 艺少

Andrew Ng机器学习课程9的更多相关文章

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

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

  2. Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)

    title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...

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

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

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

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

  5. Andrew Ng机器学习课程笔记(四)之神经网络

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

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

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

  7. Andrew Ng机器学习课程笔记(二)之逻辑回归

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

  8. Andrew Ng机器学习课程笔记(一)之线性回归

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

  9. Andrew Ng机器学习课程6

    Andrew Ng机器学习课程6 说明 在前面尾随者台大机器学习基石课程和机器学习技法课程的设置,对机器学习所涉及到的大部分的知识有了一个较为全面的了解,可是对于没有动手敲代码并加以使用的情况,基本上 ...

  10. Andrew Ng机器学习课程10补充

    Andrew Ng机器学习课程10补充 VC dimension 讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训 ...

随机推荐

  1. docker使(二)—发布node应用镜像和容器

    应用在本地是已经ok的了,现在将node应用放进docker容器里面 获取node镜像 docker pull node 编写Dokerfile # 根据node镜像开始创建新的镜像(可以加上:tag ...

  2. LVM卷

    sdb和sdc创建为LVM并且挂载到/benet/ 将sdd扩展到之前的lvm卷 新建2块1G的磁盘和1块2G的磁盘 将分区ID改为8e 创建PV阶段 pvcreate /dev/sdb1 /dev/ ...

  3. scala_基础

     笔记前言:本笔记为scala的入门基础和scala基础使用.主要参考为书籍和推荐较高的博客.主要目的为供个人总结学习. 所有来自网络参考内容不一一列出. 一.面向过程 1.变量体 val 标识符:声 ...

  4. [C++] wchar_t关键字使用方法

    char 是单字符类型,长度为一个字节 wchar_t 是宽字符类型,长度为两个字节,主要用在国际 Unicode 编码中 举例: #include<iostream> using nam ...

  5. [Android] 安卓手机不用root删除自带app

    声明:本文档仅供测试,因删除引起的一切问题,本人概不负责 声明:本文档仅供测试,因删除引起的一切问题,本人概不负责 声明:本文档仅供测试,因删除引起的一切问题,本人概不负责 转载请注明出处:https ...

  6. 小福bbs-冲刺日志(第四天)

    [小福bbs-冲刺日志(第四天)] 这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 两个前端完成15个界面 作业的正文 小福bbs-冲刺日志( ...

  7. JVM(一) ---JVM的数据模型

    JVM的逻辑内存模型图 [逻辑内存模型图] ----- JVM内部分区 其实JVM内部不仅仅只有栈和堆 包括 程序计数器 . Java 虚拟机栈 .本地方法栈.Java 堆.方法区等 1. 程序计数器 ...

  8. Oracle 12c 新特性 --- 新增对数据泵操作的审计跟踪

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/leo__1990/article/details/90199263 概念 Oracle Data P ...

  9. Fiddler查看request是由哪一个process发起的

    有一个Process列 查看到进程编号是24836 然后用chrome自带的TaskManager查看对应的是哪一个进程 https://www.lifewire.com/google-chrome- ...

  10. JVM 接口初始化规则

    1.创建两个接口,MyParent5接口,MyChild5 接口继承自MyParent5接口 public class MyTest5 { public static void main(String ...