您的位置:首页 > 其它

Tips and Tricks For CNN Structure

2016-05-29 23:31 232 查看
http://deeplearning.net/tutorial/lenet.html#tips-and-tricks

------------------------------------------------------------------------------------------------------------

翻译只是学习记录,轻喷。哪里不对还请指正。

==============================================================

[Tipand tricks]

参数选择

CNN结构加入了比标准的MLP更多的参数,所以训练时更需要技巧。除了调整学习率和正则化常数,以下几点也是调节CNN网络时需要注意的。

滤波器的个数

当给每个层选择滤波器个数的时候,要知道计算一个卷积滤波器的激活元素要比传统的MLP话费更多时间。

假设 层包括了个特征图和个像素位置(位置数乘以特征图的个数),层有个滤波器,形状是。计算一个特征图(使用滤波核在图像上进行卷积)的消耗是。计算全部特征图再乘以。如果连接到上一层的特征不全在一个维度,那么会更复杂。

对于标准MLP,当有个神经元在层,只会消耗。这样一来,CNN结构使用的滤波器个数是否会比MLP的隐藏层的神经元取决于特征图(输入图片大小和滤波器形状)的大小。

特征图的大小随着网络深度减小,靠近输入层只有较少的滤波器,而高层会更多。事实上,给予每一层相同的计算,产生的特征数量和像素位置的数量基本上是相等的。为了保护输入数据的信息需要保证全部激活元素的个数(特征图乘以像素位置)在层与层的传递中减小损失(当然我们希望在监督学习时尽量减小)。特征图的数量直接决定网络的能力,同时依靠于有效样本的个数和任务的复杂度。

滤波器形状

通常滤波器的形状在论文中都各式各样,一般取决于数据集。第一层使用5x5的滤波核在MNIST数据集(28x28)上取得了最好效果。然而自然界图像数据集第一层更倾向于使用大尺寸例如12x12、15x15。

这个技巧可以归结于找到一个好的粒度(滤波器形状),为某一个数据集在适当尺度创建一个抽象描述。

最大池化形状

典型的形状是2x2或者没有。大尺寸的图像在低层推荐使用4x4的池化。但需要注意,这样会降低信号的维数到1/16,会导致丢失太多信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: