从零开始学习CNN系列——(四)一些乱七八糟的小概念

从零开始学习CNN系列——(四)一些乱七八糟的小概念

    从零开始学习CNN系列,是本人学习李宏毅老师的深度学习课、cs231n及吴恩达老师的深度学习课后总结的适合无基础小白入门深度学习的教程,会跟随本人的炼丹水平不断更改,如有错误,请多加指正。

    此小节,主要介绍几个常见的却不知道为什么的概念,实在不知道取啥名字,乱七八糟就对了。

1、“过拟合”概念的理解

    机器学习中的过拟合是指模型在训练集表现优越,但在测试集误差非常大。现在我们来思考,过拟合现象出现的原因。
    李老师用bias和variance两个因子来解释过拟合的思路非常巧妙,这里分享给大家。

通常,过拟合出现的直接原因是因为设计的模型过于复杂,如上图的右侧函数,其function set包含的函数可能性远超左侧的简单函数。如果将模型的训练比作射击比赛,靶上所有点的集合即是function set,复杂模型的可能性种类更多,如同上图的右侧函数,红色覆盖的区域远大于左侧,因此射到靶上的点分布非常散乱,我们称其variance(方差)(这里理解为射击点的分散程度),而因为其点可能散布任何地方,其平均bias(这里理解为射击点距靶心的距离)很小;而简单模型的可能性种类很少,且分散集中,因此如左图,射击点的分布集中,即variance小,且平均bias较大
    对于复杂模型,想象其是一个发挥很不稳定的选手,我们在他的射击点集合中找一个最优的点(即function set中找best function)当然非常简单,因为他可能射到任何位置,这对应于过拟合模型在训练集表现优越的现象,但当你让他重新射击一次(对应于在测试集运行),他本身发挥不稳定,实力不强,所以误差会异常大;而对于一个合适的简单模型,虽然平均每次都有一定误差,但选手发挥稳定,即便让他再射击一次(测试集),他的表现依然稳定,也即常说的鲁棒性高,和训练集表现差不多。
    当然,若是一个模型在训练集bias就非常大,那就是不拟合(underfitting)了,亲,这边建议重新设计模型。

2、为什么要把数据集分为training、validation、testing 三个set?

    有过实际炼丹经历的读者都应该知道,正常情况下,我们都是把数据集分为training set、validation set、testing set,而不是想当然认为的training set、testing set。但我也一直很想知道为啥要多出一个validation set,如果你和我有过同样的问题,这里给出一个个人觉得不错的解答。
    首先,如果将数据集如下图一样只分为training set和testing set:

通过训练,我们找出三种模型下的三个最优函数,并且我们用其在testing set上的表现来选择最优模型,其问题是由于真正上线遇到的数据(橙色testing set)是完全新的,模型在testing set上的表现并不能代表实际表现。

再来对比下,我们加上一个validation set:

可以看到,这里的validation set实际上替代了第一种方法的testing set,而testing set模拟了第一种方法中实际上线时的testing set,虽然这种方法下,模型在testing set的表现依然不能代表实际表现,但相对于第一种方法,它通过模拟模型从测试到实际上线的整个流程,使得模型在testing set的表现相比第一种方法,更能代表实际表现。(有点绕口,但个人理解是这样的)

3、为什么要做特征缩放(feature scaling)?

    所谓特征缩放(feature scaling)就是将不同特征值缩放到同一波动范围,如下图中的 $x1$ 和 $x2$ 。

$x2$ 的波动范围原来是100的倍数,远大于 $x1$ ,进行特征缩放后,将其缩放到与 $x1$ 同范围。做特征缩放的核心原因是:可以让梯度下降法更快地找到目标点。以下是定性分析:
因为 $x2$ 的范围明显大于 $x1$ ,所以 $w2$ 对 $y$ 的影响远大于 $w1$ ,$w2$只做微小变化,对 $y$ 的影响也远超 $w1$ ,用图形来形象表示就成了上图中左侧的椭圆;同理,如果 $x1$ 和 $x2$ 缩放到同一范围,就变成右侧的圆形。从数学角度做个简单的分析,梯度的方向即是等高线的法线,相比椭圆,右侧的圆形肯定能更快到达目标点。

小结

    这篇文章主要讲述了以下几个知识点:

  • 过拟合现象的一种有趣的理解
  • 之所以要把数据集分为training、validation、testing set是为了更好的模拟模型在实际数据集的表现。
  • 做特征缩放是为了加快梯度下降法寻找到目标点的速度。

评论


当我沿着一条路走下去的时候,心里总想着另一条路上的事。这种时候,我心里很乱。放声大哭从一个梦境进入另一个梦境,这是每个人都有的奢望。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×