【细化深度学习】模型评价之方差&偏差

细化深度学习这个系列主要是想总结一些深度学习常用的比较基础的方法及其原理。补充自己深度学习知识体系中的细节部分。在看代码时既能纵观整体结构,又能捕捉细枝末节。

当然,既然是总结,就得综合不同的文献和教程。原创是不可能的原创的,只是加入一些自己的理解(小白本白暴风哭泣)。老规矩,参考文献在文末,需要自取~

作者也是在一边学习一边记录,所以难免会有理解错或者有漏洞的地方,还请各位不吝赐教~


1. 直观地理解

我们训练一个学习算法的目的是什么呢?当然是帮我们处理相同的问题。比如我训练了一个识别图片中是否有猫的模型,那我肯定是想让这个模型帮我分辨一些未知的图片是否有猫。所以评价它的标准是在未打标签的数据上,它的准确率是多少。这也是我们通常所说的泛化(generalization)能力。

泛化能力在数据上的表示就是测试集的误差,因为通常测试集和训练集是同分布而无交集的。

跑个题,为什么这里说训练集和测试集是同分布而无交集呢?

因为如果它们不同分布,那么这个模型就是答非所问。比如你让一个训练为识别猫的模型去识别图片里有没有狗,那么请你求它的心理阴影面积hhh。

这是比较极端的例子。学术一点,如果你的训练集含有一些测试集没有的特征,而模型又恰好学到了这个特征,那它就很有可能因为测试样本没有该特征而识别出错。不管这个特征对识别有帮助(比如与猫相关的特征,毛发,耳朵等),还是没帮助(比如背景色调)。

什么,你问能不能不让它学到不相关的特征?那真是 too young too simple。用深度学习的方法难道不就是想让模型自动提取特征么,手动提取为什么不用传统方法,当然效果可能就 emmm…… 众所周知,深度学习模型的(样本->特征空间)的映射一直是个玄学问题,你只能通过可视化权重矩阵(比如卷积核)来观测,这大概也是大家把它叫做黑匣子的原因吧。但是很遗憾,你只有观测权,没有直接决定权。but 你可以尽可能使用与应用场景贴合的样本数据来引导网络训练的方向。所以就又回到了同分布的问题。

无交集是因为本来就是要从测试集获得模型的泛化能力评价,再让它识别学习过的东西那就和高考出原题一样,并不能考查实际的泛化能力。

以上解释仅适用于一般情况,对模型有特,殊,要,求,而故意设计不同分布或者有交集的数据集除外。

我在初学深度学习的时候经常会花大把时间关注训练集的误差,现在看来是不科学的。优化模型效果其实有一个更系统和明确的方向,就是下面这个图(根据吴恩达老师的视频课程画的):

在这里插入图片描述

直观上来说,bias 表示训练误差与真值之间的差距。但是从理论上来说,学习算法是不可能达到100%完全准确的,因为总是存在一些数据不能够进行准确识别,比如噪声过大的音频,或者过于模糊以至于看不清的图像。所以理论上的最优值(也叫贝叶斯最优误差)并不是完美水平。

而在一些人类比较得心应手的方面,人类水平和贝叶斯最优误差已经非常接近了。当算法的表现超过人类水平时,很有可能其性能的提升就比较缓慢了。就像你教一个成绩比你好的人如何学习一样,虽然可能不是完全没效果,但一定非常吃力。但是当他水平不如你的时候,你就可以用一些你自己的方法调教他,啊不对,它。

所以这里我们用人类水平来代表算法表现的上限。

偏差(bias)方差(variance) 反映了机器学习的两种主要问题,欠拟合(underfitting)过拟合(overfitting)

当训练集的误差无法达到人类水平,说明算法并不能完全学习到该学习的所有特征(无论训练多少遍)。这两者之间的差距就叫偏差,这个问题就是欠拟合。那算法就一定有可以改进的地方。具体的方法如图,以后可能会专门介绍(flag先立起来:)。

所谓养兵千日用兵一时,如果它训练的时候表现不错,测试的时候却总是掉链子,那就是开头所说的,泛化能力出了问题。这部分的差距就叫方差,这种问题就叫过拟合

顾名思义,就是算法过于关注训练集误差,以至于学习了一些对解决问题没什么用的特征,即对训练数据拟合过度了。相对应的,欠拟合就是拟合的不够。下面的二分类问题就很能说明问题(来自文献3):

在这里插入图片描述

左中右分别是:欠拟合,刚刚好,过拟合的情况。

2. 学术一点地理解

从统计的角度上来说,算法学习的是(数据空间->特征空间)的映射。

偏差表示的是算法学到的映射和真实的映射有多大差距,反映了对问题的拟合能力;方差表示训练集数据(看作是对真实数据的采样)分布和真实数据分布的差距导致的期望值差距,也可以说是数据噪声对学习算法的影响。

以线性回归为例,量化分析一下泛化误差与方差和偏差的关系。

(以下内容来自参考文献[2])

在这里插入图片描述在这里插入图片描述

3. 方差与偏差的关系

当我们的模型容量(可以理解为其复杂程度,或拟合能力)不变时,方差和偏差是会互相冲突的。在不断训练的过程中,模型对训练数据的拟合程度越来越高,偏差会逐渐变小,而方差会逐渐增加。当它学习到了不适应于测试数据的特征时,就会出现过拟合。

在这里插入图片描述

如果把训练程度作为控制变量,当改变模型容量且对每个模型都充分训练时,方差和偏差仍然是会冲突的。

在这里插入图片描述

参考文献

  1. 《深度学习》,[美] Ian,Goodfellow等 著,[加] Yoshua,Bengio 编
  2. 《机器学习》,周志华
  3. 神经网络与深度学习(视频课),吴恩达
  4. 斯坦福cs231n(视频课)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值