卷积核大小、个数,卷积层数是如何确定的 ?

卷积核大小通常选奇数以确保same convolution的padding均匀,降低计算复杂度。channel数取决于特征层大小和抽象特征需求,平衡准确度与计算资源。卷积层数则需要通过实验调整,找到最佳的超参数组合。当前缺乏理论指导,主要依赖试错法。整个过程体现了深度学习实践中性能与效率的权衡。
摘要由CSDN通过智能技术生成

(1)Kernel_size是如何选取的?

Q: 为什么CNN中的卷积核一般都是奇数*奇数 ?

A:  原因有二。(1) 卷积中有一种same convolution,也就是卷积前后尺寸(高x宽)不变。实现same convolution(n + padding - k + 1 = n) 。若 k 为偶数,那么padding就为奇数,就不能平均分配到卷积张量两边。(2)此外,奇数尺寸的卷积核便于用中心定位

达到相同感受野的情况下,卷积核越小,所需要的参数和计算量越小。所以2×2排除了,一般都用3×3作为卷积核的大小。1×1的卷积核不能提升感受野,不能应用在需要提升感受野的应用中,也排除了。

(2)Channel数如何选取?

这与特征层的大小及能抽象出来的特征数量有关,特征层池化压缩后越小,图片的潜在的东西越复杂,所需要的深度或通道数越多。   极端情况下,假设一个通道只放一个特征例如嘴的特征,那这个图如果为了做一定性能的脸部识别,有千多个特征,那深度可能要一千多个了;幸好一个通道可以不用池化压缩得太小,一个通道放多个特征也能满足卷积的要求。

样本的丰富程度较好的情况下,模型的复杂度可以更高,那核内深度就可以更大,拟合、分类容易做到更准确。但速度上与硬件要求上就可能不行了。一般是能达到性能要求就行,要综合考虑。

之所以搞卷积而非全连接,就是减少参数量,就是准确性性能与速度、资源占用的综合考虑的结果。   综合考虑选取channel数量。既要保证准确度(个数越多越好),又要兼顾算力问题(个数越少越好)。

每一层卷积有多少channel数,以及一共有多少层卷积,这些暂时没有理论支撑,一般都是靠感觉去设置几组候选值,然后通过实验挑选出其中的最佳值。trial and error。 这也是现在深度卷积神经网络虽然效果拔群,但是一直为人诟病的原因之一。

(3)卷积层数如何选取 ?

多说几句,每一层卷积的channel数和网络的总卷积层数,构成了一个巨大的超参集合,这个超参集合里的最优组合,很可能比目前业界各种fancy的结构还要高效。只是我们一来没有理论去求解这个超参集合里的最优,二来没有足够的计算资源去穷举这个超参集合里的每一个组合,因此我们不知道这个超参集合里的最优组合是啥。现在业界里提出的各种fancy结构中不少都是不断trial and error,试出来一个效果不错的网络结构,然后讲一个好听的story,因为深度学习理论还不够,所以story一般都是看上去很美,背后到底是不是这回事只有天知道。比如好用到不行的batch norm,它的story是解决internal covariate shift,然而最近有篇文章How Does Batch Normalization Help Optimization? (No, It Is Not About Internal Covariate Shift)通过实验证明实际情况并不如此。

链接:https://www.zhihu.com/question/38098038/answer/416069216

总结:

卷积核大小、个数,卷积层数,都是先根据以往的经验设定一个初始值,然后根据具体的实验效果进行微调。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值