• mobileNet v2 paper笔记


    mobileNet v2和v1一样面向的是算力有限的mobile models.

    主要贡献是一个新型module:
    在这里插入图片描述
    这里面提到了两个关键结构:inverted residual, linear bottleneck,
    而linear bottleneck是用在inverted residule里面的。

    关于linear bottleneck,有一个故事线,
    故事讲了non-linear存在的问题,为什么要用linear,以ReLU为例。

    下面就来讲讲这个故事:

    首先给了一个前提假设,nerual network的兴趣区域特征应该能被嵌入一个低维的空间,
    比如一个很深的卷积层,它里面的特征应该能被嵌入某个低维空间。
    在这里插入图片描述
    然而如果减少层数到低维,又会遇到non-linear映射的问题,比如ReLU,

    回忆一下ReLU结构
    在这里插入图片描述
    那ReLU有什么问题呢,你会发现它只能映射右半边,而损失掉左半边。
    特征经过它的映射会变成分段的线。
    在这里插入图片描述

    为了证明这一点(ReLU确实有信息损失),作者用一个spiral做了实验,
    先用随机的矩阵T把spiral映射到n维空间,经过ReLU后再用T-1映射回来,
    当维度n比较小时(2,3), 确实会损失,而维度高时会好一些。

    在这里插入图片描述

    所以说如果input的有很多channels, 那么就有可能信息得到保留
    在这里插入图片描述
    因此得到2个性质:
    在这里插入图片描述

    又是low-dimensional, 又是higher-dimensional,很绕口有木有,
    其实是想说,兴趣区域的信息会嵌入到低维的空间中,但是在activation时需要一个高维的输入。

    第1条说明了什么呢,
    如果信息保留下来,那肯定是经过ReLU的右半边,右半边是线性的,所以为线性layer打下了基础。

    在这里插入图片描述

    ReLU能保留兴趣区域的信息,前提是信息在低维子空间。

    所以这个故事得到了一个结论,
    假设兴趣区域的信息就在低维子空间,
    那么可以插入linear bottleneck来得到它。
    因为linear layer不会造成信息的损失,然后non-linear再bottleneck结构中确实会影响performance.

    你肯定想说为什么是linear bottleneck而不是linear 其他的,
    mobileNet v2提出的就是改进版的bottleneck结构。

    mobileNet v2中的bottleneck, 它的名字叫做
    在这里插入图片描述
    透露了几个点:
    bottleneck里面沿用了mobileNet v1的深度可分离卷积,还有residuals
    具体如下

    在这里插入图片描述
    第一层是expansion,增加channel到t倍的,t 默认是6
    然后是3x3深度卷积,再配上1x1卷积调整output channel。

    对比一下resNet中的 bottleneck,
    具体的参考链接
    在这里插入图片描述

    你会发现resNet的bottleneck,channel是在bottleneck结尾处扩张的,
    而mobileNet v2中,channel是在bottleneck开头处扩张的,正好反过来,
    所以叫做inverted residual.
    因为inverted会更省内存

    在这里插入图片描述

    在这里插入图片描述

    整体结构如下
    在这里插入图片描述

    如果想进一步减少计算量,可以在除了最后一个layer的其他layer加上width multiplier(缩放channel)

    在这里插入图片描述

    关于shortcut连接到哪一层

    在这里插入图片描述

    pytorch已经有实现好的mobileNet v2接口,使用方法

    import torch
    model = torch.hub.load('pytorch/vision:v0.10.0', 'mobilenet_v2', pretrained=True)
    
    • 1
    • 2

    源码解析可以参考这篇文章

  • 相关阅读:
    谈谈Dubbo的那些事
    数据结构基础==数据结构与算法2
    IOS OpenGL ES GPUImage 图像阀值素描,形成有噪点的素描 GPUImageThresholdSketchFilter
    黑马头条 后端项目部署_持续集成 Jenkins配置
    HTML期末学生大作业-拯救宠物网页作业html+css
    850. 矩形面积 II:扫描线+离散化+线段树
    【版本控制】Git(学习笔记)
    前后端分离项目-基于springboot+vue的it职业生涯规划系统的设计与实现(内含代码+文档+报告)
    Aspose.Slides 21.11.0 For .NET Crack
    vant_vant引入
  • 原文地址:https://blog.csdn.net/level_code/article/details/127546801