(一)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. 开机后发现Win7桌面上什么都没有该如何恢复

    开机后发现Win7桌面上什么都没有该如何恢复 win7桌面上什么都没有该如何恢复:当我们打开电脑,发现win7桌面上什么都没有,那么该如何恢复呢?下面由我来介绍windows7桌面上图标不显示的解决方 ...

  2. go web 第二天 学习笔记

    package main import ( "crypto/md5" "fmt" "html/template" "io" ...

  3. [2013-02-22]info入门FAQ

    linux相关的东西,入门最快捷,最通用的方式无非查阅帮助文档. man命令很好理解,就不讲了,这里就提几个info相关的FAQ(也就3点啦) 基本操作,如何入门info 首先,输入info命令 ,进 ...

  4. node.js 下载安装及gitbook环境安装、搭建

    最近需要gitbook看文档,于是各种百度,各种安装,很多都是无法正常安装完成的,比较纠结啊 最后,终于发现一个好用的,现分享一下地址(也是给自己做个记录): 1.node.js下载地址: http: ...

  5. 生命游戏 Java

    本程序由四个类组成:其中Init_data,用于初始化各个活细胞的状态judge_state,用于判断下一代的细胞状态,并进行更新.set_color,用于给GUI界面中各个细胞涂色set_frame ...

  6. C语言中复数运算及调用blas,lapack中复数函数进行科学计算

    C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色.这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计 ...

  7. 分享45个android实例源码,很好很强大.收藏吧!!!

    andriod闹钟源代码 http://www.apkbus.com/android-20974-1-1.html android源码分享之指南针程序 http://www.apkbus.com/an ...

  8. Swiper+JS 上拉刷新

    JS // 上拉刷新                        var page = 2;            var isAjax = true;//加载数据前状态            $( ...

  9. JSONP的实现流程

    在进行AJAX的时候会经常产生这样一个报错: 看红字,这是浏览器的同源策略,使跨域进行的AJAX无效.注意,不是不发送AJAX请求(其实就是HTTP请求),而是请求了,也返回了,但浏览器‘咔擦’一声, ...

  10. windows 下 Mutex和Critical Section 区别和使用

    Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量.对象或内存空间的访问.下面是其主要的异同点(不同的地方用黑色表示). Mutex Cri ...