MobileNet v1 浅析

欢迎关注本人的微信公众号AI_Engine

好久不见!由于小G同学的工作原因,确实有一段时间没有更新博文了。经过谨慎的思考后,目前小G同学已经提出离职并准备入职新公司了,谢谢这段时间大家的支持,我的每一点点进步都与大家的鼓励息息相关,小G感激不尽~

这篇博文我们的主题是MobileNet v1,我们开门见山的说:它的优点就是拥有较少的浮点计算量,那么在牺牲极少精度的同时去换取更好的数据吞吐量,也不失为一种提高性能的最佳方案。想当年(2012年)AlexNet大放异彩,相比以前浅学习方法在ImageNet中top5 error前所未有的下降约10%,CNN一鸣惊人。后续VGG,GoogleNet,ResNet进一步提高CNN的精度。但是到ResNet,网络已经达到152层,模型大小动辄几百300MB+。这种巨大的存储和计算开销,已经严重限制了CNN在某些低功耗领域的应用(注意:这里说的是低功耗领域噢~),所以必须有一种能在算法层面有效的压缩存储和计算量的方法,而mobileNet就此为我们的忧愁打开了一扇窗。我们先复习下CNN,普通卷积如图所示:

传统的卷积网络是跨通道的跨通道的跨通道的(重要的事情说三遍)。对于一个通道数为M 的输入Feature Map,我们要得到通道数为N 的输出Feature Map。普通卷积会使用 N

 个不同的DK*DK*M以滑窗的形式遍历输入Feature Map,因此对于一个尺寸为 DK*DK的卷积参数个数为参数个数为参数个数为(重要的事情说三遍)DK*DK*M*N(留给读者一个思考问题:参数个数是DK*DK*M*N,那计算量大约是多少?欢迎留言回答)一个普通的卷积可以表示为:

那么mobileNet究竟与普通CNN有什么本质的区别与联系呢?答案就是在mobileNet中使用的Depthwise Separable Convolution技术,成为模型压缩的一个最为经典的策略。Depthwise卷积是指不跨通道的不跨通道的不跨通道的卷积,也就是说Feature Map的每个通道有一个独立的卷积核,并且这个卷积核作用且仅作用在这个通道之上。这其实本质上是一个分组卷积(Group convolution)的过程,比如输入的feature map尺寸为H*W*C,同时有k个h*w卷积核。对于一般卷积,输出feature map的尺寸为H' * W' * K,而Group convolution的实质就是将convolution分为g个独立的组,分别计算:

·把input feature分为g个组,每组尺寸为H*W*(C/g)

·把kernel也分为g个组,每组尺寸为h*w*(k/g)

·按顺序,每组input feature和kernel分别做普通卷积,输出g组H' * W' * (k/g)特征,即一共H' * W' * K (注意虽然输出channels的数量相同,但是由于分组的原因,所有的通道并没有打通,只是在每个组内进行跨通道求和~)

上述是使用深度分离卷积3D图我们看看Depthwise卷积的二维图(盗的):

由于不跨通道的原因,卷积的参数量由DK*DK*M*N减少至DK*DK*M(思考题:浮点计算量减少了多少呢?) ,Depthwise Convolution的数学表达式为:

或许亲们看到这里可能已经想到了,单独使用Depthwise似乎并没有卵用,channel并没有发生什么本质的变化,而且通道都不进行跨越,组合特征也无法提取。没错,大神们已经想到了1*1卷积核升降维了!先给大家一个伪公式:Depthwise Separable = Depthwise + Pointwise。MobileNet v1中引入了Pointwise卷积用于特征合并以及升维或者降维,Pointwise的参数数量为 M * N ,计算量为计算量为计算量为:

Mobilenet v1核心是把卷积拆分为Depthwise+Pointwise两部分,下面是二者的示意图:

当然,除了针对卷积核优化外,Mobilenet v1还给出了基本网络结构:

Mobilenet v1已经非常小了,但是还可以对图中的所有卷积层数量统一乘以缩小因子α以压缩网络,这样Depthwise+Pointwise总计算量可以进一降低。当然,压缩网络计算量肯定是有代价的,那就是精度啦,所以在实战中大家要权衡好哈!总结一下:这篇博文主要概括了MobileNet v1的思想与原理,下一篇会介绍MobileNet v2的相关知识。小G同学会继续坚持总结,争取写出精彩的博文,让大家真的满意。最近思考了很多,似乎看懂了一些道理。正所谓,路还长,常思量!最后小G同学在这里衷心祝愿大家工作顺利,家庭幸福~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容