Andrew Ng机器学习课程10


a example

如果hypothesis set中的hypothesis是由d个real number决定的,那么用64位的计算机数据表示的话,那么模型的个数一共有k=264d,那么训练样本的数量由上一节课的公式可推出训练样本的数量为:

m≥O(dγ2log1δ)

。为保证ERM在这样的hypothesis set上能够达到一定的error bound,训练样本的数量需要达到上式得要求。


VC dimension

假定有d个点的数据集S,hypothesis set H能够shatter(打散)S,即将S中的数据点分为任意的标签,就说H 能 shatter S 。二维平面上的没有线性分类器能够shatter 4个数据点的。

然后定义了VC dimension,指的就是H能够打散的S中的最大数据点数,只要存在就行,不一定包含所有这些数据点(比如在一条直线上)的情况。再解释就是,只能shatter VC dimension个数据点,而不能shatter 任意一个增加一个的数据点。推广一下,对于n维度的线性分类器,其VC dimension是n+1。

对于hypothesis set 可以有无限多个hypothesis,但是能够shatter的数量却是有限的VC dimension,这就可以用来给出一个generalization error bound,解释学习算法的有效性。得出m的阶数必须至少跟vc dimension d的阶数相同。实际上VC dimension大致跟参数的个数相近,或者呈线性关系。

问题:为何SVM不过拟合?

具有large margin的classifier通常有较低的VC dimension,主要是因为具有这样large margin的hypothesis能够shatter的点数要比正常的要少,也就说明了VC dimension较少。 而在理论上数学上的分析,large margin使得模型的VC dimension有一个upper bound,而且这个upper bound跟X的维度无关,也就说即使将X转换为无限维度,也不影响其VC dimension。


算法横向连接:

logistic regression 和SVM都是两种对empirical risk minimization 算法的近似。其实就是选择误差函数是那种,我记得台大林轩田的解释就比较清楚,回过头来再看看。


Model Selection

比如choose the 多相似的次数,局部线性回归中的窗口宽度,或者是SVM中的L1 regularizer的C的大小等。

下面将如何进行选择:

比较所有的model中training error最小的?too stupid

hold-out cross validation:

70%作为training set,然后30%作为validation set,或者交叉验证等。通常样本数据是非常宝贵的,比较难的的,对于留出30%的数据来进行model selection是比较浪费的。

k-fold CV

将所有的数据分为k个部分,

leave one out CV,当数据量非常少时,才进行这样的操作,训练时间比较长。

VC dimension的这个bound实际上是非常loose的,只具有指导意义。


feature selection

forward search algorithm:

贪婪算法类似,每次选择剩余中最好的特征,从一个开始,选择最好的validation error的feature,然后加入F中,然后从剩余的中在寻找与F中已有的合在一起具有最好的validation error的特征加入F中,就这样一步一步的选出k个最好的特征。

这个算法被叫做wrapper feature selection,

backward search algorithm:

每次从F中删除一个最没用的特征

这不一定能找到最好的特征子集。对于文本特征,特征特别多,

filter feature selection method

对于特征xi对于y的影响度,比如相关度,correct(xi,y),MI(xi,y),定义可以参看《数学之美》中的一些文本处理的章节。K-L divergence,mutual information,两者之间的p(x,y)与p(x)p(y)的KL divergence,如果是比较大,则x能够tell一些y的information,如果不相干,或者独立,则两者距离特别近,,选择k个最大相关度或者互信息的特征,而k的选择依然是通过cross validation来选择,top 1,top 2,等等


2015-9-11 艺少

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 20、Task原理剖析与源码分析

    一.Task原理 1.图解 二.源码分析 1. ###org.apache.spark.executor/Executor.scala /** * 从TaskRunner开始,来看Task的运行的工作 ...

  2. The puzzle

    The puzzle: 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6489 找大佬讲了一下这道题,但还是不懂为什么要这样做,先记录一下以后再研究研究; ...

  3. nvarchar(MAX) 、ntext的差别

    今天在做一个项目时,程序成功向数据库插入一条数据, 插入的是一篇比较大的文章,而且还有很多样式. Id是int型,Content用的是 ntext类型的 但是当我在手动改数据库Id时出现错误: 错误源 ...

  4. 使用composer下载依赖包下载失败的解决方法

    下载好的composer默认的下载地址是国外的,在下载的过程中网络不好或者可能被墙,将下载的地址换成国内的地址即可 有两种方式启用本镜像服务: 系统全局配置: 即将配置信息添加到 Composer 的 ...

  5. Jmeter聚合报告理解

     Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 Samples:表示这次测试中一共发出了多少个请求 ...

  6. 2、vueJs基础知识02

    vue生命周期: 钩子函数: created -> 实例已经创建 √ beforeCompile -> 编译之前 compiled -> 编译之后 ready -> 插入到文档 ...

  7. VsCode插件与Node.js交互通信

    首先关于VsCode插件通信,如果不明白的可以参考我的这篇博客VsCode插件开发之插件初步通信 如果需要详细例子的话,可以参考VsCode插件开发 现在又有一个新的需求是,VsCode插件可以通过j ...

  8. QT文本转语音模块(TTS)QTextToSpeech

    QTextToSpeech是QT5.8以上的文本转语音模块. 使用方法: 在.pro工程文件中添加“QT += texttospeech”. 添加头文件 #include <QTextToSpe ...

  9. 【纸模】六角大王 Super 5.6 CHS 简体中文版 U20080725+[手册]窗口与工具的概要(PDF格式)

    六角大王5.6简体中文版中文化:star21 主界面<ignore_js_op> 人体生成模式<ignore_js_op> 动画<ignore_js_op> < ...

  10. docker在windows下上传文件到容器

    我的系统是windows10,docker是用DockerToolbox工具安装的,安装完之后会默认挂载Windows的C:/Users目录,在docker里面对应路径是/c/Users,docker ...