第 2 章 实践方法论-datawhale ai夏令营

分析一下在训练集上面没有学好的原因:


2.1 模型偏差

        假设模型过于简单,一个有未知参数的函数代 θ1 得到一个函数 fθ1 (x),同理可得到另一个函数 fθ2 (x),把所有的函数集合起来得到一个函 数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不在模 型可以描述的范围内。在这种情况下,就算找出了一个 θ ∗,虽然它是这些蓝色的函数里面最 好的一个,但损失还是不够低。

        所以如果模型的灵活性不够大,可以增加更多特征,可以设一个更大的模 型,可以用深度学习来增加模型的灵活性,这是第一个可以的解法。但是并不是训练的时候, 损失大就代表一定是模型偏差,可能会遇到另外一个问题:优化做得不好。

2.2 优化问题

        训练数据的损失不够低的时候,到底是模型偏差,还是优化的问题 呢。找不到一个损失低的函数,到底是因为模型的灵活性不够,海里面没有针。还是模型的灵 活性已经够了,只是优化梯度下降不给力,它没办法把针捞出来 到底是哪一个。到底模型已 经够大了,还是它不够大,怎么判断这件事呢?

通过比较不同的模型来判断模型现在到底够不够大

        Q:如何知道是 56 层的优化不给力,搞不好是模型偏差,搞不好是 56 层的网络的模 型灵活性还不够大,它要 156 层才好,56 层也许灵活性还不够大?

         A:但是比较 56 层跟 20 层,20 层的损失都已经可以做到这样了,56 层的灵活性一定 比 20 层更大。如果 56 层的网络要做到 20 层的网络可以做到的事情,对它来说是轻 而易举的。它只要前 20 层的参数,跟这个 20 层的网络一样,剩下 36 层就什么事都不 做,复制前一层的输出就好了。如果优化成功,56 层的网络应该要比 20 层的网络可以 得到更低的损失。但结果在训练集上面没有,这个不是过拟合,这个也不是模型偏差, 因为 56 层网络灵活性是够的,这个问题是优化不给力,优化做得不够好。

        先知道这些简单的模 型,到底可以得到什么样的损失。

        接下来还缺一个深的模型,如果深的模型跟浅的模型比起来,深的模型明明灵活性比较 大,但损失却没有办法比浅的模型压得更低代表说优化有问题.

        举个观看人数预测的例子,在训练集上,因为 4 层都可以做到 100 了,5 层应该可以做得更低。这个是优化的问题,优化做得不好才会导致造成这样子的问题。

        但如果训练数据上面的损失小,测试数据上的损失大,可能是真的过拟合。在测试上的结 果不好,不一定是过拟合。要把训练数据损失记下来,先确定优化没有问题,模型够大了。接 下来才看看是不是测试的问题,如果是训练损失小,测试损失大,这个有可能是过拟合。

2.3 过拟合

        如果模型它的自由度很大的话,它可以产生非常奇怪的曲线,导致训练集上的结果好,但是测试集上的损失很大。

怎么解决过拟合的问题呢,有两个可能的方向:

        第一个方向是往往是最有效的方向,即增加训练集。可以做数据增强就是根据问题的理解创造出新的数据。但是要根 据对数据的特性以及要处理的问题的理解,来选择合适的数据增强的方式。

        另外一个解法是给模型一些限制,让模型不要有过大的灵活性:

                • 给模型比较少的参数。        

                • 用比较少的特征

                • 还有别的方法,比如早停(early stopping)、正则化(regularization)和丢弃法(dropout method)。

但也不要给太多的限制,而是因为给模型太大的限制,大到有了模型偏差的问题。

2.4 交叉验证

        如果随机分验证集,可能会分得不好, 分到很奇怪的验证集,会导致结果很差,如果有这个担心的话,可以用 k 折交叉验证.

        最好的做法,就是用验证损失,最小的直接挑就好了,不要管公开测试集的结果。在 实现上,不太可能这么做,因为公开数据集的结果对模型的选择,可能还是会有些影响的。理 想上就用验证集挑就好,有过比较好的基线(baseline)算法以后,就不要再去动它了,就可 以避免在测试集上面过拟合。

2.5 不匹配

       实际上 2 月 26 日是一 个峰值, 模型其实会觉得它是一个低点,也不能怪它,因为根据过去的数据,周五晚上大家都 出去玩了。但是 2 月 26 日出现了反常的情况。这种情况应该算是另外一种错误的形式,这种 错误的形式称为不匹配(mismatch)。

        不匹配跟过拟合其实不同,一般的过拟合可以用搜集更多的数据来克服,但是不匹配是 指训练集跟测试集的分布不同,训练集再增加其实也没有帮助了。

        匹不匹配要看对数据本身的理解了,我们 可能要对训练集跟测试集的产生方式有一些理解,才能判断它是不是遇到了不匹配的情况。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值