画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的更多相关文章

  1. (论文笔记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 ...

  2. 论文笔记系列-Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves

    I. 背景介绍 1. 学习曲线(Learning Curve) 我们都知道在手工调试模型的参数的时候,我们并不会每次都等到模型迭代完后再修改超参数,而是待模型训练了一定的epoch次数后,通过观察学习 ...

  3. 模型融合---为什么说bagging是减少variance,而boosting是减少bias?

    1.bagging减少variance Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均.由于子样本集的相似性以及使用的是同种模型,因此各模型有近似相等的bias和var ...

  4. 吴恩达机器学习笔记37-学习曲线(Learning Curves)

    学习曲线就是一种很好的工具,我经常使用学习曲线来判断某一个学习算法是否处于偏差.方差问题.学习曲线是学习算法的一个很好的合理检验(sanity check).学习曲线是将训练集误差和交叉验证集误差作为 ...

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

    绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...

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

    算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了 ...

  7. 学习曲线(learning curves)

    假定假设函数为一个二次函数,只是参数未定: 每给定一个样本大小,就能训练出对应的假设函数,从而利用这个假设函数可以计算出Jtrain(仍然在之前拿来训练的那些样本里面),然后将训练好的假设函数用在全部 ...

  8. Coursera, Machine Learning, notes

      Basic theory (i) Supervised learning (parametric/non-parametric algorithms, support vector machine ...

  9. 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 ...

随机推荐

  1. k8s 使用本地镜像的时候

    k8s默认会从远端拉取镜像,其配置参数imagePullPolicy为Always containers: - name: demo image: image imagePullPolicy: Nev ...

  2. GroupBy之后加ToList和不加ToList有什么区别吗?

        class Program    {        static void Main(string[] args)        {             List<Person> ...

  3. 2019年广东外语外贸大学程序设计竞赛(新手赛)-F题(好快的刀)题解

    题面: 题目意为,任意连接两个圆的圆心形成一条直线,计算与该直线相交或相切的圆的数量,求这些直线最多能相交或相切多少个圆 解题思路: 遍历所有的圆,计算出两圆圆心生成的直线,再遍历其他的圆,检测这些圆 ...

  4. 小程序云函数,解决接口https问题

    本实例只是简单记录http请求 1,云函数如下 // 云函数入口函数 exports.main = async (event, context) => { let req = await got ...

  5. SpringBoot自动配置原理学习

    介绍 构建Springboot项目时我们会创建一个启动类 @SpringBootApplication public class DemoApplication { public static voi ...

  6. drf复习(一)--原生djangoCBV请求生命周期源码分析、drf自定义配置文件、drf请求生命周期dispatch源码分析

    admin后台注册model  一.原生djangoCBV请求生命周期源码分析 原生view的源码路径(django/views/generic/base.py) 1.从urls.py中as_view ...

  7. html5 iframe

    html5 iframe元素:用于在网页中嵌入另一个页面,或嵌入视频 可替换元素 显示内容取决于元素属性 css不能完全控制其中样式 通常是行内块盒子 <a href="" ...

  8. Spring Cloud常用组件及各组件版本对应关系图

    Spring Cloud常用组件: 架构图: 版本对应关系:

  9. Ubuntu /etc/security/limits.conf 不生效问题

    一.问题描述 修改 /etc/security/limits.conf ,重启之后不生效 内容如下: * soft nofile * hard nofile root soft nofile root ...

  10. tkinter学习笔记_04

    8.勾选项 checkbutton import tkinter as tk root = tk.Tk() root.title("xxx") root.geometry('200 ...