卷积神经网络工程实践技巧

来源:互联网 发布:手绘动画制作软件 编辑:程序博客网 时间:2024/06/05 08:33

本博客主要参考:http://study.163.com/course/courseLearn.htm?courseId=1003223001#/learn/video?lessonId=1004143071&courseId=1003223001

数据增强:

1. Horizontal flips,如下图所示:


2,Random crops/scales

从[256,480]随机选取一个数,作为缩放后图像最短边的尺寸,然后从缩放后的图像中裁剪224*224的图像。因为训练数据是图像中的一部分,所以在测试的时候也需要从图像中裁剪图像。如下图:



3.color jitter

可以采用基于PCA的数据增强方法,如下:


4.其他方法


迁移学习:

在实际中,我们常常用已经训练好的模型来初始化当前模型,然后再对当前模型进行微调。但是,我们还需要考虑当前数据与预训练模型所用数据是否相似,以及当前训练数据的数据量,根据这些设计具体的方法。

1)当两次的数据比较相似,而且当前数据量比较小的情况下,我们可以从预训练的模型提取特征,然后训练线性分类器。

2)当两次的数据比较相似,而且当前数据量比较大的情况下,我们可以微调模型中的少许层。

3)当两次的数据不太相似,而且当前数据量比较小的情况下,我们可以从预训练的模型的不同层中提取特征,然后训练线性分类器。

4)当两次的数据不太相似,而且当前数据量比较大的情况下,我们可以微调模型中的较多层。

CNN中的大卷积和小卷积:

采用小的卷积核,能够减少参数量和运算量,并且能够得到更强的非线性。


卷积层的快速计算:

1)可以将卷积操作转换为矩阵乘法,采用im2col方法,如下图:

2)可以采用傅里叶变换,它确实可以提升速度,但只针对大的过滤器,如下图: