前言
在最后一次深度学习入门任务中,继续学习深度学习的实践方法论,学习什么是模型偏差,什么是优化,如何区分他们,学习完这些之后,会对深度学习有进一步的理解。
一、模型偏差
模型偏差会影响模型训练,模型太简单,会导致误差很大,不够灵活,假设模型过于简单,一个有未知参数的函数代 θ1 得到一个函数 fθ1 (x),同理可得到另一个函数 fθ2 (x),把所有的函数集合起来得到一个函数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不在模型可以描述的范围内。在这种情况下,就算找出了一个 θ ∗,虽然它是这些蓝色的函数里面最好的一个,但损失还是不够低,所以如果模型的灵活性不够大,可以增加模型的灵活性。
二、优化问题
一般用梯度下降进行优化,这种优化的方法很多的问题。比如可能会卡在局部最小值的地方,无法找到一个真的可以让损失很低的参数,可以把 θ 代入不同的数值,形成不同的函数,把所有的函数通通集合在一起,得到这个蓝色的集合。这个蓝色的集合里面,确实包含了一些函数,这些函数它的损失是低的。但问题是梯度下降这一个算法无法找出损失低的函数。
三、区分
通过比较不同的模型来判断模型现在到底够不够大。比如,在测试集上测试两个网络,一个网络有 20 层,一个网络有 56 层。图(a)横轴指的是训练的过程,就是参数更新的过程,随着参数的更新,损失会越来越低,但是结果20 层的损失比较低,56 层的损失还比较高。残差网络是比较早期的论文,2015 年的论文。很多人看到这张图认为这个代表过拟合,深度学习不奏效,56 层太深了不奏效,根本就不需要这么深。但 这个不是过拟合,并不是所有的结果不好,都叫做过拟合。在训练集上,20 层的网络损失其实是比较低的,56 层的网络损失是比较高的,如图(b) 所示,这代表 56 层的网络的优化没有做好,它的优化不给力。