Bias vs. Variance(3)---用learning curves来判断bias/variance problem
画learning curves可以用来检查我们的学习算法运行是否正常或者用来改进我们的算法,我们经常使用learning cruves来判断我们的算法是否存在bias problem/variance problem或者两者皆有。
learning curves--m(trainning size与error的函数)
上图是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
Bias vs. Variance(3)---用learning curves来判断bias/variance problem的更多相关文章
- (论文笔记Arxiv2021)Walk in the Cloud: Learning Curves for Point Clouds Shape Analysis
目录 摘要 1.引言 2.相关工作 3.方法 3.1局部特征聚合的再思考 3.2 曲线分组 3.3 曲线聚合和CurveNet 4.实验 4.1 应用细节 4.2 基准 4.3 消融研究 5.总结 W ...
- 论文笔记系列-Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves
I. 背景介绍 1. 学习曲线(Learning Curve) 我们都知道在手工调试模型的参数的时候,我们并不会每次都等到模型迭代完后再修改超参数,而是待模型训练了一定的epoch次数后,通过观察学习 ...
- 模型融合---为什么说bagging是减少variance,而boosting是减少bias?
1.bagging减少variance Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均.由于子样本集的相似性以及使用的是同种模型,因此各模型有近似相等的bias和var ...
- 吴恩达机器学习笔记37-学习曲线(Learning Curves)
学习曲线就是一种很好的工具,我经常使用学习曲线来判断某一个学习算法是否处于偏差.方差问题.学习曲线是学习算法的一个很好的合理检验(sanity check).学习曲线是将训练集误差和交叉验证集误差作为 ...
- 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)
绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...
- 斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)
算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了 ...
- 学习曲线(learning curves)
假定假设函数为一个二次函数,只是参数未定: 每给定一个样本大小,就能训练出对应的假设函数,从而利用这个假设函数可以计算出Jtrain(仍然在之前拿来训练的那些样本里面),然后将训练好的假设函数用在全部 ...
- Coursera, Machine Learning, notes
Basic theory (i) Supervised learning (parametric/non-parametric algorithms, support vector machine ...
- 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 ...
随机推荐
- eclipse 查看文件在磁盘里的位置
- Postman 使用方法详细介绍
1,下载安装: https://www.getpostman.com/apps 2,打开Postman,如图所示: 3,创建一个接口项目 4,新增接口文件 5,下面以登录接口login为例,介绍如何做 ...
- .net webapi跨域 web.config配置
<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...
- 笨方法学Python摘记(1)
编程新手所需的最重要的三种技能:读和写.注重细节.发现不同 不要复制粘贴! #-*-codinig:utf-8 -*- (脚本使用unicode UTF-8) 书写习惯:操作符的两边加上空格,提高代 ...
- OpenGL入门学习--超级好的资料
近几天,由于工作项目需要利用openGL显示STL格式的三维模型,分享下面的BOOK,这个老外写得真是TMD太好了,资料免费! http://www.glprogramming.com/red/ind ...
- Apache ZooKeeper在Kafka中的角色 - 监控和配置
1.目标 今天,我们将看到Zookeeper在Kafka中的角色.本文包含Kafka中需要ZooKeeper的原因.我们可以说,ZooKeeper是Apache Kafka不可分割的一部分.在了解Zo ...
- 1.jvm思维导图
点击图片可查看高清图
- Jenkins安装maven integration plugin失败解决方法
最近装了一个jenkins准备搞一个自动化测试的持续集成,但是在安装maven integration这个插件时报错,试了几次都是失败! 错误原因如下: javadoc安装失败: java.io.IO ...
- Java线程同步类容器和并发容器(四)
同步类容器都是线程安全的,在某些场景下,需要枷锁保护符合操作,最经典ConcurrentModifiicationException,原因是当容器迭代的过程中,被并发的修改了内容. for (Iter ...
- .Net Core WebApi(1)— 入门
主要讲述利用EF Core的CodeFirst迁移数据库,简单接口增删改查的使用,利用Swagger生成接口文档. 1.新建项目 创建DbContext 和实体模型