常用:L2, L1, Elastic net(L1 + L2)
还有:Dropout
dropout为什么有效?一种认识是:避免了特征之间的适应;另一种认识是:dropout训练了一个models的ensemble。
drop in forward pass, and scale at test time!
= > inverted dropout只是将一个平均的除法放在train的过程中,这是因为train在GPU上不在乎多一个乘法,但test时越快越好。
BN和dropout都在train的过程中引入随机性,又在test的时候消除之。
Data Augmentation也有类似的效果,对数据图像进行翻转或者色彩抖动等等。
DropConnect的做法是随机将权重矩阵中的部分值置零。
Fractional Max Pooling(部分最大池化)
Stochastic Depth的做法是随机停用一些层,只用部分层来训练,但test时使用全部层。
<= 正则化的目的包括解决train过程中数据过小造成的过拟合,而这个问题是可以通过transfer learning解决的。
Transfer Learning:
借用一个已经训练良好的模型,只训练最后一层fc,即线性分类器,而freeze前面的提取特征的层。
但数据稍微充裕后,也可以训练整个网络。但这时降低learning rate,对model进行微调是个不错的选择。
由于这种做法的普遍性,深度学习软件包中往往提供了模型库,其中有一些预训练版本。