MLDS笔记:Generalization
1 泛化能力
用VC维来衡量一个模型的表达能力,比如2维线性模型的VC维为3。
在图1-2中,随便给啥训练数据该model都能learn起来。
从理论上来看,当2个model在训练数据上表现一样时,为了更好的泛化能力,应该选择表达能力更小的model。
这个结论是一定的吗?
神经网络自带regularization吗?
从图1-8可以看出,2到12层得到的线都是很平滑的。
如果让网络去拟合虚线,网络也是能够做到的,说明该网络有很大的模型表达能力,但是2到12层对应的线却没有形成虚线状。
可见神经网络没有我们想象的那么容易过拟合。
关于这点背后的原因,现在无最佳解答。一种说法是因为初始化在原点附近,梯度下降后得到的参数与原点也很近,所以使用基于梯度的优化方法得到的神经网络能够自带正规化。
总之,深度模型的表达能力是很强的,但是,它并没有我们想象中的那么容易过拟合,其中的原因尚不清楚。
2 泛化指标
一个神经网络有哪些特性可以使其不易过拟合?知道答案的话就可以在训练的时候将这些特性塞进去。
2.1 暴力记忆
神经网络的学习过程并不是暴力记忆。
虽然给定任意输入,神经网络都能learn起来,但是learn出的并不是同一个model。
2.2 Sensitivity
如何定义Sensitivity?
如图2.2-2和图2.2-3所示,训练数据出现处的Sensitivity通常较小,即自信度较高;训练数据未出现处的Sensitivity通常较大,即自信度较低。
2.3 Sharpness
如何定义Sharpness?
有很多种定义方式,不限于下图。
常small batch训练得到的minima泛化能力较好,关于背后原因,有一种说法是其较易找到较flat的minima。
*泛化能力的好坏与Sensitivity的大小有关;
泛化能力的好坏与Sharpness的大小有关(这一点的不同意见参见
Laurent Dinh, Razvan Pascanu, Samy Bengio, Yoshua Bengio, Sharp Minima Can Generalize For Deep Nets, PMLR, 2017)*