两个3*3的卷积核替代5*5(三个3*3卷积核替代7*7)分析

为什么一个5x5的卷积核可以用两个3x3的卷积核来替代

知道了一个理论,两个3x3的卷积核替代5x5的卷积核,可以减少计算量,且最终的计算结果是一样的,但是为什么呢?

我们假设图片是32*32的

一个5*5卷积

我们使用5*5的卷积核对其卷积,步长为1,不填充

根据计算公式(n+2*p-f)/s + 1

得到的结果是:(32-5)/1+1=28

两个3*3卷积核

  1. 然后我们使用2个卷积核为33的,这里的两个是指进行2层33的卷积:

第一层3*3:

得到的结果是(32-3)/1+1=30

第二层3*3:

得到的结果是(30-3)/1+1=28

所以我们的最终结果和5x5的卷积核是一样的,都是28。
一个55的计算量为 5x5xchannels = 25xchannels;
两个3
3的计算量为 3x3xchannels*2 = 18xchannels
明显,两个3x3的卷积的计算量小于一个5x5卷积的计算量

为什么一个7x7的卷积核可以用三个个3x3的卷积核来替代

同理,一个7x7的卷积核可以用三个个3x3的卷积核来替代。

我们假设图片是32*32的

一个7*7卷积

我们使用5*5的卷积核对其卷积,步长为1,不填充

根据计算公式(n+2*p-f)/s + 1

得到的结果是:(32-7)/1+1=26

三个3*3卷积核

然后我们使用2个卷积核为33的,这里的两个是指进行2层33的卷积:

第一层3*3:

得到的结果是(32-3)/1+1=30

第二层3*3:

得到的结果是(30-3)/1+1=28

第三层3*3:

得到的结果是(28-3)/1+1=26

所以我们的最终结果和7x7的卷积核是一样的,都是26。可以互相替换。
一个7x7的计算量为7x7xchannels = 49xchannels;
两个3*3的计算量为 3x3xchannelsx3 = 27xchannels
所以,三个3x3的卷积的计算量小于一个7x7卷积的计算量

以上是我的理解,如有其它更通俗的理解,欢迎指教。

优点总结

堆叠含有小尺寸卷积核的卷积层来代替具有大尺寸的卷积核的卷积层,并且能够使得感受野大小不变,而且多个3x3的卷积核比一个大尺寸卷积核有更多的非线性(每个堆叠的卷积层中都包含激活函数),使得decision function更加具有判别性。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值