研究生新生培训第四周:MobileNetV1, V2, V3

PART 1:论文阅读和视频学习 

一、MobileNet V1 & V2 & V3

        1.MobileNet V1

        

         mobilenetv1的一个主要特点是网络所需要的参数很少,以至于在手机这种移动设备上都可以跑,在准确率小幅度降低的代价下,可以再次大幅度减少我们的参数量。

        其中的一个主要亮点为采用了DW卷积,很大程度上减少了运算量和参数数量。

       

        同时也使用了PW卷积,一种卷积核为1*1的卷积,从输入到输出可以改变维度,dw和pw通常是一起使用的。

        dw和pw的使用可以大大减少参数量,通常是普通卷积参数的1/8-1/9。

        \alpha指是卷积核的倍率,值越大,则使用的卷积核数量越多,\alpha就算大幅度降低,准确率也不会降低太多,但是参数量会大幅度降低。\beta指的是输入的图像的尺寸图像的大小从224到128,准确率小幅度降低,但是参数量会大幅度降低。

        2.MobileNet V2

        MobileNet V2 最主要的改动为采用了倒残差结构 ,与ResNet不同,这里采用的激活函数为ReLu6.

       第二个主要的改动为,在最后一层1*1卷积后,采用了线性链接,relu激活函数在低维度的信息会造成较大的损失,高维信息造成的损失很小,就使用一个线性的激活函数,防止损失太多的信息。

        3.MobileNet V3

        MobileNet V3 中最主要的改动是引入了SE注意力机制

二、SENet  

        1.Squeeze :顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的

        2.Excitation :它是一个类似于循环神经网络中门的机制。通过参数来为每个特征通道生成权重,其中参数被学习用来显式地建模特征通道间的相关性。

        3.Reweight :将Excitation的输出的权重看做是进过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。

        上左图是将SE模块嵌入到Inception结构的一个示例。方框旁边的维度信息代表该层的输出。

        除此之外,SE 模块还可以嵌入到含有skip-connections 的模块中。上右图是将SE 嵌入到ResNet模块中的一个例子,操作过程基本和SE-Inception一样,只不过是在Addition前对分支上Residual的特征进行了特征重标定。如果对Addition后主支上的特征进行重标定,由于在主干上存在0~1的scale操作,在网络较深BP优化时就会在靠近输入层容易出现梯度消散的情况,导致模型难以优化。

        目前大多数的主流网络都是基于这两种类似的单元通过repeat方式叠加来构造的。由此可见,SE 模块可以嵌入到现在几乎所有的网络结构中。通过在原始网络结构的building block 单元中嵌入SE模块,我们可以获得不同种类的SENet。如SE-BN-Inception、SE-ResNet、SE-ReNeXt、SE-Inception-ResNet-v2等等。

part 2:代码作业

 一、Hyperspectral Image Classification

        本篇论文构建了一个 混合网络,用以解决高光谱图像分类问题,首先用 3D卷积,然后使用 2D卷积。

        1.导入数据、引入基本函数库

        2. 构建网络

三维卷积部分:

  • conv1:(1, 30, 25, 25), 8个 7x3x3 的卷积核 ==>(8, 24, 23, 23)
  • conv2:(8, 24, 23, 23), 16个 5x3x3 的卷积核 ==>(16, 20, 21, 21)
  • conv3:(16, 20, 21, 21),32个 3x3x3 的卷积核 ==>(32, 18, 19, 19)

接下来要进行二维卷积,因此把前面的 32*18 reshape 一下,得到 (576, 19, 19)

二维卷积:(576, 19, 19) 64个 3x3 的卷积核,得到 (64, 17, 17)

接下来是一个 flatten 操作,变为 18496 维的向量,

接下来依次为256,128节点的全连接层,都使用比例为0.4的 Dropout,

最后输出为 16 个节点,是最终的分类类别数。

        测试网络: 

        3.创建数据集 

        首先对高光谱数据实施PCA降维;然后创建 keras 方便处理的数据格式;然后随机抽取 10% 数据做为训练集,剩余的做为测试集。结果如下图: 

        4.训练网络

        训练结果:

        5.模型测试

二、实验总结

        本次实验利用pytorch构建了HybridSN模型并实现了高光图谱分类,使用colab平台训练网络,耗时接近1h。

PART 3:问题思考

        1.每次分类的结果都不一样,请思考为什么?

         模型中采用 dropout() 进行正则处理防止过拟合,具有随机选择的特性,故每次得到的结果不同。

        2.如果想要进一步提升高光谱图像的分类性能,可以如何改进?

        可以尝试引入注意力机制,例如SENet

        3.3D卷积和2D卷积的区别?

        主要区别为滤波器的空间维度不同,高维卷积容易提取高维数据之间的特征关系,适合处理高维信息。

  

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

Fanshoo

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值