深度学习与图神经网络核心技术实践应用高级研修班-Day1典型深度神经网络模型
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习与图神经网络核心技术实践应用高级研修班-Day1典型深度神经网络模型相关的知识,希望对你有一定的参考价值。
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 3∗3的小型卷积核和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 3∗3卷积核的堆叠相当于 5 ∗ 5 5*5 5∗5卷积核的视野,3个 3 ∗ 3 3*3 3∗3卷积核的堆叠相当于 7 ∗ 7 7*7 7∗7卷积核的视野。3个堆叠的 3 ∗ 3 3*3 3∗3结构只有 7 ∗ 7 7*7 7∗7结构参数数量的 ( 3 ∗ 3 ∗ 3 ) / ( 7 ∗ 7 ) (3*3*3)/(7*7) (3∗3∗3)/(7∗7)=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比赛的冠军,刷新了图像分类与检测的性能记录。该网络的特点是提升了计算资源的利用率,可以在保持网络计算资源不变的前提下,增加网络的宽度和深度。
- Inception[V1]: Going Deeper with Convolutions
- Inception[V2]: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- Inception[V3]: Rethinking the Inception Architecture for Computer Vision
- 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典型深度神经网络模型的主要内容,如果未能解决你的问题,请参考以下文章
深度学习与图神经网络核心技术实践应用高级研修班-Day3迁移学习(Transfer Learning)
深度学习与图神经网络核心技术实践应用高级研修班-Day1典型深度神经网络模型
深度学习与图神经网络核心技术实践应用高级研修班-Day1Tensorflow和Pytorch
深度学习与图神经网络核心技术实践应用高级研修班-Day2基于Keras的深度学习程序开发