实践过程中常见问题
模型偏差
模型偏差指我们假设的模型可能过于简单, 无论如何优化都不可能接近真实模型。举个例子,假设模型为一次函数, 但真实模型是二次型的。虽然可以找到这些一次函数里面最好的一个,但损失还是不够低。这个时候重新设计一个模型,给模型更大的灵活性。可以考虑增加特征或使用深度学习,增加更多的灵活性。
![](https://i-blog.csdnimg.cn/direct/88b2d584512d464b9ee6b59b3bad229c.png)
优化问题
模型优化问题是指随着模型灵活性的增加, 模型在训练集上的表现反而下降的现象。2015 年的论文“Deep Residual Learning for Image Recognition”在测试集上测试两个网络,一个网络有 20 层,一个网络有 56 层。结果是 20 层的损失比较低,56 层的损失比较高。
过拟合
过拟合与模型优化问题类似,过拟合是指随着模型灵活性的增加, 模型在测试集上的表现反而下降。举一个极端的例子,这是训练集。假设根据这些训练 集,某一个很废的机器学习的方法找出了一个一无是处的函数。这个一无是处的函数,只要输入 x 有出现在训练集里面,就把它对应的 y 当做输出。如果 x 没有出现在训练集里面,就输出一个随机的值。这个函数啥事也没有干,其是一个一无是处的函数,但它在训练数据上的损失是 0, 可是在测试数据上面,它的损失会变得很大。
假设训练集丽只有 3 个点。在这 3 个点上面,要让损失低,所以模型的这个曲线会通过这 3 个点,但是其它没有训练集做为限制的地方,因为它的灵活性很大,它灵活性很大,所以模型可以变成各式各样的函数,没有给它数据做为训练,可以产生各式各样奇怪的结果。
怎么解决过拟合的问题呢,有两个可能的方向: 第一个方向是往往是最有效的方向,即增加训练集。因此如果训练集,蓝色的点变多了, 虽然模型它的灵活性可能很大,但是因为点非常多,它就可以限制住,它看起来的形状还是会很像,产生这些数据背后的 2 次曲线,如图所示。可以做数据增强(data augmentation) 这个方法并不算是使用了额外的数据。
另外一个解法是给模型一些限制,让模型不要有过大的灵活性。假设 x 跟 y 背后的关系 其实就是一条 2 次曲线,只是该 2 次曲线里面的参数是未知的。要用多限制 的模型才会好取决于对这个问题的理解。因为这种模型是自己设计的,设计出不同的模型,结果不同。假设模型是 2 次曲线,在选择函数的时候有很大的限制,因为 2 次曲线要就是这样 子,来来去去就是几个形状而已。所以当训练集有限的时候,来来去去只能够选几个函数。所以虽然说只给了 3 个点,但是因为能选择的函数有限,可能就会正好选到跟真正的分布比较 接近的函数,在测试集上得到比较好的结果。
但是当模型的限制太大时,在测试集上就不会得到好的结果。这种情况下的结果不好,并不是因为过拟合了,而是因为给模型太大的限制,大到有了模型偏差的问题。
不匹配
不匹配跟过拟合其实不同,一般的过拟合可以用搜集更多的数据来克服,但是不匹配是指训练集跟测试集的分布不同,训练集再增加其实也没有帮助了。假设数据在分训练集跟测试集的时候,使用 2020 年的数据作为训练集,使用 2021 年的数据作为测试集,不匹配的问题可能就很严重。如果今天用 2020 年当训练集,2021 年当测试集,根本预测不准。
下面是图像分类中的不匹配问题。增加数据也不能让模型做得更好,所以这种问题要怎么解决,匹不匹配要看对数据本身的理解了。