Model Ensembles 模型整合
训练10个不同的模型,最后也在10个模型里test,将输出取平均。 可以减少overfitting, 提高表现。
snapshot 只训练一个模型也能达到很好的效果。
polyak averaging 是一个小技巧,但不是那么常见。
Regularization正则化
只关注训练集正确率是不够的。 当训练集的正确率远高于验证集的正确率时,说明出现了过拟合,需要加入正则化项。 之前课上提到的L2正则化在神经网络中并不是那么有效。
在神经网络中我们通常使用其他技巧。
一个很常见的是dropout :
随机将某些神经元设为0,drop的概率也是一个超参数,通常设为0.5。
什么地方设为0了?activation处 。
用在什么层?常见的是用在FC层,有时候也会用在卷积层。在卷积层,不是随机丢掉每个activation,而是随机的丢掉整个特征图。在卷积中,有channel dimension,你可能丢掉整个channel,而不是随机的elements。
在测试的时候 :
还有一种inverted dropout,就是在测试时不变。
第二种方法是数据增强,Data Augmentation
就是对图片进行一些处理 比如水平翻转,裁剪crop,scales,改变对比度,亮度,在RBG上进行PCA,旋转等等。
除此之外,还有 DropConnect
Fractional Max Pooling
Stochastic Depth
会叠加使用不同的regularization吗?
通常只用batch normalization。 只用它单独使用不行的时候,会加入dropout。
迁移学习 Transfer Learning
当数据集非常不同的时候,比如想要用ImageNet预训练的模型训练医学图像。就需要重新初始化大部分的网络。
找一些预训练模型的方法。
领取专属 10元无门槛券
私享最新 技术干货