这一章我们一起来梳理一下深度学习中图像分类相关的算法。

推荐一个B站上讲解图像分类相关算法的很好的视频:https://space.bilibili.com/18161609/channel/detail?cid=97304&ctype=0

AlexNet

AlexNet网络结构比较简单,也是比较早期的模型,上图中分成两个路线,其实是利用两块GPU分别进行运行,只在特定的网络层才存在两者之间的交互,实质我们可以简化一下,只看其中一条路线。网络总共的层数为8层,5层卷积,3层全连接层。

这个网络的主要特点为:

1、使用relu激活函数,而不是sigmoid或者tanh,

这些饱和的非线性函数在计算梯度的时候都要比非饱和的现行函数2、f(x)=max(0,x)慢很多,在这里称为 Rectified Linear Units(ReLUs)。在深度学习中使用ReLUs要比等价的tanh快很多。
        2、使用了LRN局部响应归一化,我们用激活函数将神经网络的输出增加非线性表达能力,tanh和sigmoid这些传统的激活函数的值域都是有范围的,但是ReLU激活函数得到的值域没有一个区间,所以要对ReLU得到的结果进行归一化。不过现在我们使用的batch normalization或者layer normalization等归一化方法效果要更好,所以这里我们不对LRN展开说明。

3、在全连接的前两层使用dropout来减少过拟合。

算法详情链接:https://blog.csdn.net/luoluonuoyasuolong/article/details/81750190

VGG

VGG网络是2014年提出的,在Alexnet之后,其主要的改进点为:采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。

关于感受野的解释,可见下图:

网络结构:

算法详情链接:https://zhuanlan.zhihu.com/p/41423739

GoogLeNet

GoogLeNet也是14年提出的网络,其主要特点为:

1、引入Inception结构,融合不同尺度的特征信息,其结构如下图:

 

注意这里每个分支的输出结构要一致,最后才可以拼接。

2、使用1x1的卷积核进行降维以及映射处理。

3、添加两个辅助分类器帮助训练。

4、丢弃全连接层,使用平均池化层,大大减少了模型参数。

GoogLeNet的参数量约为VGG的1/20。

算法详情链接:https://blog.csdn.net/qq_31531635/article/details/72232651

ResNet

 ResNet是微软在2015年提出的网络,其主要特点为:

1、提出residual模块,其主要思想为残差连接,主要用于解决网络退化问题,退化区别与梯度爆炸和梯度消失,其指的是随着网络深度加深而导致的网络效果下降。结构如下图:

2、超深的网络结构(突破1000层)。

3、使用了Batch normalization 加速训练。BN相关的内容可以参考我的另外一个文章:https://blog.csdn.net/mingzheng114/article/details/115982134?spm=1001.2014.3001.5501

算法详情链接:https://www.cnblogs.com/shine-lee/p/12363488.html

MobileNet

MobileNet是google在2017年提出的,专注于移动端设备推理的网络,相对于传统卷积神经网络,在准确率小幅下降的情况下大大减少了参数量和运算量(相对于VGG16准确率下降了0.9%,但是参数量仅为其1/32),其主要特点为:

1、使用了深度可分卷积,即DW卷积和PW卷积,大大减少了参数量和运算量。

2、引入了超参数a,β,α参数是一个倍率因子,用来调整卷积核的个数,β是控制输入网络的图像尺寸参数

MobilenetV2

v2版本的模型是18年提出的,相对于v1准确率更高,参数量更少,其主要特点为:

1、Inverted Residuals(倒残差结构)

在残差结构中是1x1卷积降维->3x3卷积->1x1卷积升维,在倒残差结构中正好相反,是1x1卷积升维->3x3DW卷积->1x1卷积降维。为什么要这样做,原文的解释是高维信息通过ReLU激活函数后丢失的信息更少(注意倒残差结构中基本使用的都是ReLU6激活函数,但是最后一个1x1的卷积层使用的是线性激活函数)

注意所有的参加结构,都要求输出和输入具有相同的shape

2、Linear Bottlenecks

Bottleneck指的就是一个倒残差结构组成的块,网络使用了多个bottlenect线性堆叠。

算法详情链接:https://blog.csdn.net/binlin199012/article/details/107155719/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.base&spm=1001.2101.3001.4242

MobileNetV3

mobilnet是19年提出的网络,其特点为:

1、更新了bneck。

2、引入了SE结构。

3、更新了激活函数,利用h-swish代替swish函数。

第一列Input代表mobilenetV3每个特征层的shape变化;
第二列Operator代表每次特征层即将经历的block结构,我们可以看到在MobileNetV3中,特征提取经过了许多的bneck结构;
第三、四列分别代表了bneck内逆残差结构上升后的通道数、输入到bneck时特征层的通道数。
第五列SE代表了是否在这一层引入注意力机制。
第六列NL代表了激活函数的种类,HS代表h-swish,RE代表RELU。
第七列s代表了每一次block结构所用的步长。

        bneck结构如下:

SE结构:轻量级的注意力模型。

这个注意力机制的作用方式是调整每个通道的权重。

算法详情链接:https://blog.csdn.net/binlin199012/article/details/107155719/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.base&spm=1001.2101.3001.4242

ShuffleNet

ShuffleNet是旷视科技最近提出的一种计算高效的CNN模型,其和MobileNet一样主要是想应用在移动端,ShuffleNet的核心设计理念是对不同的channels进行shuffle来解决group convolution带来的弊端。

ShuffleNet的基本单元是在一个残差单元的基础上改进而成的。如图2-a所示,这是一个包含3层的残差单元:首先是1x1卷积,然后是3x3的depthwise convolution(DWConv,主要是为了降低计算量),这里的3x3卷积是瓶颈层(bottleneck),紧接着是1x1卷积,最后是一个短路连接,将输入直接加到输出上。现在,进行如下的改进:将密集的1x1卷积替换成1x1的group convolution,不过在第一个1x1卷积之后增加了一个channel shuffle操作。值得注意的是3x3卷积后面没有增加channel shuffle,按paper的意思,对于这样一个残差单元,一个channel shuffle操作是足够了。还有就是3x3的depthwise convolution之后没有使用ReLU激活函数。改进之后如图2-b所示。对于残差单元,如果stride=1时,此时输入与输出shape一致可以直接相加,而当stride=2时,通道数增加,而特征图大小减小,此时输入与输出不匹配。一般情况下可以采用一个1x1卷积将输入映射成和输出一样的shape。但是在ShuffleNet中,却采用了不一样的策略,如图2-c所示:对原输入采用stride=2的3x3 avg pool,这样得到和输出一样大小的特征图,然后将得到特征图与输出进行连接(concat),而不是相加。这样做的目的主要是降低计算量与参数大小。

算法详情链接:https://zhuanlan.zhihu.com/p/32304419

EfficientNet

EfficientNet主要探索了网络输入的分辨率,网络深度和宽度对于最终性能的影响,这里不详细说,可以直接查看对应的算法详情链接。

算法详情链接:https://blog.csdn.net/qq_43258953/article/details/103092615

Vision Transformer(vit)

vision Transformer是20年的文章,其主要利用transformer来做图像相关任务。

图片的序列则是由一张图片切成多个patch得到,现将图片进行分块,切分后进行展平,将每个图像块展平为一维向量,比如得到的小块为长P宽P通道C的,展平后则为P*P*C。shape的变化是,其中.在代码中是一句话的事情,用了einops这个库。

x = einops.rearrange(img, 'b c (h p1) (w p2) -> b (h w) (p1 p2 c)', p1 = p, p2 = p)

算法详情链接:https://zhuanlan.zhihu.com/p/273652295

深度学习——图像分类相关模型一览相关推荐

  1. 深度学习的seq2seq模型——本质是LSTM,训练过程是使得所有样本的p(y1,...,yT‘|x1,...,xT)概率之和最大...

    from:https://baijiahao.baidu.com/s?id=1584177164196579663&wfr=spider&for=pc seq2seq模型是以编码(En ...

  2. 【AI-1000问】为什么深度学习图像分类的输入多是224*224

    文章首发于微信公众号<有三AI> [AI-1000问]为什么深度学习图像分类的输入多是224*224 写在前边的通知 大家好,今天这又是一个新专栏了,名叫<有三AI 1000问> ...

  3. 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类

    深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...

  4. PyTorch深度学习图像分类--猫狗大战

    PyTorch深度学习图像分类--猫狗大战 1.背景介绍 2.环境配置 2.1软硬件清单 2.1.1配置PyPorch 2.1.2开发软件 2.1.3 显卡 2.2 数据准备 3 基础理论 3.1Py ...

  5. 深度学习100+经典模型TensorFlow与Pytorch代码实现大合集

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]深度学习在过去十年获得了极大进展,出现很多新的模型,并且伴随TensorF ...

  6. 深度学习CTR预估模型凭什么成为互联网增长的关键?

    本文是王喆在InfoQ开设的原创技术专栏"深度学习CTR预估模型实践"的第一篇文章(以下"深度学习CTR预估模型实践"简称"深度CTR模型" ...

  7. DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别

    DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别 目录 输出结果 实现代码 输出结果 实现代码 from _ ...

  8. 【视频课】一课彻底掌握深度学习图像分类各种问题,学习CV你值得拥有

    课程介绍 对于刚接触深度学习计算机视觉的初学者来说,图像分类问题是最常见的问题,如何最好图像分类任务,关系到大家能否正确顺利地入门.读了许多论文,可能仍然不懂代码如何实现.跑了代码,仍旧不懂如何运用图 ...

  9. 【每周CV论文推荐】 初学者必须精读的5篇深度学习优化相关文章

    欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 从事深度学习岗位,扎实的深度学习理论基础是必 ...

最新文章

  1. Opencv笔记(九)——图像阈值
  2. php return 变量,php内核笔记–函数返回变量return_value
  3. 价值投资/指标选股(akshare)
  4. 研讨会 | 知识图谱前沿技术课程暨学术研讨会(武汉大学站)
  5. 蛋糕是叫胚子还是坯子_教你做巧克力淋面蛋糕,掌握这个配比,好看又好吃,10分钟做一个...
  6. 20145209 2016-2017-2 《Java程序设计》第9周学习总结
  7. vscode创建代码片段
  8. Debian 8 Jessie desktop on arm
  9. .NET下添加Redis
  10. Linux/Aix日常报错整理
  11. Android进程管理
  12. 解读什么是ERP企业管理软件?
  13. Twitter OAuth1.0认证过程
  14. 【工具封装】不用 for 循环, 教你如何向MySQL数据库批量插入数据
  15. 优化jsj脚本,防止浏览器卡死
  16. 我过去的那些编程思想
  17. windows10官网下载安装(纯净版)
  18. [Unity][2D]Sprite精灵多个多边形切割
  19. 【NLP】情绪分析与酒店评论
  20. 笔试编程题——数组中出现次数超过一半的数字

热门文章

  1. 温州科技职业学院 计算机网络技术,浙江【温州科技职业学院】_计算机网络技术专业建设方案.doc...
  2. 黄**解说的各种版本
  3. 计算机/设备和驱动器下有一个空白盘符无法删除
  4. ubuntu环境下增加-pie选项导致可执行程序无法通过双击启动的问题
  5. IE浏览器代理出问题导致的程序网络不可用
  6. Teamcenter Folder
  7. 01改变世界:机械之美——机械时期的计算设备
  8. React云音悦WebApp
  9. 边缘计算的深刻详细解读
  10. 计算机底层知识之CPU