经典神经网络回顾

date:2017.5.11

前言:下面介绍的内容其实在《Tensorflow实战》里都有详尽的介绍,之前入门时只了解了vgg啥样,什么Alexnet,Google Inception,ResNet只闻其名,不知其形,今天好好梳理下(毕设做完了,开心XD)

AlexNet

ILSVRC 2012比赛扛把子,特点如下:

(1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU激活函数在很久之前就被提出了,但是直到AlexNet的出现才将其发扬光大。

(2)训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合。Dropout虽有单独的论文论述,但是AlexNet将其实用化,通过实践证实了它的效果。在AlexNet中主要是最后几个全连接层使用了Dropout。

(3)在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。

(4)提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。

(5)使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算。AlexNet使用了两块GTX 580 GPU进行训练,单个GTX 580只有3GB显存,这限制了可训练的网络的最大规模。因此作者将AlexNet分布在两个GPU上,在每个GPU的显存中储存一半的神经元的参数。因为GPU之间通信方便,可以互相访问显存,而不需要通过主机内存,所以同时使用多块GPU也是非常高效的。同时,AlexNet的设计让GPU之间的通信只在网络的某些层进行,控制了通信的性能损耗。 

(6)数据增强,随机地从256´256的原始图像中截取224´224大小的区域(以及水平翻转的镜像),相当于增加了(256-224)2´2=2048倍的数据量。如果没有数据增强,仅靠原始的数据量,参数众多的CNN会陷入过拟合中,使用了数据增强后可以大大减轻过拟合,提升泛化能力。进行预测时,则是取图片的四个角加中间共5个位置,并进行左右翻转,一共获得10张图片,对他们进行预测并对10次结果求均值。同时,AlexNet论文中提到了会对图像的RGB数据进行PCA处理,并对主成分做一个标准差为0.1的高斯扰动,增加一些噪声,这个Trick可以让错误率再下降1%。

接下来划重点,(1)relu激活函数在层数较深时效果比sigmoid好
(2)drop out 降低过拟合,效果好,这算是一个trick吧
(3)步长设置比池化核小,增加特征丰富性
(4)LRN层这东西我百度后发现,多个LRN就提高0.1%,真是可有可无,好像现在用的也比较少。
(5)由于当时显卡性能在现在看来十分辣鸡,不能满足神经网络训练要求,于是结构被分成两个并行部分
(6)数据集扩增,防止过拟合。

VGG

2014的网络模型

两个3´3的卷积层串联相当于1个5´5的卷积层,即一个像素会跟周围5´5的像素产生关联,可以说感受野大小为5´5。而3个3´3的卷积层串联的效果则相当于1个7´7的卷积层。除此之外,3个串联的3´3的卷积层,拥有比1个7´7的卷积层更少的参数量,只有后者的。最重要的是,3个3´3的卷积层拥有比1个7´7的卷积层更多的非线性变换(前者可以使用三次ReLU激活函数,而后者只有一次),使得CNN对特征的学习能力更强。

这是Tensorflow实战里的原话,了解就好,设计什么的还比较遥远。

Google Inception

同样是2014年,不过一直在升级,2014年的是Inception v1,相比前面的Alexnet和VGG,Inception v1把占总参数量90%的全连接层去掉,改为1x1的全局平均池化层。

Inception Module结构图

最后进化成了一个家族:

2014年9月的论文Going Deeper with Convolutions提出的Inception V1(top-5错误率6.67%)。

2015年2月的论文Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate提出的Inception V2(top-5错误率4.8%)。

2015年12月的论文Rethinking the Inception Architecture for Computer Vision提出的Inception V3(top-5错误率3.5%)。

2016年2月的论文Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning提出的Inception V4(top-5错误率3.08%)。
在我看来,Inception v4确实使用了许多手段最后达到了这个令人惊叹的错误率,但是搭建起来也是足够的复杂,我想这就是slim推出的重要原因吧。

ResNet

最近有论文证明Resnet等价于RNN网络,resnet确实也在网络深度上一路狂飙,152层甚至1000层的网络也有了。

总的来说,这几种网络都属于2维的卷积网络,主要任务可以做图像分类、定位等,他们功能上应该是递进的关系,越新的网络,使用到的技术越好,性能越高,而Inception-ResNet-V2则是把这几种网络的优势都融为一体。

当然,卷积网络不止2维,也可以有1维的,可以处理时间序列的信号;也可以有3维的,可以处理3维空间的信息,或者处理视频信息。卷积网络适应的场景应该是,输入信号在空间上和时间上存在一定关联性的场景,满足了这个条件,都可以很好的利用深度卷积神经网络解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘要 神经网络是一种模拟人类神经系统工作原理的计算模型。神经网络在各种领域都有广泛的应用,其中卷积神经网络是一种特殊的神经网络结构,被广泛用于图像和视频数据处理。本文探讨了神经网络尤其是卷积神经网络在故障诊断中的应用历史和应用实例。我们回顾了卷积神经网络在故障诊断领域的发展历程,介绍了一些应用案例,同时探讨了神经网络在故障诊断中存在的挑战和未来研究方向。 1. 简介 故障诊断是一项重要的工程任务,可以帮助提高机械、电子、航空等领域的设备可靠性和安全性。传统的故障诊断方法主要依赖于专家知识和规则,缺乏普适性和鲁棒性。近年来,随着神经网络的快速发展,越来越多的研究开始探讨神经网络在故障诊断中的应用。 神经网络是一种模拟人类神经系统工作原理的计算模型,其主要特点是能够通过学习数据中的特征来完成各种任务。神经网络的主要结构包括输入层、隐藏层和输出层,其中隐藏层是实现特征提取和数据映射的关键。卷积神经网络是一种特殊的神经网络结构,主要用于图像和视频数据处理。卷积神经网络通过卷积操作来提取数据中的特征,能够实现对图像、视频等复杂数据的自动分析和识别。 2. 神经网络在故障诊断中的应用历史 早期的神经网络应用主要集中在语音识别、图像识别等领域。随着神经网络的发展,越来越多的研究开始探讨神经网络在故障诊断中的应用。其中,基于卷积神经网络的故障诊断方法逐渐得到了广泛应用。 最早的卷积神经网络故障诊断方法可以追溯到20世纪90年代,当时研究者使用卷积神经网络对振动信号进行分类。然而,由于当时硬件条件和算法限制,这些方法并未得到广

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值