Bias vs. Variance(3)---用learning curves来判断bias/variance problem

画learning curves可以用来检查我们的学习算法运行是否正常或者用来改进我们的算法,我们经常使用learning cruves来判断我们的算法是否存在bias problem/variance problem或者两者皆有。

learning curves

上图是Jtrain(θ)与Jcv(θ)与training set size m的关系图,假设我们使用二次项来拟合我们的trainning data。

当trainning data只有一个时,我们能很好的拟合,即Jtrain(θ)=0;当trainning data有二个时,我们也能很好的拟合,即Jtrain(θ)=0;随着training data set数量的增加,Jtrain(θ)也递增;

当trainning data很小时,预测函数的泛化(generalization)就很弱,所以Jcv(θ)就很大,随着raining data set数量的增加,泛化能力增强(对新样本的适应能力增强),Jcv(θ)递减。

learning curves with high bias--增加training data是没有用的

当我们要用一条直线来模拟上图中的数据时,hypothesis处于high bias的情况,如上图所示,我们有5个样本点是,直线是那样的,我们将样本点增加到10个,直线还是那样的,不会因为我们增加了样本的个数会对数据模拟得更好,所以对于处于high bias的算法,我们增加training data是没有用的。

在high bias的情况下,刚开始样本点少时,Jtrain(θ)很小,随着样本点越来越多,hypothesis不能拟合太多的样本(underfit状态),Jtrain(θ)越来越大

在high bias的情况下,刚开始样本点少时,Jcv(θ)很大(因为少的样本点缺乏泛化能力),随着样本点的增多,Jcv(θ)变小,小到一个值就会趋于平缓(相对还是很大的值),即不会对我们hypothesis发生什么改变。

在high bias的情况下,Jtrain(θ)和Jcv(θ)随着样本的增大趋于相近的值(high error)

learning curves with high variance--增加training data是有帮助的

当我们的算法处于high variance情况下,如上图所示x有100次方(假设的情况)并且λ 值很小,这时我们的hypothesis处于high variance.

对于只有5个trainning data的情况,我们的hypothesis能拟合得很好,即当training set size小时,Jtrain(θ)也很小,随着training set size的增加,hypothesis不会每个点都拟合了,这时Jtrain(θ)会有所上升,但还是比较小的;

对于只有5个trainning data的情况,我们出现了overfitting的现象,这时Jcv(θ)很大,随着样本的增多,我们的泛化能力增强,Jcv(θ)下降,但是与Jtrain(θ)有一段gap(表明Jcv(θ)>>Jtrain(θ),overfitting的表现),这时如果我们延伸m,即扩大training set size,Jtrain(θ)上升,Jcv(θ)下降,如上图所示。所以增加training data是有帮助的。

上述两种情况下的learning curve都是理想情况下的,实际情况会有些不同(可能会有些噪声和干扰的曲线),但是会出现基本类似的结果,可以帮助我们看清我们的学习算法是否处于high bias/high variance/or both。所以当我们想要改进一个学习算法的性能时,我们通常都会画出learning curve,可以让我们更加看清bias or variance problem

时间: 2024-11-05 04:41:30

Bias vs. Variance(3)---用learning curves来判断bias/variance problem的相关文章

斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)

算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了防止过拟合现象,我们要使用图下所示的正则化.因此我们试图通过下面的正则化项,来让参数的值尽可能小.正则化项的求和范围,照例取为j等于1到m,而非j等于0到m. 然后我们来分析以下三种情形.第一种情形:正则化参数lambda取一个比较大的值(比如lambda的值取为10000甚至更大).在这种情况下,

斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)

绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制一条学习曲线,通常先绘制出训练集数据的平均误差平方和(Jtrain),或者交叉验证集数据的平均误差平方和(Jcv).将其绘制成一个关于参数m的函数.也就是一个关于训练集.样本总数的函数.m一般是一个常数,比如m等于100,表示100组训练样本.但我们要自己取一些m的值,也就是说对m的取值做一点限制,

Bias vs. Variance(4)---根据是high bias还是high variance问题来判断接下来做些什么

怎么区分哪些措施对我们有用呢?----首先根据learning curve来判断你的问题是high bias or variance 当你的算法是high bias问题时,如果你get more training examples是没有用处的,这时我们就不要浪费时间在get5 more training examples上面了. 对如何选择neural network architecture(选择几层hidden layer以及神经网络的大小)的建议 我们可以选择相对于来说"small&quo

CheeseZH: Stanford University: Machine Learning Ex5:Regularized Linear Regression and Bias v.s. Variance

源码:https://github.com/cheesezhe/Coursera-Machine-Learning-Exercise/tree/master/ex5 Introduction: In this exercise, you will implement regularized linear regression and use it to study models with different bias-variance properties. 1. Regularized Lin

On the Bias/Variance tradeoff in Machine Learning

参考:https://codesachin.wordpress.com/2015/08/05/on-the-biasvariance-tradeoff-in-machine-learning/ 之前一直没搞明白什么是bias,什么是variance,现在看看这篇博文. 当你的模型太简单,也就是你的train error太大的时候,你的bias就会比较大:当你的模型变得复杂时,bias变小,同时模型变得比较senstive,variance就会变大 但bias变化的幅度更大,所有整体看来,cros

[转] bias和variance

在A Few Useful Thingsto Know about Machine Learning中提到,可以将泛化误差(gener-alization error)分解成bias和variance理解. Bias: a learner’s tendency to consistently learn the same wrong thing,即度量了某种学习算法的平均估计结果所能逼近学习目标(目标输出)的程度. Variance:the tendency to learn random th

The difference between variance and bias

Variance is closely related to overfitting. High variance is usually caused by training a powerful model but with limited data, in other words, training with different sets of data would result in a different model. Bias is closely related to underfi

机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?

原文:http://www.zhihu.com/question/27068705 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?修改 最近在学习机器学习,在学到交叉验证的时候,有一块内容特别的让我困惑,Error可以理解为在测试数据上跑出来的不准确率 ,即为 (1-准确率). 在训练数据上面,我们可以进行交叉验证(Cross-Validation).一种方法叫做K-fold Cross Validation (K折交叉验证), K折交叉验证,初始

Coursera机器学习-第六周-Advice for Applying Machine Learning

Evaluating a Learning Algorithm Desciding What to Try Next 先来看一个有正则的线性回归例子: 当在预测时,有很大的误差,该如何处理? 1.得到更多的训练样本 2.选取少量的特征 3.得到更多的特征项 4.加入特征多项式 5.减少正则项系数λ 6.增加正则项系数λ 很多人,在遇到预测结果并不理想的时候,会凭着感觉在上面的6个方案中选取一个进行,但是往往花费了大量时间却得不到改进. 于是引入了机器学习诊断,在后面会详细阐述, Evaluati