IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习——图像分类相关模型一览 -> 正文阅读

[人工智能]深度学习——图像分类相关模型一览

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

推荐一个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网络

????????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

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:06:37  更:2021-08-26 12:07:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:29:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码