一、模型偏差
当你假设的方程太简单并且包含的数据过少,没有任何一组数据可以让Loss(损失)变低,真正正确的一组数据并不在前面假设的方程中,解决办法可能有,给他更大的弹性----增加数据,但是弊端是不一定数据越多越好,可能是方程本身的问题。
到底是哪一个问题,可以通过比较不同的模型来知道你的方程够不够大。
当你可以让你的训练数据损失变小后,就可以看你的测试数据的损失(如果小,接可以结束了),如果大,可能是过拟合(测试数据大于训练数据)。
二、过拟合
为什么会过拟合。
给一个极端的例子:有一个无用的方程,用这个方程去匹配训练数据,有相同的就输出y,没有相同的就输出随机数。所以它在训练数据里的L为0,但是在测试数据上L会很大,因为它什么都没有学到。
或者在一般情况下:假设输入下x和输出y是一个一维的曲线(真实函数),但是我们无法观察到,我们只知道它上面的训练数据(从曲线上随机选取的几个点),当函数的弹性太大时,我们只知道这随机选取的几个点的数据,那么这个函数可能只会穿过这几个点(假设函数),但在其他位置随机发展。再在一维方程上随机选几个作为测试点,把这几个点拿到假设函数上,就不一定正确了,所以导致有训练数据上的结果好,测试数据里的结果不好的情况。
怎么解决
1、最好的方法是增加训练数据
2、通过自己的理解和数据的特性创建数据
3、不要让这个函数有太大的弹性:给他少的参数或让一些参数有一样的数值
三、模型的复杂程度与训练数据与测试数据的关系
当模型太过复杂时,测试损失就会慢慢变大,找一个中庸的模型可以让两个数据都好。