深度学习中几种常用的模型

  最近再从事深度学习方面的工作,感觉还有很多东西不是很了解,各种网络模型的结构的由来还不是很清晰,在我看来所有的网络都是一层层的卷积像搭积木一样打起来的,由于还没实际跑所以还没很深刻感受到几种网络类型的区别,在此我想梳理一下几种常见的网络结构,加深一下理解。

本文转自此文https://www.cnblogs.com/houkai/p/6553221.html,此文条理清晰,总结较为到位。

  目前常见的网络结构:AlexNet、ZF、GoogLeNet、VGG、ResNet等等都可谓曾一战成名,它们都具有自身的特性,它们都提出了创新点。

LeNet

是由Yann LeCun完成的具有开拓性的卷积神经网络,是大量网络结构的起点。网络给出了卷积网络的基本特性:

1.局部感知。人对外界的认知是从局部到全局的,相邻局部的像素联系较为紧密。每个神经元没必要对全局图像进行感知,只需要对局部进行感知,然后更高层将局部的信息综合起来得到全局的信息。

2.多层卷积。层数越高,学到的特征越全局化。

3.参数共享。每个卷积都是一种提取特征的方式,大大降低了参数的数目。

4.多卷积核。提取多类特征,更为丰富。

5.池化。降低向量维度,并避免过拟合。

特性1自然引出了特性2,特性3自然引出了特性4。

网络用于mnist手写体识别任务,网络结构用 http://ethereon.github.io/netscope/#editor 查看,常见网络:http://ethereon.github.io/netscope/quickstart.html

AlexNet

2012年,深度学习崛起的元年,Alex Krizhevsky 发表了Alexet,它是比LeNet更深更宽的版本,并以显著优势赢得了ImageNet竞赛。贡献有:

1.使用RELU作为激活单元。

2.使用Dropout选择性忽略单个神经元,避免过拟合。

3.选择最大池化,避免平均池化的平均化效果。

AlexNet是目前应用极为广泛的网络,结构讲解见:http://blog.csdn.net/sunbaigui/article/details/39938097

网络整体上给我们带来了三个结构模块:

1、单层卷积的结构:conv-relu-LRN-pool。前面的卷积步长大,快速降低featureMap的大小(较少后面的计算量),后面深层卷积保持featureMap大小不变。LRN的功能放在今天来看是无关痛痒的,并不是很强。

2、多层卷积的结构,网络更深,特征更抽象。

3、全连接的结构,drop避免过拟合。

ZFNet

由 Matthew D Zeiler和Rob Fergus于2013年在“Visualizing and Understanding Convolutional Networks”论文中提出,属于AlexNet网络的变体。论文具有重要意义,阐述了卷积网络为什么有效,ZF网络是他们顺带提出来的。ZF在faster rcnn等应用中做为特征提取模块被广泛应用,一般来讲比AlexNet略优。

主要的改动是:减少第一层卷积的size和stride(11->7、4->2),提取更多的底层特征,增加第二层卷积的步长stride(1->2)。从而取得到了和AlexNei基本相同的感知野,featureMap的大小相同,后面的卷积计算量也保持不变。

VGG

VGG-16又称为OxfordNet,是由牛津视觉几何组(Visual Geometry Group)开发的卷积神经网络结构。该网络赢得了ILSVR(ImageNet)2014的冠军。时至今日,VGG仍然被认为是一个杰出的视觉模型——尽管它的性能实际上已经被后来的Inception和ResNet超过了。

网络结构:http://ethereon.github.io/netscope/#/preset/vgg-16

我们就看D(VGG16)和E(VGG19)好了。因为前面的网络效果没有D和E的效果好,而且比起D和E来讲不够简洁。

VGG是把网络分为5组(模仿AlexNet的五层),然而它使用了3*3的过滤器,并把它们组合起来作为一个卷积序列进行处理。特征:

1.网络更深DCNN,channel数目更大。

2.采用多个3*3的卷积,模仿出更大的感受野的效果。这些思想也被用在了后续的网络架构中,如 Inception 与 ResNet。

GoogLeNet

Christian Szegedy开始追求减少深度神经网络的计算开销,并于2014年设计出 GoogLeNet——第一个 Inception 架构。

“Going Deeper with Convolutions”中google提出了Inception模块:

受NIN的启发,Inception的思路是减少每一层的特征过滤器的数目,从而减少运算量。用 1*1的卷积块在昂贵的并行模块之前减少特征的数量,比 AlexNet 与 VGG 的分类器的运算数量少得多。这种做法一般称为瓶颈层(Bottleneck)。

而且,尽管我们做了更好的运算,我们在此层也没有损失其通用性(generality)。事实证明瓶颈层在 ImageNet 这样的数据集上已经表现出了顶尖水平,而且它也被用于接下来介绍的 ResNet 这样的架构中。

它之所以成功是因为输入特征是相关联的,因此可通过将它们与 1×1 卷积适当结合来减少冗余。然后,在小数量的特征进行卷积之后,它们能在下一层被再次扩展成有意义的结合。

ResNet

2015 年 12 月又出现了新的变革,这和 Inception V3 出现的时间一样。ResNet 有着简单的思路:供给两个连续卷积层的输出,并分流(bypassing)输入进入下一层(论文:Deep Residual Learning for Image Recognition),在imagenet2015夺得冠军。

计算机视觉领域,特征随着网络加深而愈加抽象,而且深层网络也会带来梯度弥散/爆炸等问题。而且在实践中,深层网络(很深)的性能会劣于浅层网络,这反映了一个事实:非线性网络无法逼近恒等映射网络(y=x)。所以我们转而去学习恒等映射的扰动。

ResNet要学习的便是残差函数:,残差块的结构是:

这是第一次网络层数超过一百,甚至还能训练出 1000 层的网络。实际中,考虑计算的成本,对残差块做了计算优化,即将两个3x3的卷积层替换为1x1 + 3x3 + 1x1。

通过首先是由带有更小输出(通常是输入的 1/4)的 1×1 卷积较少特征的数量,然后使用一个 3×3 的层,再使用 1×1 的层处理更大量的特征。类似于 Inception 模块,这样做能保证计算量低,同时提供丰富的特征结合。

原文地址:https://www.cnblogs.com/gwb-tech-blog/p/8660258.html

时间: 2024-11-09 16:53:45

深度学习中几种常用的模型的相关文章

zz深度学习中的注意力模型

中间表示: C -> C1.C2.C3 i:target -> IT j: source -> JS sim(Query, Key) -> Value Key:h_j,类似某种“basis”: 从图9可以引出另外一种理解,也可以将Attention机制看作一种软寻址(SoftAddressing):Source可以看作存储器内存储的内容,元素由地址Key和值Value组成,当前有个Key=Query的查询,目的是取出存储器中对应的Value值,即Attention数值.通过Quer

深度学习中的Data Augmentation方法(转)基于keras

在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augmentation 2. Regularization. 数据量比较小会导致模型过拟合, 使得训练误差很小而测试误差特别大. 通过在Loss Function 后面加上正则项可以抑制过拟合的产生. 缺点是引入了一个需要手动调整的hyper-parameter. 详见 https://www.wikiwand.c

[转] 深度学习中的注意力机制

from: https://zhuanlan.zhihu.com/p/37601161 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理.语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影.所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要. 人类的视觉注意力 从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制. 图1 人类的视觉注意力 视觉注意力机制是人类视觉所特有的大

浅谈深度学习中潜藏的稀疏表达

浅谈深度学习中潜藏的稀疏表达 “王杨卢骆当时体,轻薄为文哂未休. 尔曹身与名俱灭,不废江河万古流.” — 唐 杜甫<戏为六绝句>(其二) [不要为我为啥放这首在开头,千人千面千理解吧] 深度学习:概述和一孔之见 深度学习(DL),或说深度神经网络(DNN), 作为传统机器学习中神经网络(NN).感知机(perceptron)模型的扩展延伸,正掀起铺天盖地的热潮.DNN火箭般的研究速度,在短短数年内带来了能“读懂”照片内容的图像识别系统,能和人对话到毫无PS痕迹的语音助手,能击败围棋世界冠军.引

资深程序员带你玩转深度学习中的正则化技术(附Python代码)!

目录 1. 什么是正则化? 2. 正则化如何减少过拟合? 3. 深度学习中的各种正则化技术: L2和L1正则化 Dropout 数据增强(Data augmentation) 提前停止(Early stopping) 4. 案例:在MNIST数据集上使用Keras的案例研究 1. 什么是正则化? 在深入该主题之前,先来看看这几幅图: 之前见过这幅图吗?从左到右看,我们的模型从训练集的噪音数据中学习了过多的细节,最终导致模型在未知数据上的性能不好. 换句话说,从左向右,模型的复杂度在增加以至于训练

卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)

卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮助您彻底理解卷积. 已经有一些关于深度学习卷积的博客文章,但我发现他们都对不必要的数学细节高度混淆,这些细节没有以任何有意义的方式进一步理解.这篇博客文章也会有很多数学细节,但我会从概念的角度来看待他们,在这里我用每个人都应该能够理解的图像表示底层数学.这篇博文的第一部分是针对任何想要了解深度学习中

关于深度学习中的batch_size

5.4.1 关于深度学习中的batch_size batch_size可以理解为批处理参数,它的极限值为训练集样本总数,当数据量比较少时,可以将batch_size值设置为全数据集(Full batch cearning). 实际上,在深度学习中所涉及到的数据都是比较多的,一般都采用小批量数据处理原则. 小批量训练网络的优点: 相对海量的的数据集和内存容量,小批量处理需要更少的内存就可以训练网络. 通常小批量训练网络速度更快,例如我们将一个大样本分成11小样本(每个样本100个数据),采用小批量

深度学习之目标检测常用算法原理+实践精讲

第1章 课程介绍本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 第2章 目标检测算法基础介绍本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-stage.two-stage.多任务网络).相关算法的基本流程.算法性能的评价指标.不同算法的优缺点和性能比较等,并结合实际的应用场景和案例来介绍目标检测算法的重要性和实用

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络 资源获取链接:点击这里 第1章 课程介绍 本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 1-1 课程导学 第2章 目标检测算法基础介绍 本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-sta