之前神经网络火过一段时间,但是后来又淡出了,后来又火了,尤其是到2012年真的像发水一样。

之前为什么不火了呢,因为人们发现网络浅了吧,没什么优势。网络深了吧,又会出现vanishing gradient,无法训练。

看文章也没看到有特别提到为什么现在又能训练了。

调研了一下,是因为几个原因吧。

1. 现在的网络中的激活函数变了,由原来的sigmoid变成了relu,这个从relu的分布来看,限制了误差的无限变化。

2. 计算资源变好了。原来的计算资源比较差,训练的话不能一点点调,但是学习率设置大了,会影响收敛的。现在有了GPU和高速的CPU了,可以很小的learning rate开始训练,不停的迭代,也是现实的。

3. dropout的使用。这个防止了过拟合。

lstm我觉得就是利用了类似于第一点的特性吧。通过增加lstm这个环节,让rnn的误差不至于vanishing gradient.

其实我还是没弄明白vanishing gradient的克服问题。我好像陷入了一个死胡同了,老想用理论来理解这个问题,但是出现这个问题的理论是显而易见的,可是克服这个问题的这些解决办法,好像都没有很好的理论基础吧。虽然RELU从一定程度上克服了这个问题,但是当层数很深时,还是会出现这个问题的,所以he kaiming灯提出了一种PRELU,可以训练更深的网络。

而至于LSTM,增加了各种门,但是我其实没看到哪里从理论上保证了是克服这个问题的,这个需要再看看。

cnn为什么会不存在vanishing gradient的问题的更多相关文章

  1. 梯度消失(vanishing gradient)与梯度爆炸(exploding gradient)问题

    (1)梯度不稳定问题: 什么是梯度不稳定问题:深度神经网络中的梯度不稳定性,前面层中的梯度或会消失,或会爆炸. 原因:前面层上的梯度是来自于后面层上梯度的乘乘积.当存在过多的层次时,就出现了内在本质上 ...

  2. 梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)

    转自https://blog.csdn.net/guoyunfei20/article/details/78283043 神经网络中梯度不稳定的根本原因:在于前层上的梯度的计算来自于后层上梯度的乘积( ...

  3. This instability is a fundamental problem for gradient-based learning in deep neural networks. vanishing exploding gradient problem

    The unstable gradient problem: The fundamental problem here isn't so much the vanishing gradient pro ...

  4. About CNN(convolutional neural network)

    NO.1卷积神经网络基本概念 CNN是第一个被成功训练的多层深度神经网络结构,具有较强的容错.自学习及并行处理能力.最初是为识别二维图像而设计的多层感知器,局部连接和权值共享网络结构 类似于生物神经网 ...

  5. (转)Introduction to Gradient Descent Algorithm (along with variants) in Machine Learning

    Introduction Optimization is always the ultimate goal whether you are dealing with a real life probl ...

  6. 网络流量预测 国内外研究现状【见评论】——传统的ARIMA、HMM模型,目前LSTM、GRU、CNN应用较多,貌似小波平滑预处理步骤非常关键

    Time Series Anomaly Detection in Network Traffic: A Use Case for Deep Neural Networks from:https://j ...

  7. Training Deep Neural Networks

    http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html  //转载于 Training Deep Neural ...

  8. Deep Learning in a Nutshell: Core Concepts

    Deep Learning in a Nutshell: Core Concepts This post is the first in a series I’ll be writing for Pa ...

  9. (转) Deep Learning in a Nutshell: Core Concepts

    Deep Learning in a Nutshell: Core Concepts Share:   Posted on November 3, 2015by Tim Dettmers 7 Comm ...

随机推荐

  1. java多线程(三)

    1.1什么的多线程的安全问题? 多个线程对共享资源进行访问时,引起共享资源不一致的问题.   1.2一般解决多线程安全问题的解决方案有哪些? 1.2.1 同步方法  public synchroniz ...

  2. Cloudera Kudu是什么?

    不多说,直接上干货! Cloudera Kudu是什么? kudu是cloudera在2012开始秘密研发的一款介于hdfs和hbase之间的高速分布式列式存储数据库.兼具了hbase的实时性.hdf ...

  3. 关于花瓣网header条的思考

    最近忙着俱乐部招新的事情,每一次培训都会给学员布置作业,但是作业积累在手上并没有长久的保存价值,于是萌生了一个创建俱乐部网站平台的想法.为了充当好PM这个角色,学习了Axure软件的用法,并且首次制作 ...

  4. 利用Serv-U搭建FTP服务器

    以前在学校的时候,学校的整个宿舍楼都是在一个局域网中,经常有人用个人电脑搭个网站或者FTP啊什么的,主要是进行一些影视资源的传播活动.不乏 有些资源充沛的有志青年利用业余时间翻译某岛国影视资源,利用局 ...

  5. C#继承 多态

    1.继承 允许我们根据一个类来定义另一个类.已有的类被称为的基类(父类),新的类被称为派生类(子类). 单一继承:只能有一个基类,一个基类可以派生出多个派生类,一个类别只可以继承自一个父类. 多重继承 ...

  6. c# 的默认访问修饰符(转)

    c# 的访问修饰符是private 还是 internal? 准确的说,不能一概而论. 类(class)或结构(struct)如果不是在其它类或结构中的话,它的访问类型要不就是internal, 要不 ...

  7. 11.C#中的转义符和@符号的作用

    转义符 转义符是指一个'\'+一个特殊的字符,组成的一个具有特殊意义的字符. \n:  表示换行. namespace _11.转义符 { class Program { static void Ma ...

  8. WebAPI示例

    一.新建项目 二. 代码: Models.Products实体类 public class Product { /// <summary> /// 产品编号 /// </summar ...

  9. Struts2_HelloWorld_7_2

    第一个程序的流程图: Struts2.x 的作用:把请求和展现分开.

  10. Zamplus 晶赞天机

    类型: 定制服务 软件包: car/vehicle integrated industry solution collateral tourism 联系服务商 产品详情 解决方案 概要 DMP:通常称 ...