Stanford机器学习---第六讲. 怎样选择机器学习方法、系统

原文:http://blog.csdn.net/abcjennifer/article/details/7797502

本栏目(Machine learning)包括单参数的线性回归、多参数的线性回归、Octave Tutorial、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(Support Vector Machines 支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。所有内容均来自Standford公开课machine learning中Andrew老师的讲解。(https://class.coursera.org/ml/class/index

第六讲. 怎样选择机器学习方法——Advice for applying machine learning

===============================

候选机器学习方法

评价方法假设

☆模型选择和训练、验证实验数据

☆区别诊断偏离bias和偏差variance

☆规则化 和 bias/variance

Learning Curve:什么时候增加训练数据training set才是有效的?

===============================

候选机器学习方法——Deciding what to try next

还用房价的prediction举例,假设我们已经实现了用规则化的线性回归方法预测房价:

但发现该预测应用于一个新的训练数据上时有很大误差(error),这时应采取一些解决方案:

Get more training examples

Try smaller sets of features

Try getting additional features

Try adding polynomial features (e.g.  x1^2, x2^2, x1x2...)

Try decreasing λ

Try increasing λ


Machine Learning 方法的诊断:

- 什么是诊断Dignostic呢?诊断就是能够判断一种学习算法能不能work,并且改善该算法性能的一个测试。

Diagnostic: A test that you can run to gain insight what is/isn't working with a learning algorithm, and gain guidance as to how best to improve its performance.

-诊断的效果:Diagnostics can take time to implement, but doing so can be a very good use of your time.

===============================

评价方法假设——Evaluating a hypothesis

首先呢,我们将所有数据分为两个集合,一个Trainning set和一个Testing set,用Training set得到参数向量,用Testing set进行测试(比如分类)。

这时,将test set的error分为线性回归linear regression和逻辑回归logistic regression两类:

-线性回归的error:

-逻辑回归的error:

===============================

模型选择和训练、验证实验数据

面对模型选择问题,如何才能得到一个just fit的模型而不会导致underfit 或者overfit呢?我们引入一类数据集,叫做cross validation set,即交叉验证数据集。将所有数据按<6,2,2>分为training set , cross validation set , testing set三类,如下图所示:

其error计算公式如下,其实三类计算方法大同小异,相同的公式只是换了数据及而已:

进行模型选择的方法其实很简单,对应下图大家来看:

-首先,建立d个model 假设(图中有10个,d表示其id),分别在training set 上求使其training error最小的θ向量,那么得到d个θ

-然后,对这d个model假设,带入θ,在cross validation set上计算J(cv),即cv set error最小的一个model 作为 hypothesis,如下图中J(cv)在第4组中最小,便取d=4的假设。

PS: 其实d表示dimension,也就是维度,表示该hypothesis的最大polynomial项是d维的。

PS': 一般地,J(cv)是大于等于J(train)的

===============================

区别诊断偏离bias和偏差variance

前面的课程中我们曾讲过相同数据不同回归情况:

这一节中,我们给大家区分两个概念:bias vs. variance。

如下图所示为error随不同dimension的model变化图,可以想见,随d上升是一个由underfit到overfit的过程,这个过程中,training set的error逐渐下降,而cv set的error先降后升。

这里就产生了bias和variance的概念:

bias:J(train)大,J(cv)大,J(train)≈J(cv),bias产生于d小,underfit阶段;

variance:J(train)小,J(cv)大,J(train)<<J(cv),variance产生于d大,overfit阶段;

如下图所示:

来来,做道题:

-------------------------------------------------------------

好,有了初步概念,现在我们来看bias和variance的由来及具体定义:

给定数据及D(比如一个点集吧),对于这些数据集上的点我们可以计算每个index下点的平均值(即期望)t(x) = E(y|x),则我们有mean square error:

MSE = 1/n * Σ(f(x)-t(x))^2

MSE(mean square error) = Bias2 + Variance +noise

定义上是这么讲的:

Variance: measures the extent to which the solutions for individual data sets vary around their average, hence this measures the extent to which the function f(x) is sensitive to theparticular choice of data set.

Bias: represents the extent to which the average prediction over all data sets differs from the desired regression function.

Our goal is to minimize the expected loss, which we havedecomposed into the sum of a (squared) bias, a variance, and a constant noiseterm. As we shall see, there is a trade-off between bias and variance, with very flexible models(overfit) having low bias and high variance, and relatively rigid models(underfit) having high bias and low variance


总结一下:

variance:估计本身的方差。

bias:估计的期望和样本数据样本希望得到的回归函数之间的差别。

具体来讲,我有一个统计量D(比如统计某大学研一学生身高在[0.5-1],[1,1.1],[1.1,1.2]……[1.9,2]之间的人数),这样可以形成一些离散点。然后呢,本校研一有20个班,每个班就都可以拟合成一条估计曲线f(x),这20条曲线呢,有一个平均值,也就是估计期望(均值)曲线E(f(x,D))。

variance是指,这20条估计曲线与最后估计期望(均值)之间的距离,也就是估计曲线本身的方差,是不可能为0的。

bias是指,20条估计曲线的均值与实际最佳拟合情况之间的距离。

这样一来呢,对于regularization项中的λ,

λ小 , d大 -> overfit(flexible) ->

对于不同的训练数据集(不同班级的数据)的拟合结果抖动很大 -> variance大

bias是估计均值与实际值期望的偏差 -> bias小

下图中,左图为拟合的20条曲线;右图红线为20条曲线的期望,绿色为实际数据期望所得的拟合曲线。

λ大 , d小 -> underfit(stable) ->

对于不同的训练数据集(不同班级的数据)的拟合结果抖动较小 -> variance小

bias是估计均值与实际值期望的偏差 ,不能很好地进行回归-> bias大

下图中,左图为拟合的20条曲线;右图红线为20条曲线的期望,绿色为实际数据期望所得的拟合曲线。

下图所示为λ与bias, variance, error之间的关系:

我们希望的数据的variance和bias都不要大:

那么着就是一个variance和bias之间的tradeoff 了~

===============================

规则化 和 bias/variance

上面一节中讲了bias和variance的诞生,那么这一节中偶们就将他们应用于regularization中。

大家还记的什么是regularization么?regularization就是为了防止overfit而在cost function中引入的一个分量。

还不清楚?看下图吧,regularization项就是cost function J(θ)中的最后一项,其中λ太大导致underfit,λ太小导致overfit……

将λ从0,0.01,一直往上每次乘以2,那么到10.24总共可以试12次λ。

这12个λ会得到12个model的 cost function,每个对应有J(θ)和 Jcv(θ).

和模型选择的方法相同,首先选出每个cost function下令J(θ)最小的θ,然后取出令Jcv(θ)最小的一组定为最终的λ。

来来,看看你做的对不:

图画出来就是这个样子滴:

λ太小导致overfit,产生variance,J(train)<<J(cv)

λ太大导致underfit,产生bias,J(train) ≈ J(cv)

能明白我的意思么?

===============================

Learning Curve:什么时候增加训练数据training set才是有效的?

这一小节想要讲讲训练数据个数m和error之间的关系。从上面这幅图中我们可知(不知的话用极限思维想想),训练数据越少(如果只有一个),J(train)越小,J(cv)越大;m越大,J(train)越大(因为越难perfectly拟合),J(cv)越小(因为越精确),懂我的意思吧?

那么我们分别就High Bias 和 High Variance来看看增加training set个数,即m,是否有意义?!

Underfit 的 High bias: 增加m无济于事!

Overfit的 High Variance: 增加m使得J(train)和J(cv)之间gap减小,有助于performance提高!

来来,做道题:

由图中可见,增加训练数据的个数对于过拟合是有用的,对于underfit是徒劳!

下面总结一下,重温最初的解决方案列表:

针对underfit和overfit,分别是什么情况呢?见下图:

这章非常有用,讲了选择最佳拟合model的问题,是machine learning的常见问题,希望能对大家选择ml 模型有所帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 偏差和方差的判别 高偏差和高方差本质上为学习模型的欠拟合和过拟合问题。 对于高偏差和高方差问题,即学习模型的欠拟合...
    SmallRookie阅读 483评论 0 0
  • 原文:http://blog.csdn.net/abcjennifer/article/details/78342...
    MapleLeaff阅读 932评论 0 1
  • 2017年6月18日 武汉天河机场 去一个陌生却又向往的城市 我把这些话写给我还想念着的少年 两个星期前,我们的关...
    一颗粉梨子阅读 136评论 0 0
  • 在答辩完和拿毕业证这大半个月的空闲中,在大家回家的回家毕业旅行的毕业旅行结束后,班上男男女女10来个人打算一起去泸...
    生活小故事阅读 169评论 0 0
  • ‌ 原本 我只是岁月中的尘埃一粒 被风 植在你心田肥沃成传奇 如今 想像生命之花在盎然中旖旎 不说“因为,所以” ...
    W后知后觉阅读 251评论 0 1