概念定义

  • 偏差(bias):偏差衡量了模型的预测值与实际值之间的偏离关系。通常在深度学习中,我们每一次训练迭代出来的新模型,都会拿训练数据进行预测,偏差就反应在预测值与实际值匹配度上,比如通常在keras运行中看到的准确度为96%,则说明是低偏差;反之,如果准确度只有70%,则说明是高偏差。
  • 方差(variance):方差描述的是训练数据在不同迭代阶段的训练模型中,预测值的变化波动情况(或称之为离散情况)。从数学角度看,可以理解为每个预测值与预测均值差的平方和的再求平均数。通常在深度学习训练中,初始阶段模型复杂度不高,为低方差;随着训练量加大,模型逐步拟合训练数据,复杂度开始变高,此时方差会逐渐变高

图形定义

这是一张常见的靶心图。可以想象红色靶心表示为实际值,蓝色点集为预测值。在模型不断地训练迭代过程中,我们能碰到四种情况:

  • 低偏差,低方差:这是训练的理想模型,此时蓝色点集基本落在靶心范围内,且数据离散程度小,基本在靶心范围内;
  • 低偏差,高方差:这是深度学习面临的最大问题,过拟合了。也就是模型太贴合训练数据了,导致其泛化(或通用)能力差,若遇到测试集,则准确度下降的厉害;
  • 高偏差,低方差:这往往是训练的初始阶段;
  • 高偏差,高方差:这是训练最糟糕的情况,准确度差,数据的离散程度也差。

数学定义

误差 = 方差 + 偏差2 + 噪音 组成,一般来说,随着模型复杂度的增加,方差会逐渐增大,偏差会逐渐减小,见下图:

过拟合、欠拟合和恰好

偏差的变化趋势相信大家都容易理解,随着模型的不断训练,准确度不断上升,自然偏差逐渐降低。但方差的变化趋势却不易理解,为何训练初始阶段是低方差,训练后期易是高方差?

  注意方差的数学公式为:E [(h(x) - h(x))2] ,也就是说为每个预测值与预测均值差的平方和再求平均数,可以表现为一种波动变化,低方差意味低变化,高方差意味高变化。那我们可以通过训练的不同阶段来直观感受方差的变化:

上图为训练初始阶段,我们的模型(蓝线)对训练数据(红点)拟合度很差,是高偏差,但蓝线近似线性组合,其波动变化小,套用数学公式也可知数值较小,故为低方差,这个阶段也称之为欠拟合(underfitting),需要加大训练迭代数。

上图为训练的后期阶段,可明显看出模型的拟合度很好,是低偏差,但蓝线的波动性非常大,为高方差,这个阶段称之为过拟合(overfitting),问题很明显,蓝线模型很适合这套训练数据,但如果用测试数据来检验模型,就会发现泛化能力差,准确度下降。

  因此我们需要两者之间的一个模型。

上图这个蓝色模型可认为是“恰好”的一个模型,既能跟训练数据拟合,又离完美拟合保持一定距离,模型更具通用性,用测试数据验证会发现准确度也不错。

  这个模型怎么来呢?我们可以采取很多手段,比如:

  • 加大数据量,数据越多,自然其泛化能力也越强。但现实情况我们不能像大公司那样拥有很多资源,那怎么办?一种可行的办法就是根据已有的数据做数据增强,比如旋转、反转、白增强等操作造出很多数据;
  • 正则化(regularization,个人感觉中文翻译未能表达英文原义,应该是表达约束、调整的意思),通常来说有dropout、L2、L1等正则化手段;
  • 提早结束训练,防止训练过拟合化。

结论

由此看出,深度学习不但是一门科学,更像是一门艺术。我们选择一个好的模型,不断调整参数来跨越欠拟合,避免过拟合,建立心目中理想的“恰好”模型。这看上去更像一个不断升级打怪的经验之学,需要我们多多练习,但其背后支撑的数学原理也是需要我们去好好理解和掌握。

深度学习 —— 偏差与方差相关推荐

  1. 机器学习偏差、方差、泛化误差的完整总结

    综述 机器学习算法的最终目标是最小化期望损失风险(即机器学习模型在任意未知测试样本上的表现),但由于数据的真实分布我们通常是不知道的,我们可用的信息来自于训练数据,因此,机器学习的学习目标往往会转化为 ...

  2. 深度学习基础系列(八)| 偏差和方差

    当我们费劲周章不断调参来训练模型时,不可避免地会思考一系列问题,模型好坏的评判标准是什么?改善模型的依据何在?何时停止训练为佳? 要解决上述问题,我们需要引入偏差和方差这两个概念,理解他们很重要,也是 ...

  3. 1.2 偏差/方差-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.1 训练/开发/测试集 回到目录 1.3 机器学习基础 偏差/方差 (Bias/Variance) 我注意到,几乎所有机器学习从业人员都期望深刻理解偏差和方差,这两个概念 ...

  4. 深度学习(数据集划分偏差方差)

    以后做的整理尽量精简..日后定及时整理. 1.hold-out cross validation/development set验证集 数据集的常见划分:7 3分 train test 6 2 2 前 ...

  5. 花书+吴恩达深度学习(十九)构建模型策略(训练模型顺序、偏差方差、数据集划分、数据不匹配)

    目录 0. 前言 1. 调试模型顺序 2. 偏差方差的解决方法 3. 数据集的选取划分 4. 数据不匹配问题 5. 评估指标的选取 6. 贝叶斯最佳误差 如果这篇文章对你有一点小小的帮助,请给个关注, ...

  6. 吴恩达神经网络和深度学习-学习笔记-24-在不同的划分上进行训练和测试+不匹配数据划分的偏差和方差

    在不同的划分上进行训练和测试 深度学习算法对训练数据的胃口很大,当你收集到足够多的带标签数据构成训练集时,算法效果最好. 这导致很多团队用尽一切方法收集数据,然后把它们堆到训练集里,让训练的数据量更大 ...

  7. 吴恩达神经网络和深度学习-学习笔记-6-训练集、验证集和测试集 + 偏差bias和方差variance

    寻找最优超参数是一个迭代过程 在今天,应用深度学习是一个典型的迭代过程. 创建高质量的训练数据集.验证集和测试集,有助于提高循环效率. 训练集.验证集和测试集 数据Data分为三部分: 训练集trai ...

  8. 深度学习中的偏差和方差

    偏差和方差的意义 深度学习中,偏差指的是预测值和真实值之间的误差,方差可以理解为训练数据集精度和测试数据集精度之间的差异.下表则表示在训练神经网络时可能出现的结果,低偏差低方差则是我们期待的结果. 1 ...

  9. 深度学习中偏差和方差的区别

    解释一 **偏差(Bias): **描述的是预测值(估计值)的期望与真实值之间的差距.偏差越大,越偏离真实数据,在下图中的表现也就是数据点离红圆心的距离. **方差(Variance):**描述的是预 ...

  10. 深度学习中偏差和方差

    本文部分内容摘自https://blog.csdn.net/wuzqChom/article/details/75091612 从上面可以看出来均方误差由方差和偏差构成,那偏差和方差的高低又代表什么呢 ...

最新文章

  1. 寄存器、cache、内存、硬盘之间的千丝万缕
  2. 电源纹波分析及测试方法
  3. python查找字符串出现次数_Python搜索文本文件并计算指定字符串的出现次数
  4. 最简单上手的音频处理软件Cool Edit,这些操作你该知道
  5. javascript循环语句及函数
  6. 电脑系统哪个好用_火绒杀毒,真有那么好用吗?
  7. java的OutOfMemoryError: PermGen space实战剖析
  8. 数据结构与算法部分术语中英文对照
  9. Rider+EmmyLua lua代码高亮设置
  10. java 汽车类_汽车类 - java代码库 - 云代码
  11. hash算法概念和hash加盐法
  12. 野指针?悬空指针? 一文带你搞懂!
  13. CRA与craco配置移动端
  14. 几个生僻字:烎,囧、槑、玊、奣、嘦、勥、巭、嫑、恏、兲、氼、忈、炛
  15. 设计思维从1到100
  16. SO-Net:点云分析的自组织网络
  17. 关于ECW文件格式读取
  18. excel无法做图,是因为数据格式的原因
  19. Could not find artifact com.exer:manager:jar:1.0-SNAPSHOT
  20. 数据采集 - 笔记 2

热门文章

  1. 【ubuntu20】虚拟机下ubuntu联网
  2. matlab求图像峰度与斜度,python中的图像偏斜和峰度
  3. Gif动图体积如何缩小?分享一招快速压缩动图的方法
  4. A4张的尺寸大小是多大?像素又是多少呢?
  5. Source Map的概念
  6. 英雄联盟血条效果Shader
  7. UVA - 11137 Ingenuous Cubrency
  8. 如何将ipad大文件传输到window PC
  9. 大数据平台开发公司有哪些?
  10. 【解决方案】scrapy报错KeyError: ‘Spider not found‘