深度网络架构

Rumelhart、Hinton和Williams在1986年提出了反向传播(BP)算法。

LeNet:诞生于1994年,由Yann LeCun提出。确定了卷积神经网络的 3 层序列:卷积层(Convolution)、池化层(Pooling)和非线性层(Non-linearity)。奠定了CNN的三大核心思想:局部感受野,权值共享,下采样。

Alexnet:诞生于2012年,为什么成功:imagenet、gpu(多gpu计算)、relu替代sigmoid、dropout、数据增广

Vgg:诞生于2014年,将网络加深,卷积核全部使用3*3。直观说来,最好选择带有小滤波器的卷积层组合,而不是用一个带有大的滤波器的卷积层。前者更能提取出深层的更好的特征,使用的参数也更少。唯一的不足是,在进行反向传播时,中间的卷积层可能会导致占用更多的内存。

GoogLenet:诞生于2014年,Inception系列三大基本结构:Mutiplebranches( 1x1,3x3,5x5,pool ),Shortcut( stand-alone 1x1 , merged by concat),Bottleneck(reduce dimension by 1x1 before 3x3/5x5 conv )。原始的Inception模型,也就是GoogLeNet被称为Inception-v1,加入batch normalization之后被称为Inception-v2,加入factorization的idea之后,改进为Inception-v3。

Resnet:深度残差网络(Deep residual network),何凯明之作。ResNet的出现是解决普通网络随着深度增加,性能反而下降的问题,造成这个问题的原因是梯度消失而非过拟合。
ResNet为什么会有如此优异的表现呢?其实ResNet是解决了深度CNN模型难训练的问题,14年的VGG才19层,而15年的ResNet多达152层,这在网络深度完全不是一个量级上,所以如果是第一眼看这个图的话,肯定会觉得ResNet是靠深度取胜。事实当然是这样,但是ResNet还有架构上的trick,这才使得网络的深度发挥出作用,这个trick就是残差学习(Residual learning)。下面详细讲述ResNet的理论及实现。

理论上,对于“随着网络加深,准确率下降”的问题,Resnet提供了两种选择方式,也就是identity mapping和residual mapping,如果网络已经到达最优,继续加深网络,residualmapping将被push为0,只剩下identity mapping,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。
这里写图片描述


LeNet-5

LeNet-5模型一共有7层,下图展示了LeNet-5模型的架构:
LeNet-5模型架构
第一层,卷积层:
这一层的输入就是原始的图像像素32*32*1。第一个卷积层过滤器尺寸为5*5,深度为6,不使用全0填充,步长为1。所以这一层的输出:28*28*6,卷积层共有5*5*1*6+6=156个参数

第二层,池化层:
这一层的输入为第一层的输出,是一个28*28*6的节点矩阵。本层采用的过滤器大小为2*2,长和宽的步长均为2,所以本层的输出矩阵大小为14*14*6。

第三层,卷积层:
本层的输入矩阵大小为14*14*6,使用的过滤器大小为5*5,深度为16.本层不使用全0填充,步长为1。本层的输出矩阵大小为10*10*16。本层有5*5*6*16+16=2416个参数。

第四层,池化层:
本层的输入矩阵大小10*10*16。本层采用的过滤器大小为2*2,长和宽的步长均为2,所以本层的输出矩阵大小为5*5*16。

第五层,全连接层:
本层的输入矩阵大小为5*5*16,在LeNet-5论文中将这一层成为卷积层,但是因为过滤器的大小就是5*5,所以和全连接层没有区别。如果将5*5*16矩阵中的节点拉成一个向量,那么这一层和全连接层就一样了。本层的输出节点个数为120,总共有5*5*16*120+120=48120个参数。

第六层,全连接层:
本层的输入节点个数为120个,输出节点个数为84个,总共参数为120*84+84=10164个。

第七层,全连接层:
本层的输入节点个数为84个,输出节点个数为10个,总共参数为84*10+10=850


AlexNet

AlexNet 架构图:
AlexNet 架构图

AlexNet 内部细节图:
AlexNet 内部细节图

AlexNet 简化图:
AlexNet 简化图


VGG

VGG,2015,来源:《VERY DEEP CONVOLUTIONAL NETWORK SFOR LARGE-SCALE IMAGE RECOGNITION》

下表1展示了作者所搭建的6个模型。其中每一列代表一种,分别搭建了权重层(maxpool以及最后的softmax层不算作权重层)为11,11,13,16,16,19的6个模型。其中D(VGG16)和E(VGG19)的效果最好。
VGG
上表2展示的是以上6个模型分别对应的参数量(单位:百万)


GoogLeNet

inception结构:
inception结构

下图为GoogLeNet的网络框图细节,其中“#3x3 reduce”,“#5x5 reduce”代表在3x3,5x5卷积操作之前使用1x1卷积的数量。输入图像为224x224x3,且都进行了零均值化的预处理操作,所有降维层也都是用了ReLU非线性激活函数。
GoogLeNet的网络框图细节

下图用到了两个辅助分类器,即将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中。这样相当于做了模型融合,同时给网络增加了反向传播的梯度信号,也提供了额外的正则化,对于整个Inception Net的训练很有裨益。
这里写图片描述


Resnet

### 回答1: 在线查看深度网络架构的方法有很多种,以下是几种常见的方法: 1. TensorBoard:TensorBoard是TensorFlow提供的一个可视化工具,可以方便地查看深度网络架构、损失函数、精度等信息。通过在训练代码中添加TensorBoard的代码,可以将训练过程的各种信息保存下来,然后在浏览器中打开TensorBoard即可查看相应的信息。 2. Netron:Netron是一个跨平台的开源深度学习模型可视化工具,支持常见的深度学习框架(如TensorFlow、PyTorch、Keras等),可以方便地查看模型的结构、参数和输出等信息。只需要将模型的文件(如.pb、.onnx、.pt等格式)拖入Netron界面即可。 3. Model Zoo:许多深度学习框架都提供了自己的模型库,可以从中下载已经训练好的模型,然后查看其架构。例如,TensorFlow提供了TF Hub和TF Model Garden两个模型库,PyTorch提供了torchvision模型库等。 4. 源代码:如果你能够拿到模型的源代码,那么就可以直接查看模型的结构了。不同的深度学习框架实现模型的方式不同,但通常都会有一个模型定义的文件,例如TensorFlow中的.py文件、PyTorch中的.py文件、Keras中的.py文件等,可以在文件中查看模型的结构。 ### 回答2: 要在线上查看深度网络架构,可以通过以下几种方式: 1. 官方文档:许多深度学习框架都提供了官方文档,其中包含了各种深度网络架构的详细介绍和示例代码。可以通过查阅框架的官方文档来了解特定网络架构的实现方式和详细结构。 2. 模型库:各个深度学习框架都有自己的模型库,其中包含了各种已经训练好的网络模型。可以通过查阅模型库,找到想了解的网络架构,并查看其详细结构和参数设置。 3. 编程代码:深度学习框架提供了丰富的API函数,可以通过编写代码来查看网络架构。通过调用框架提供的函数,可以打印出网络的层次结构或者可视化网络结构图。 4. 可视化工具:一些深度学习框架提供了可视化工具,可以将网络架构以图形的方式展示出来。通过使用这些可视化工具,可以直观地查看网络架构的结构和参数。 总而言之,要在线上查看深度网络架构,可以利用官方文档、模型库、编程代码和可视化工具等方式来获取所需信息。 ### 回答3: 要在线查看深度网络架构,可以通过以下几种方式: 1. 官方文档和教程:很多深度学习框架都有详细的官方文档和教程,其中包含了各种网络架构的介绍和示例代码。可以通过阅读框架的官方文档和教程来了解各种深度网络架构的原理和实现方式。 2. 开源代码库:深度学习领域有很多开源代码库,其中包含了大量的深度网络架构的实现。通过浏览这些开源代码库,我们可以查看各种深度网络架构的具体实现代码,了解网络的结构和参数配置。 3. 论文和学术资料:深度学习领域有很多优秀的研究论文和学术资料,其中详细介绍了各种深度网络架构的原理和应用。可以通过阅读这些论文和学术资料来了解各种深度网络架构的背景知识和技术细节。 4. 网络可视化工具:有些深度学习框架提供了网络可视化工具,可以帮助我们直观地查看和分析深度网络架构。这些工具通常会将网络的结构以图形化的方式呈现出来,方便我们理解和掌握网络的组成和结构。 综上所述,要在线查看深度网络架构,我们可以利用官方文档、开源代码库、论文学术资料以及网络可视化工具等多种资源来获取相关信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值