深度学习:Inception网络

构建CNN时,你要决定卷积核的大小,是1x3合适,还是3x3合适,还是5x5合适?要不要添加pooling层?做这些决定(很可能是通过grid search)很麻烦,对吧?
Inception网络的优点,就是能代替你做决定。
Inception层的基本思想
Inception层是Inception网络中的基本结构。Inception层的基本原理如下图:
在这里插入图片描述

Inception层中,有多个卷积层结构(Conv)和Pooling结构(MaxPooling),它们利用了padding的原理,让经过这些结构的最终结果Shape不变。

C_1X1: 28x28x192的输入数据,与64个1x1的卷积核做卷积后,得到28x28x64的输出
C_3X3: 28x28x192的输入数据,与128个3x3的卷积核做卷积后,得到28x28x128的输出
C_5X5: 28x28x192的输入数据,与32个5x5的卷积核做卷积后,得到28x28x32的输出
MP: 28x28x192的输入数据,做MaxPooling后(带padding),得到28x28x32的输出
多个Inception层组合在一起,就构成了Inception网络。但这样直接计算,计算量很大,所以要利用1x1的卷积核,来降低计算量。

1x1的卷积如何降低计算量
考虑如下问题,经过这一次卷积后,计算量为多少?

输入数据维度:28x28x192
卷积核大小:5x5x32
输出数据维度:28x28x32
输出数据共有28x28x32个值,每个值都要进行5x5x192次乘法(卷积中的)运算,所以一共要进行28x28x32x5x5x192次乘法计算,即120,422,400。

同样的问题,如果先经过1x1的卷积计算,再通过,如下图
在这里插入图片描述
输入数据维度:28x28x192
卷积核1大小:1x1x16
卷积核2大小:5x5x32
输出数据维度:28x28x32

经过第一个卷积层,要进行(28x28x16x1x1x192=2,408,448)次乘法计算,经过第二个卷积层,要进行(28x28x32x5x5x16=10,035,20)次乘法计算。总共计算次数也就是(2,408,448+10,035,20=12,443,648)次,比上面直接经过一个卷基层的计算量(120,422,400)要小很多。

可见,用好1x1的卷积核,就能降低计算量。

Inception网络
带有1x1卷积核的Inception层,就构成了Inception网络的基本单元,如下图:

在这里插入图片描述

这样的多个Inception层组合在一起,就构成了Inception网络,如下图:
在这里插入图片描述

当然,实际论文中的Inception网络还包括输出端的全连接层,还有Inception网络会从中间层引出多个输出,再连接SoftMax,这样能减少过拟合(让中间层也起作用)。

在这里插入图片描述

总结
Inception‎是电影盗梦空间的名字,Google发明的Inception‎网络取名也是来自这个电影。

Inception网络是由多个Inception层组成的,它的最大优点是可以一定程度上帮你省去指定CNN卷积核大小和MP调优的工作。

(转载,用于学习记录)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值