MobileNetV2拆解后总结及阶段性学习回顾(一)(超详细代码解析)

-----------------------------此处是废话,自我总结用-----------------------------

作为第二个亲手一点点扒出来的代码,需要总结的东西有许多,一点点总结,或许会发很多章。

第一个拆解的网络是Resnet,对就是那个经典的残差网络结构,甚至还不知道所谓的“网络”究竟是什么概念,对深度学习也没有任何概念,甚至连模糊的印象都不存在。还曾经纠结过,究竟什么是Resnet,为什么他叫Resnet,还与舍友进行过头脑风暴,至今为止,我认为可以比较清楚地解释出来什么是Resnet了,或者说能解释什么是网络模型了

1.任何经典的网络都有其不可取代的一个方面,如resnet的残差结构,由于他所处的时代,大家都是很暴力的一层又一层的叠加网络深度,但是任何网络有一个理论极限深度(或许是这样),但是过深的网络并不能带来准确率的增长,只会增加参数的冗余,比如VGG作为Resnet的前置网络基础,整个网络含有一千多万的参数,实在是太多了,(好吧其实resnet并没有解决这个问题,只不过提一下),然后有人说,我们能不能让上一层的输入直接走到下一层,然后通过调整权重的方式,让他们平衡一下。豁,理论存在,实验开始。残差结构就形成了了,resnet名字也由此而来。这个网络当年就拿到了五大比赛的冠军,这是那个时代人们未曾设想的道路,就像一维到二维一样。这也就是成了以后所有网络必带的一个结构,也就是他的不可取代的创新点。

2.那么我第二个纠结的点在于,难道有残差结构就叫resnet吗?经过思考,其实不是的,好像这个问题很蠢,那肯定resnet就是resnet啊,难道还能是别的?可是我那个时候如果别人问我什么resnet,为什么一定是这个结构才叫resnet,换个差不多的结构,多几个卷积层,难道就不是resnet?现在我有了答案。为什么一个网络之所以有他特有的名字,不仅仅是因为他的独特的创新点,还因为这个网络结构是经过实际论证,在那个时候下,一种较好的解决方案,或者说在当时的时代,那个就是最好的网络。如果你跟他处于一个时代,你可能觉得加一层减一层都无所谓,但是可能所谓的resnet50 就是比你那resnet51。。52,,53,,63效果要好很多。

深度学习作为一个日新月异的领域,或许你睡一觉起来,就有新的网络出现了,这个网络可能就像当年的resnet一样震惊世界,但是我们不是从未来穿越而来,只能去追逐新的技术,相信大佬们,一步步前进。

-----------------------------------------------废话结束,正文开始--------------------------------

废话不说,我直接进入正题,啥是mobilenet,为啥搞它出来。就一句话,手机和摄像头之类的设备太垃圾了,但是我还想用深度学习咋办,那谷歌爸爸就给你一个办法,用这个mobilenet,看名字都是给手机开发的,一定没问题。确实没问题,相比于VGG这个庞大的家伙,有一千多万的参数,这个小玩意就六百多万,豁,少了一半的参数量,要是平方一下就是四分之一,要是三次方。。。。倒是不必哈-。-

虽然六百万还是听起来蛮多的,但是计算机面前已经不多了。

那么就要提出问题了,为啥能减少这么多,这就涉及到了深度可分离卷积,听不懂没关系,在我理解下,这东西就是把一个连乘法2*3*4分成了两步,第一步是把第一个2乘个1,然后做三遍2乘1,第二步就是把结果加个四遍,或许不太恰当,但是核心就是把两次乘法拆开,中间变成一步加法(计算机的世界里加法要好算的很多),所以一下子降低了参数量,初学者就记住这一句话就行了,后面看完全部解析自然就会了。

其实深度可分离卷积这玩意是mobilenet V1的东西,不过我懒得再开一章了,就这么讲吧···

上图!!!经典之我是深度可分离卷积,这图可太经典了

------------------经典卷积部分--------------------

首先,在学这玩意之前,你一定要知道经典卷积的过程,知道了就非常好理解,经典卷积就是,一一大堆长宽一样大的特征图,使用同一个卷积核进行卷积,卷积核的厚度就等于一摞特征图的厚度,然后一次卷积就直接干出来一个值,作为下一层卷积的输入特征图的第一层的第一个值。然后整体过完一遍卷积之后,就得到了一张特征图,你想要几张特征图就过几遍,当然这个不一样的遍数卷积核也不一样,这个特征图的张数(厚度)也叫做通道。上面的图片通道就是3

-----------------深度可分离卷积部分-----------------

好嘞,经典卷积说完,轮到主角登场,之前说经典卷积是特征图有多厚他就有多厚,那么有闲得无聊的人就说,那我就偏偏一人一张卷积核行不行,大家就开始讨论,第一层一个卷积核,来一遍,第二层一个卷积核,过一遍,以此类推,是不是最后就得到一摞大小相等的卷积核。这就是上面图的第一张,depthwise convolutiong深度分离卷积。豁,理论存在,实践开始。emmmmmm这时候突然有人说,那我想让不同层图像有关联咋办。那好办,搞个1×1的卷积呗,厚度跟特征图厚度一样,也就是通道数相等,这样既没有损失图像信息,也实现了不同通道的信息关联,也就图中的pointwise 卷积,又叫点卷积。好嘞,这就完成了,来吧算算参数量,好家伙,比经典卷积下降了一大截,来吧今年顶会有了,出门吃火锅。

-----------------------总结-----------------------

好吧其实上面那些仅仅是mobileV1的创新点,最厉害的在V2里面呢(虽然大家都这么说,但是我还是觉得深度可分离卷积太妙了,啥脑子能想出来这种),理解这个网络关键点在于:一定要知道经典卷积的通道数也就是厚度,跟特征图的通道数也就是厚度相等 。一遍卷积过程得到一张特征图,下一遍卷积得到下一张图,输出需要多少通道,也就是厚度,就要做几遍卷积

那么这个就把这种有厚度的大卷积核分成了薄片卷积,然后再变成竖棍卷积,最终实现与经典卷积相同的做法。到此为止。回宿舍睡觉

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值