(一)Highway Networks 与 Deep Networks 的关系

  1. 理论实践表明神经网络的深度是至关重要的,深层神经网络在很多方面都已经取得了很好的效果,例如,在1000-class ImageNet数据集上的图像分类任务通过利用深层神经网络把准确率从84%提高到了95%,然而,在训练深层神经网络的时候却是非常困难的,神经网络的层数越多,存在的问题也就越多(例如大家熟知的梯度消失、梯度爆炸问题,下文会详细讲解)、训练起来也就是愈加困难,这是一个公认的难题。
  1. 2015年由Rupesh Kumar Srivastava等人提出的新的网络结构(Highway Networks)很好的解决了这一个问题,Highway Networks 允许信息“高速无阻碍”的通过各个神经层,这就不会出现深层网络中出现的信息阻碍的问题。在此之前,深层神经网络的深度仅仅能够达到几层或者是十几层,但是Highway Networks可以训练数十层甚至上百层的神经网络(前提是硬件设置可以支持这种大量的运算)。

(二)Deep Networks 梯度消失/爆炸(vanishing and exploding gradient)问题

1、什么是梯度消失/爆炸?

在反向传播的过程中,前面层的权重正常学习更新,而接近后面的层权重基本上不更新,导致后面的层基本上学习不到任何的东西,也就是说后面的层只是相当于对输入做了一个映射,那么这样的深层神经网络也就仅仅相当于浅层的神经网络了。

2、梯度消失/爆炸

我们先来看一下简单的深层神经网络(仅仅几个隐藏层)

先把各个层的公式写出来

C=sigmoid(W_4*H_3 +b_4)

H_3=sigmoid(W_3*H_2 +b_3)

H_2=sigmoid(W_2*H_1 +b_2)

H_1=sigmoid(W_1*x +b_1)

对W_1求导

W=W - lr * g(t)

以上公式仅仅是四个隐藏层的情况,当隐藏层的数量达到数十层甚至是数百层的情况下,一个一个的反向传播回去,当权值 < 1的时候,传到最后一层近乎0,例如,〖0.9〗^100已经是很小很小了,这就造成了只有前面几层能够正常的反向传播,后面的那些隐藏层仅仅相当于输入x的权重的映射,权重不进行更新。反过来,当权值 > 1的时候,会造成梯度爆炸,同样是仅仅前面的几层能更改正常学习,后面的隐藏层会变得很大很大。

References

Notation

欢迎转载、转载请注明出处。http://www.cnblogs.com/bamtercelboo/p/7581353.html

基于pytorch实现HighWay Networks之Train Deep Networks的更多相关文章

  1. 基于pytorch实现HighWay Networks之Highway Networks详解

    (一)简述---承接上文---基于pytorch实现HighWay Networks之Train Deep Networks 上文已经介绍过Highway Netwotrks提出的目的就是解决深层神经 ...

  2. 论文笔记:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

    Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks ICML 2017 Paper:https://arxiv.org/ ...

  3. 【论文考古】联邦学习开山之作 Communication-Efficient Learning of Deep Networks from Decentralized Data

    B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. y Arcas, "Communication-Efficient Learni ...

  4. 实践torch.fx第一篇——基于Pytorch的模型优化量化神器

    第一篇--什么是torch.fx 今天聊一下比较重要的torch.fx,也趁着这次机会把之前的torch.fx笔记整理下,笔记大概拆成三份,分别对应三篇: 什么是torch.fx 基于torch.fx ...

  5. 神经网络可视化《Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization》

    神经网络已经在很多场景下表现出了很好的识别能力,但是缺乏解释性一直所为人诟病.<Grad-CAM:Visual Explanations from Deep Networks via Gradi ...

  6. Deep Learning 8_深度学习UFLDL教程:Stacked Autocoders and Implement deep networks for digit classification_Exercise(斯坦福大学深度学习教程)

    前言 1.理论知识:UFLDL教程.Deep learning:十六(deep networks) 2.实验环境:win7, matlab2015b,16G内存,2T硬盘 3.实验内容:Exercis ...

  7. Initialization of deep networks

    Initialization of deep networks 24 Feb 2015Gustav Larsson As we all know, the solution to a non-conv ...

  8. 基于pytorch的电影推荐系统

    本文介绍一个基于pytorch的电影推荐系统. 代码移植自https://github.com/chengstone/movie_recommender. 原作者用了tf1.0实现了这个基于movie ...

  9. 论文笔记:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

    SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 2019-04-02 12:44:36 Paper:ht ...

随机推荐

  1. 5_XSS

    XSS简介 XSS(跨站脚本攻击)是指攻击者在网页中嵌入客户端脚本,通常是JavaScript编写的恶意代码,当用户使用浏览器浏览被嵌入恶意代码的网页时,恶意代码将在用户的浏览器上被解析执行.重点在“ ...

  2. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  3. SoapUI进行接口测试,怎么应对接口地址总是变化!

    如果是没有代码能力的小白,要利用工具进行接口测试的时候,经常会遇到接口地址或者接口参数变化的问题,然后不得不在他们改了接口之后,就手动去改所有的请求链接地址和接口参数!1-5个请求,我们手动改还应付的 ...

  4. Kubernetes e2e test and test framework

    前言 Kubernetes的成功少不了大量工程师的共同参与,而他们之间如何高效的协作,非常值得我们探究.最近研究和使用了他们的e2e测试和框架,还是挺有启发的. 怎样才是好的e2e测试? 不同的人写出 ...

  5. JRE 和 JDK 的区别

    JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的.   JDK顾名思义是java开发 ...

  6. DispatcherTimer和Timer(计时器)

    System.Windows.Threading.DispatcherTimer dTime;        System.Timers.Timer timer;        public Main ...

  7. mysql存储过程 基本语法

    话不多说 一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b& ...

  8. 为Markdown文件生成目录

    缘由 思路 效果 代码实现 缘由 Markdown源生文件源生不支持目录,目前比较主流的生成目录的方式(各式插件),都是转化为HTML文件.虽然HTML文件可以生成眼花缭乱的目录,但是修改起来又没有M ...

  9. 在STEP7 TIA PORTAL中,设置模块的地址和设备名(Device name)

    assign device name, ip address for PROFINET componet in TIA Portal 方法1: PLC --> online & diag ...

  10. 转: 深入Java虚拟机】之二:Class类文件结构

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17675609 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存 ...