深度学习与图神经网络核心技术实践应用高级研修班-day1典型深度神经网络模型

ZSYL ZSYL     2022-12-24     190

关键词:

1. AlexNet模型


AlexNet摘得了2010年ILSVRC比赛的桂冠,拥有6000万个参数和65万个神经元,并且花了五到六天的时间来训练两个GTX 580,8层的网络:5层卷积加3层全连接。全连接层6、7都是有4096个节点,最后一层有1000个节点。

1.1 AlexNet:网络结构

  • 卷积层C1、C2处理流程是: 卷积–>ReLU–>池化–>归一化。
  • 卷积层C3、C4处理流程是: 卷积–>ReLU
  • 卷积层C5处理流程为:卷积–>ReLU–>池化
  • 全连接层FC6、FC7流程为:全连接 -->ReLU -->Dropout
  • 输出层:第七层输出的4096个数据与第八层的1000个神经元进行全连接

1.2 AlexNet:特点


特点:
(1) 采用很多有效的操作防止过拟合;
(2) 提出了局部响应规一化增强了模型的泛化能力;
(3) 两个GPU并行运算提高了准确度和速率;
(4) 使用Relu激活函数实现快速收敛;

特点1:防止过拟合


使用最大池化,避免平均池化的模糊化效果。重叠池化提升了特征的丰富性,在一定程度上避免过拟合。

特点2:局部响应归一化层

特点3:two-GPU训练


为什么多GPU模型并行技术可行?

1、CNN具有可并行特点

CNN参数是通过训练数据进行学习,并且由于同一特征映射面上的神经元权值相同(权值共享),所以网络可以并行学习。

2、随机梯度下降训练的数据并行特性

并行运算原理:

(1) 在GPU1、GPU2上分别定义模型参数变量,网络结构;

(2) 对于单独的GPU,分别从数据管道读取不同的数据块,然后进行前向传播计算出loss,再计算关于当前Variables的gradients;

(3) 把所有GPU输出的梯度数据转移到CPU上,先进行梯度取平均操作,然后进行模型参数的更新;

(4) 重复步骤(1)-(3),直到模型参数收敛为止;


特点4:Relu激活函数


使用Relu的AlexNet能以6倍快的速度到达25%的训练错误率。

1.3 AlexNet: Dropout层


Dropout:在一次训练时的迭代中,对每一层中的神经元以概率P随机剔除,用余下的神经元所构成的网络来训练本次迭代中的数据,在下一次迭代中,又重新随机删除一些神经元。每次迭代更新子网络基本上不会重复,从而避免了某一个网络被过分的拟合到训练集上。

1.4 AlexNet:实验结果

2. VGG(Visual Geometry Group)

VGG探索了卷积神经网络的深度和其性能之间的关系,通过反复的堆叠 3 ∗ 3 3*3 33的小型卷积核和2*2的最大池化层,成功的构建了16~19层深的卷积神经网络。

VGG获得了ILSVRC 2014年比赛的亚军和定位项目的冠军,在top5上的错误率为7.5%。

创新点:

(1) 使用了更小的3*3卷积核,和更深的网 络,拥有更多的非线性变换,增加了CNN对特征的学习能力;

(2) 引入1*1的卷积核,在不影响输入输出维度的情况下,引入非线性变换,增加网络的表达能力,降低计算量;

(3) 先训练层数较浅的VGGA级网络,使用A网络的权重来初始化后面的复杂模型,加快训练的收敛速度;

(4) 小池化层带来的是更细节的信息捕获

2.1 VGG特点: 3*3卷积核

分析:如图,2个 3 ∗ 3 3*3 33卷积核的堆叠相当于 5 ∗ 5 5*5 55卷积核的视野,3个 3 ∗ 3 3*3 33卷积核的堆叠相当于 7 ∗ 7 7*7 77卷积核的视野。3个堆叠的 3 ∗ 3 3*3 33结构只有 7 ∗ 7 7*7 77结构参数数量的 ( 3 ∗ 3 ∗ 3 ) / ( 7 ∗ 7 ) (3*3*3)/(7*7) (333)/(77)=55%)55%。

结论:堆叠的小卷积核有更大的感受野,更少的参数去学习。

2.2 VGG特点: 1*1卷积核

分析

假设,上一层的输出为100x100x128,经过具有256个通道的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256,其中,卷积层的参数为128x5x5x256=819200。

而假如上一层输出先经过具有32个通道的1x1卷积层,再经过具有256个输出的5x5卷积层,那么输出数据仍为100x100x256,但卷积参数量已经减少为128x1x1x32 + 32x5x5x256= 204800,参数大约减少了4倍。

结论1x1卷积的主要目的是为了减少维度,降低计算量

2.3 VGG网络结构


3. ResNet

3.1 ResNet的诞生背景

Deep Residual Learning for Image Recognition

1、网络的深度为什么重要?

因为CNN能够提取low/mid/high-level的特征,网络的层数越多,意味着能够提取到不同level的特征越丰富。并且,越深的网络提取的特征越抽象,越具有语义信息。

2、为什么不能简单地增加网络层数?

对于原来的网络,如果简单地增加深度,会导致梯度弥散或梯度爆炸

解决方法是增加正则化初始化和中间的正则化层(Batch Normalization)。

但是出现了退化问题:网络层数增加,但是在训练集上的准确率却饱和甚至下降了,说明了深度网络不能很简单地被很好地优化。

3、怎么解决退化问题?

推断退化问题可能是因为深层的网络并不是那么好训练,也就是求解器很难去利用多层网络拟合同等函数。

如果深层网络的后面那些层是恒等映射H(x) = x ,那么模型就退化为一个浅层网络,但是比较困难。

提出残差网络:H(x) = F(x) + x,可以转换为学习一个残差函数F(x) = H(x) – x,如果F(x)=0,就构成了一个恒等映射H(x) = x. 而且,拟合残差肯定更加容易。



这种残差学习结构可以通过前向神经网络+shortcut连接实现,如结构图所示。而且shortcut连接相当于简单执行了同等映射,不会产生额外的参数,也不会增加计算复杂度。

Shortcut 如图设置C=1-T。



作者由VGG19设计出了plain 网络和残差网络,如图中部和右侧网络。然后利用这两种网络进行实验对比:



4. GoogLeNet(Inception v1到v4)

获得ILSVRC14比赛的冠军,刷新了图像分类与检测的性能记录。该网络的特点是提升了计算资源的利用率,可以在保持网络计算资源不变的前提下,增加网络的宽度和深度。

  1. Inception[V1]: Going Deeper with Convolutions
  2. Inception[V2]: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
  3. Inception[V3]: Rethinking the Inception Architecture for Computer Vision
  4. Inception[V4]: Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

4.1 GoogleNet: Inception V1

通过设计一个稀疏网络结构,但是能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率。

谷歌提出了最原始Inception V1的基本结构:

4.2 GoogleNet: Inception V2

1、学习VGG:2个连续的3x3卷积层组成的小网络来代替单个的5x5卷积层。

2、Batch Normalization:代替Dropout 和 LRN,其正则化的效果让大型卷积网络的训练速度加快很多倍。


Batch Normalization
通过一定的规范化手段,把每层神经网络任意神经元输入值的分布强行拉回到均值为0方差为1的标准正态分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,让梯度变大,避免梯度消失问题产生,加快训练速度。

一次训练里面包含m个训练实例,BN操作就是对于隐层内每个神经元的激活值来说,某个神经元对应的原始的激活x通过减去mini-Batch内m个实例获得的m个激活x求得的均值E(x)并除以求得的方差Var(x)来进行转换.

Batch Normalization :BN上述操作会导致网络表达能力下降,为了防止这一点,每个神经元增加两个调节参数(scale和shift),这两个参数是通过训练来学习到的,用来对变换后的激活反变换,使得网络表达能力增强,即对变换后的激活进行如下的scale和shift操作,这其实是变换的反操作:

4.3 GoogleNet: Inception V3

矩阵分解用3个3x1取代3x3卷积。因此任意nxn的卷积都可以通过1xn卷积后接nx1卷积来替代。

4.4 GoogleNet: Inception V4

研究了Inception模块与残差连接的结合。残 差结构大大地加深了网络深度,还极大地提升了训练速度,同时性能也有Inception V4主要利用残差连接来改进V3结构。


4.5 DenseNet

DenseNet提出了一个更激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都会接受其前面所有层作为其额外的输入。

4.5.1 DenseNet:网络结构

DenseNet:网络结构


4.5.2 DenseNet:实验结果


基于RNN的视频行为识别模型


加油!

感谢!

努力!

深度学习与图神经网络核心技术实践应用高级研修班-day1深度学习的发展历史(完整版)

...发展历史1.深度学习发展历史2.深度学习的发展趋势3.人工神经网络4.模型与算法4.1前馈神经网络4.2前馈神经网络特点4.3前馈神经网络结构4.4BP神经网络4.5BP网络结构4.6BP网络学习算法4.6.1信号的前向传递过程4.6.1误差方向传导过程1.... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day4深度强化学习(deepq-learning)

深度强化学习(DeepQ-learning)1.深度强化学习简介2.DQN算法解析3.DQN在游戏中的应用4.代码讲解4.1数据预处理4.2网络结构4.3Exploration&Exploitation4.4经验回放机制4.5经验存储4.6经验回放1.深度强化学习简介传统的强化学习通常... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1典型深度神经网络模型

典型深度神经网络模型1.AlexNet模型1.1AlexNet:网络结构1.2AlexNet:特点1.3AlexNet:Dropout层1.4AlexNet:实验结果2.VGG(VisualGeometryGroup)2.1VGG特点:3*3卷积核2.2VGG特点:1*1卷积核2.3VGG网络结构3.ResNet3.1ResNet的诞生背景4.GoogLe 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1受限波尔兹曼机和深度信念网络

深度学习的常用模型及方法-受限波尔兹曼机和深度信念网络1.受限玻尔兹曼机1.1受限玻尔兹曼机原理1.2受限玻尔兹曼机实现2.深度信念网络2.1深度信念网络原理1.受限玻尔兹曼机受限玻尔兹曼机(RBM,RestrictedBoltzmannmachine&#... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1tensorflow和pytorch(代码片段)

深度学习与图神经网络-Tensorflow和Pytorch1.TensorFlow和Pytorch2.TensorFlow简介3.TensorFlow的API4.Pytorch简介5.Python安装6.TensorFlow安装7.Pytorch安装1.TensorFlow和Pytorch2.TensorFlow简介TensorFlow最初是由GoogleBrain团队(隶属于Goo 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1小样本学习与元学习

深度学习的常用模型及方法-小样本学习与元学习1.小样本学习1.12-way5-shot示例1.2基于模型的方法1.3基于度量的方法1.4基于优化的方法1.5数据集1.6基于混合注意力的原型网络2.元学习2.1元学习基础知识2.2元学习实际应用2.3元学习经... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day3对抗生成网络(generativeadversarialnetworks)

...N的原理1.8GAN的特性1.9深度GAN1.10GAN的基本框架1.11基于递归神经网络的GAN2.判别模型3.GAN的应用实例-图像超分辨率4. 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day2基于keras的深度学习程序开发(代码片段)

基于Keras的深度学习程序开发及模型构建1.Keras简介2.Keras模块3.Keras模型组织方式4.数据集导入(MNIST)5.网络层6.激活函数7.优化器(随机梯度下降优化器)8.损失函数9.初始化器10.正则化器11.案例代码11.1导入库函数11.2设置参数... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day2循环神经网络(rnn)

RNN循环神经网络1.RNN循环神经网络1.1循环神经网络(RNN)——网络结构1.2反向传播算法——链式法则1.3反向传播算法——参数更新1.4随时间反向传播(BPTT)2.RNN循环神经网络改进2.1长短期记忆网络(LSTM)——网络结... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1卷积神经网络和循环神经网络

深度学习的常用模型及方法-卷积神经网络和循环神经网络1.卷积神经网络(CNN)1.1CNN的生物学基础1.2CNN的历史2.循环神经网络(RNN)2.1网络结构1.卷积神经网络(CNN)每一个Convolutionlayer(卷积层)都... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1注意力机制(attention)

注意力机制1.Attention注意力2.Encoder-Decoder框架3.Attention的本质4.SelfAttention模型1.Attention注意力Attention:从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。2.Encoder-Decoder框架3.Attention的本... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1卷积神经网络(cnn详解)

卷积神经网络1.从神经元到多层神经网络1.1深度学习方法->反向传播1.2常见损失函数1.2.1均方误差1.2.2交叉熵损失函数2.卷积神经网络2.1卷积神经网络的产生背景2.2卷积层2.3滤波器与通道数2.4池化层2.5全连接层2.6激活函数层2.73DCNN... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day3去噪自编码器(denoising)

去噪自编码器(Denoising)1.问题背景2.问题定义3.实验方案3.1数据来源3.2获取带噪声图片3.3获取带噪声图片3.4模型实现3.5Encoder实现3.6Encoder实现4.实验效果1.问题背景简介自编码器(AutoEncoder)是深度学习中的⼀类无... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day4基于深度学习的图像分类(image_classification)(代码片段)

基于深度学习的图像分类1.图像分类任务2.常用数据集及模型介绍2.1发展简介2.2模型介绍3.基于深度学习模型逻辑3.1基本算法过程3.2多组卷积+激活+池化效果4.模型及代码分析4.1AlexNet(2012)4.2VGGNets(2014)4.3Res... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day3基于深度学习的视频行为识别(action_recognition)

基于深度学习的视频行为识别1.基于深度学习的视频行为识别2.基于C3D的视频行为识别方法3.基于LSTM的视频行为识别方法4.基于Attention的行为识别方法1.基于深度学习的视频行为识别视频行为识别视频行为识别是指给一个视频片段... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day4基于深度学习的目标检测(object_detection)(代码片段)

基于深度学习的目标检测(object_detection)1.目标检测相关介绍2.RCNN系列模型3.YOLO系列模型1.目标检测相关介绍目标检测要解决的问题适应不同尺度多样化2.RCNN系列模型(1)输入测试图像(2)利用SelectiveSearch算法在图像中从下到... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day3图神经网络(gnn)(代码片段)

图神经网络基础和基本思想1.图神经网络1.1图神经网络的定义和目标1.2图神经网络的思想和工作原理1.3图神经网络的应用场景2.图卷积神经网络2.1图卷积神经网络的定义2.2图卷积神经网络的卷积方式2.3卷积神经网络与图卷积神经... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1数据理解和处理(代码片段)

数据理解和处理0.数据理解和处理1.结构化数据2.图像数据3.时序信号0.数据理解和处理结构化数据图像数据时序信号1.结构化数据结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式... 查看详情