深度学习与图神经网络学习分享:CNN经典网络之-ResNet

讨论 龙腾AI技术
Lv1 居士
发布在 综合   681   0
讨论 龙腾AI技术   681   0

深度学习与图神经网络学习分享:CNN 经典网络之-ResNet

resnet 又叫深度残差网络

图像识别准确率很高,主要作者是国人哦

深度网络的退化问题

深度网络难以训练,梯度消失,梯度爆炸,老生常谈,不多说

undefined

resnet 解决了这个问题,并且将网络深度扩展到了最多152层。怎么解决的呢?

残差学习

结构如图

undefined

在普通的卷积过程中加入了一个x的恒等映射(identity mapping)

专家把这称作 skip connections 或者 shortcut connections

残差结构的理解

为什么要这样呢?下面我从多个角度阐述这个问题。

生活角度

每学习一个模型,我都希望能用日常的生活去解释为什么模型要这样,一是加深对模型的理解,二是给自己搭建模型寻找灵感,三是给优化模型寻找灵感。

resnet 无疑是解决很难识别的问题的,那我举一个日常生活中人类也难以识别的问题,看看这个模型跟人类的识别方法是否一致。

比如人类识别杯子里的水烫不烫

一杯水,我摸了一下,烫,好,我的神经开始运转,最后形成理论杯子里的水烫,这显然不对

又一杯水,我一摸,不烫,好嘛,这咋办,认知混乱了,也就是无法得到有效的参数,

那人类是怎么办呢?

我们不止是摸一摸,而且在摸过之后还要把杯子拿起来仔细看看,有什么细节可以帮助我们更好的识别,这就是在神经经过运转后,又把x整体输入,

当然即使我们拿起杯子看半天,也可能看不出任何规律来帮助我们识别,那人类的作法是什么呢?我记住吧,这种情况要小心,这就是梯度消失了,学习不到任何规律,记住就是恒等映射,

这个过程和resnet是一致的。

网络结构角度

undefined

当梯度消失时,f(x)=0,y=g(x)=relu(x)=x,怎么理解呢?

  1. 当梯度消失时,模型就是记住,长这样的就是该类别,是一个大型的过滤器

  2. 在网络上堆叠这样的结构,就算梯度消失,我什么也学不到,我至少把原来的样子恒等映射了过去,相当于在浅层网络上堆叠了“复制层”,这样至少不会比浅层网络差。

  3. 万一我不小心学到了什么,那就赚大了,由于我经常恒等映射,所以我学习到东西的概率很大。

数学角度

undefined

可以看到 有1 的存在,导数基本不可能为0

那为什么叫残差学习呢

undefined

可以看到 F(x) 通过训练参数 得到了 H(x)-x,也就是残差,所以叫残差学习,这比学习H(x)要简单的多。

等效映射 identity mapping

上面提到残差学习中需要进行 F(x)+x,在resnet中,卷积都是 same padding 的,当通道数相同时,直接相加即可,

但是通道数不一样时需要寻求一种方法使得 y=f(x)+wx

实现w有两种方式

  1. 直接补0

  2. 通过使用多个 1x1 的卷积来增加通道数。

网络结构

block

block为一个残差单元,resnet 网络由多个block 构成,resnet 提出了两种残差单元

undefined

左边针对的是ResNet34浅层网络,右边针对的是ResNet50/101/152深层网络,右边这个又被叫做 bottleneck

bottleneck 很好地减少了参数数量,第一个1x1的卷积把256维channel降到64维,第三个又升到256维,总共用参数:1x1x256x64+3x3x64x64+1x1x64x256=69632,

如果不使用 bottleneck,参数将是 3x3x256x256x2=1179648,差了16.94倍

这里的输出通道数是根据输入通道数确定的,因为要与x相加。

整体结构

undefined

  1. 与vgg相比,其参数少得多,因为vgg有3个全连接层,这需要大量的参数,而resnet用 avg pool 代替全连接,节省大量参数。

  2. 参数少,残差学习,所以训练效率高

结构参数

Resnet50和Resnet101是其中最常用的网络结构。

undefined

我们看到所有的网络都分成5部分,分别是:conv1,conv2_x,conv3_x,conv4_x,conv5_x

其结构是相对固定的,只是通道数根据输入确定。

注意,Resnet 最后的 avg_pool 是把每个 feature map 转换成 1 个特征,故池化野 size 为 feature map size,如 最后输出位 512x7x7,那么池化野size 为 7

最新进展

残差单元被进一步更新

undefined

个人经验

  1. 卷积层包含大量的卷积计算,如果想降低时间复杂度,减少卷积层

  2. 全连接层包含大量的参数,如果想降低空间复杂度,减少全连接层

分享安排

  1. 人工智能、深度学习的发展历程

  2. 深度学习框架

  3. 神经网络训练方法

  4. 卷积神经网络,卷积核、池化、通道、激活函数

  5. 循环神经网络,长短时记忆LSTM、门控循环单元GRU

  6. 参数初始化方法、损失函数Loss、过拟合

  7. 对抗生成网络GAN

  8. 迁移学习TL

  9. 强化学习RF

  10. 图神经网络GNN

一、算法和场景融合理解

1.空间相关性的非结构化数据,CNN算法。典型的图像数据,像素点之间具有空间相关性,例如图像的分类、分割、检测都是CNN算法。

2.时间相关性的非结构化数据,RNN算法。这类场景普遍的一个现象就是数据之间具有时序相关性,也就是数据之间存在先后依赖关系。例如自然语言处理、语音相关算法都是基于RNN算法。

3.非欧氏数据结构, GNN。这类场景典型的可以用图来表示。例如社交网络等。

案例摘要讲解

医疗领域:如流行疾病、肿瘤等相关疾病检测

遥感领域:如遥感影像中的场景识别

石油勘探:如石油油粒大小检测

轨道交通:如地铁密集人流检测

检测领域:如故障检测

公安领域:如犯罪行为分析

国防领域:目标检测、信号分析、态势感知…

经济领域:如股票预测

二、数据理解及处理

分析典型场景中的典型数据,结合具体的算法,对数据进行处理

1.结构化数据,如何对数据进行读取,进行组织。

2.图像数据,在实际应用过程中的处理方法,怎样做数据的预处理、进行数据增强等。

3.时序信号,将单点的数据如何组合成一个序列,以及对序列数据处理的基本方法。

三、技术路径设计

针对具体的场景设计特定的神经网络模型,对典型数据适配的网络结构进介绍。

1.DNN模型搭建的基本原则

2.CNN模型中常见的网络结构,以及参数分析。

3.RNN中支持的一些基本算子,如何对序列数据进行组织。

四、模型验证及问题排查

简单的算法或者模型对典型的场景进行快速验证,并且针对一些频发的问题进行讲解。

  1. 模型收敛状态不佳

  2. 分类任务重最后一层激活函数对模型的影响

五、高级-模型优化的原理

不同的模型需要采用的优化函数以及反向传播中参数的优化方法

1.模型优化的算法介绍,基于随机梯度下降的算法介绍。

2.不同场景适应的损失函数介绍。

3.针对典型场景的反向传播梯度的推到过程。

六、高级-定制化思路

结合往期学员的一些项目,简单介绍一下解决一个具体问题的思路。

遥感成像中,地块农作物种类的识别。

实操解析与训练

第一阶段:

神经网络实践

实验:神经网络

1.神经网络中基本概念理解:epoch、batch size、学习率、正则、噪声、激活函数等。

2.不同的数据生成模型、调整网络参数、调整网络规模

3.神经网络分类问题

4.不同数据特征的作用分析、隐含层神经元数目

5.过拟合

高频问题:

1.输入数据与数据特征 2.模型设计的过程中的参数与功能的关系。

关键点:

1.掌握神经网络的基本概念 2.学会搭建简单的神经网络结构

3.理解神经网络参数

实操解析与训练

第二阶段:

深度学习三种编程思想

实验:Keras实践

1.理解Keras基本原理 2.学会Keras编程思想

3.三种不同的深度神经网络构建编程方式

4.给定数据集,采用Keras独立完成实际的工程项目

高频问题:

1.如何编程实现深度神经网络 2.三种开发方式的具体使用

关键点:

1.掌握Keras编程思想 2.采用三种不同方式编写深度神经网络

实操解析与训练

第三阶段:CNN实践

实验:图像分类

1.使用CNN解决图像分类问题 2.搭建AlexNet 3.VGG16/19

4.GoogleNet 5.ResNet

高频问题:

1.CNN更复杂的模型在哪里可以找到代码

关键点:

1.使用卷积神经网络做图像分类 2.常见开源代码以及适用的问题

实验:视频人物行为识别

1.基于C3D的视频行为识别方法 2.基于LSTM的视频行为识别方法

3.基于Attention的视频行为识别方法

高频问题:

1.2D卷积与3D卷积 2.视频的时空特征

关键点:

1.C3D网络的构建 2.Attention机制

实操解析与训练

第四阶段:

R-CNN及YOLO实践

实验:目标检测

1.目标检测发展现状及代表性方法

2.两阶段目标检测方法:R-CNN系列模型

3.一阶段目标检测方法:YOLO系列模型

高频问题:

1.提名与分类 2.BBOX实现策略 3.YOLO Loss函数

关键点:

1.提名方法 2.ROI Pooling 3.SPP Net 4.RPN 5.YOLO

实操解析与训练

第五阶段:

RNN实践

实验:股票预测

1.股票数据分析 2.同步预测 3.异步预测

高频问题:

1.历史数据的使用

关键点:

1.构建RNN 2.采用Keras编程实现

实操解析与训练

第六阶段:

Encoder-Decoder实践

实验:去噪分析

1.自编码器 2.去噪自编码器

高频问题:

1.噪声的引入与去除

关键点:

1.设计去噪自编码器

实验:图像标题生成

结合计算机视觉和机器翻译的最新进展,利用深度神经网络生成真实的图像标题。

1.掌握Encoder-Decoder结构 2.学会Seq2seq结构

3.图像CNN +文本RNN 4.图像标题生成模型

高频问题:

1.如何能够根据图像生成文本?

关键点:

1.提取图像特征CNN,生成文本RNN 2.构建Encoder-Decoder结构

实操解析与训练

第七阶段:

GAN实践

实验:艺术家作品生成

  1. 生成对抗网络原理 2.GAN的生成模型、判别模型的设计

高频问题:

1.生成模型与判别模型的博弈过程

关键点:

1.掌握GAN的思想与原理 2.根据需求学会设计生成模型与判别模型

实操解析与训练

第八阶段:

强化学习实践

实验:游戏分析

1.游戏场景分析 2.强化学习的要素分析 3.深度强化学习

高频问题:

1.DNN 与DQN 2.探索与利用

关键点:

1.深度强化学习的原理 2.根据实际需求,设计深度强化学习模型

实操解析与训练

第九阶段:

图卷积神经网络实践

实验:社交网络分析

1.图神经网络的原理 2.图卷积神经网络的思想

3.设计图卷积神经网络进行社交网络分析

高频问题:

1.如何从图神经网络的原理转化到实际编程

关键点:

  1. 掌握图神经网络原理 2. 图卷积神经网络编程实现

实操解析与训练

第十阶段:

Transformer实践

实验:基于Transformer的对话生成

  1. Transformer原理 2. 基于Transformer的对话生成

3.基于 Transformer 的应用

高频问题:

1.如何应用自注意力机制 2.如何应用于自然语言处理与计算机视觉

关键点:

1.self-Attention机制 2.position

转载:

https://www.cnblogs.com/yanshw/p/10576354.html

人工智能技术与咨询了解更多相关信息及知识,咨询:195-1112-2152(v同号)

版权声明:作者保留权利,不代表意本站立场。如需转载请联系本站以及作者。

参与讨论

回复《 深度学习与图神经网络学习分享:CNN经典网络之-ResNet

EditorJs 编辑器

沙发,很寂寞~
反馈
to-top--btn