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. Windows异常的分发处理流程

    根据异常来源,一般分硬件异常和软件异常,它们处理的流程大致一样,下面简单讲一下. 如果是硬件异常,CPU会根据中断类型号转而执行对应的中断处理程序.CPU会在IDT中查找对应的函数来处理,各个异常处理 ...

  2. 【JS】闭包的理解

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无 ...

  3. codecs 1264 芳香数

    1264 芳香数 题目描述 Description This question involves calculating the value of aromatic numbers which are ...

  4. JS-选项卡制作解释部分

    <!DOCTYPE html> <html> <head> <meta name="author" content "郭菊锋,7 ...

  5. 深入理解document.referrer的用法

    前言 在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL.domain和referrer. URL属性包含页面完整的URL,domain属性 ...

  6. Python在windows平台的多版本配置

    Python在windows平台的多版本配置 快速阅读: ​ python在windows平台的环境变量以及多版本配置 ,以及pycharm如何安装包,以及安装包出错时如何排查. 1.python环境 ...

  7. #C++初学记录(贪心算法#二分查找)

    D - Aggressive cows 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 < ...

  8. T-MAX组--项目冲刺(第五天)

    T-MAX组--项目冲刺(第五天) THE FIFTH DAY 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 T-MAX组--项 ...

  9. <深度学习优化策略-3> 深度学习网络加速器Weight Normalization_WN

    前面我们学习过深度学习中用于加速网络训练.提升网络泛化能力的两种策略:Batch Normalization(Batch Normalization)和Layer Normalization(LN). ...

  10. OSG学习笔记0——解决OSG读obj模型问题[转]

    原文:https://blog.csdn.net/u011310341/article/details/51179948 #include "stdafx.h" #include& ...