小数据集训练深度网络的小技巧

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/AUTO1993/article/details/71908095

小数据集训练深度网络的小技巧

使用小数据集训练卷积神经网络时最大的缺点就是很容易导致过拟合问题。因此在这种情况下,常常会采用面几种方法:

1.per-training:微调对于没有足够训练样本时初始化深度网络参数的一个有效的方法,一般都会选取与之具有相似结构的网络模型训练结果进行微调。

2.data augmentation:使用data augmentation通过一些操作许多产生不同的训练样本防止严重的过拟合情况。这些操作包括如下几种:

2.1图像几何变换

这其中包括:

旋转 | 反射变换(Rotation/reflection): 随机旋转图像一定角度; 改变图像内容的朝向;

翻转变换(flip): 沿着水平或者垂直方向翻转图像;像做表情识别的时候,常会对表情图像做水平翻转

平移变换(shift): 在图像平面上对图像以一定方式进行平移;
可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置;

尺度变换(scale): 对图像按照指定的尺度因子, 进行放大或缩小;

2.2角点cropping:这个具体操作其实我也不是很清楚,大致的操作就是:theextracted regions are only selected from the corners or the center of the imageto avoid implicitly focusing on the center area of an image

2.3随机(cropping)(尺度jittering):在训练的时候,对于256*256的图像。对宽度和高度进行随机cropping,随机的取值为224,192,168.最后将这些随机cropping的图像归一化带224*224.这样就可以获得多个不同尺度的训练样本。这种方法在这篇论文中有详细的讲过《ImageNetClassification with Deep Convolutional Neural Networks》

2.4噪声扰动(noise):对图像的像素值进行随机扰动,常用的噪声模式有高斯噪声和椒盐噪声。

3.regularization :数据量比较小会导致模型过拟合, 使得训练误差很小而测试误差特别大。正则化技巧用的比较多的就是BN(Batch Normalization)

和Dropout(一种正则化手段,通过随机将某层部分神经元的输出置零来实现。)。

以下是一些比较通俗易懂的讲解BN的链接:

https://zhuanlan.zhihu.com/p/24810318
http://blog.csdn.net/elaine_bao/article/details/50890491
https://www.zhihu.com/question/38102762
http://jiangqh.info/Batch-Normalization详解/

猜你喜欢

转载自blog.csdn.net/AUTO1993/article/details/71908095