读书人

Stanford机器学习-第六讲. 怎么选择机

发布时间: 2012-08-26 16:48:06 作者: rapoo

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

本栏目(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举例,假设我们已经实现了用规则化的线性回归方法预测房价:

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

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

Get more training examplesTry smaller sets of featuresTry getting additional featuresTry 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.


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



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

评价方法假设——Evaluating a hypothesis

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

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

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

-线性回归的error:

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

-逻辑回归的error:

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



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

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


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

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

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


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

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

-首先,建立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)的

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


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

区别诊断偏离bias和偏差variance

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

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



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

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


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


这里就产生了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阶段;

如下图所示:


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

来来,做道题:

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



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

规则化 和 bias/variance


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

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

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


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


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

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

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

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

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


来来,看看你做的对不:

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


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

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


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

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

能明白我的意思么?



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

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


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

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


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


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

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


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

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


来来,做道题:

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


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

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


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


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


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


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



关于Machine Learning更多的学习资料将继续更新,敬请关注本博客和新浪微博Sophia_qing。





读书人网 >软件开发

热点推荐