解决的问题:在当时,人们认为 提高深度 是 提高精度 的法宝。但是网络训练也变得很困难。本文旨在解决深度网络训练难的问题,本质是解决梯度问题。

提出的网络:本文提出的网络结构统称为highway networks,允许在多层之间的无障碍信息流动【不仅是梯度,也是特征图的流动】。

特别之处:借鉴了LSTM的思想,使用可学习的门机制,调控信息流,即提供information highways。

1. 网络结构

高速网络的每一层都有一个门\(\mathbf{T}\),其输入就是该层的输入。若输出为\(\mathbf{1}\),则执行变换(transform);若输出为\(\mathbf{0}\),则执行搬运(carry),即恒等变换。

数学表达是这样的:
\[
\mathbf{Y} = H (\mathbf{X}, \mathbf{W}_\text{H}) \cdot T (\mathbf{X}, \mathbf{W}_\text{T}) + \mathbf{X} \cdot (\mathbf{1} - T (\mathbf{X}, \mathbf{W}_\text{T}))
\]

H是highway的意思,T是transform的意思。注意是element-wise相乘。

有几点问题:

  1. 要求每一层的输入\(\mathbf{X}\)、输出\(\mathbf{Y}\)、变换输出\(H (\mathbf{X}, \mathbf{W}_\text{H})\)和门输出\(T (\mathbf{X}, \mathbf{W}_\text{T})\)是相同维度的。当维度不同时,我们可以简单地借助补零或降采样。本文中,作者借助一个额外的卷积层完成维度变换。

  2. 所有\(\mathbf{H}\)(\(\mathbf{T}\))的权值是共享的。

  3. 在初始化\(\mathbf{T}\)时,其偏置\(\mathbf{b}_{\text{T}}\)设为负数。这是希望网络一开始就主动寻求信息流的搬运,只在必要时执行变换。这与Gers等人的LSTM的初始化思路很像。实验证明这种初始化方法非常有效!

实验略。

2. 分析

通过对权值的可视化发现:

  1. 训练后,初始为负值的偏置不但没有上升,反而变得更负【第一排第一列的偏置初始化为-2,现在更低了;第二排初始化为-4,也更低了】。但随着深度增加,CIFAR的偏置有所提升【第二排的偏置随着深度增加在降低】。

  2. CIFAR变换门的输出却随着深度增加而降低趋于0【第二列第二排和第一列对比】。这说明,一开始强烈的负偏置并没有让门都为0,而是促进其选择性。

  3. 对同一个输入,变换门表现得非常稀疏,如第三列所示。

  4. 如第四列所示,大多数样本随着深度增加并不会发生太大变化。主要变化发生在网络浅层。

综上,高速网络最大的意义在于:跳过没有用的层,加快信息传递。而这种没有用的层在深度网络和简单任务中是非常常见的。

还有一篇补充论文《Training Very Deep Networks》发表在2015年NIPS。有时间再看~

Paper | Highway Networks的更多相关文章

  1. 基于pytorch实现HighWay Networks之Train Deep Networks

    (一)Highway Networks 与 Deep Networks 的关系 理论实践表明神经网络的深度是至关重要的,深层神经网络在很多方面都已经取得了很好的效果,例如,在1000-class Im ...

  2. Highway Networks

    一 .Highway Networks 与 Deep Networks 的关系 深层神经网络相比于浅层神经网络具有更好的效果,在很多方面都已经取得了很好的效果,特别是在图像处理方面已经取得了很大的突破 ...

  3. Highway Networks Pytorch

    导读 本文讨论了深层神经网络训练困难的原因以及如何使用Highway Networks去解决深层神经网络训练的困难,并且在pytorch上实现了Highway Networks. 一 .Highway ...

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

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

  5. Highway Networks(高速路神经网络)

    Rupesh Kumar Srivastava (邮箱:RUPESH@IDSIA.CH)Klaus Greff (邮箱:KLAUS@IDSIA.CH)J¨ urgen Schmidhuber (邮箱: ...

  6. 【论文笔记】Training Very Deep Networks - Highway Networks

    目标: 怎么训练很深的神经网络 然而过深的神经网络会造成各种问题,梯度消失之类的,导致很难训练 作者利用了类似LSTM的方法,通过增加gate来控制transform前和transform后的数据的比 ...

  7. Paper | Squeeze-and-Excitation Networks

    目录 1. 故事 2. SENet 2.1 概况 2.2 具体 3. 实验 本文的贡献点在于:通过显式建模特征注意力机制,达到了很好的效果.这是以往被默认隐式学习的操作.并且注意,此时建模出来的注意力 ...

  8. Paper | Feedback Networks

    目录 读后总结 动机 故事 ConvLSTM图像分类网络 损失函数 与Episodic Curriculum Learning的结合 实验方法 发表在2017年CVPR. 读后总结 这篇论文旨在说明: ...

  9. Paper | Densely Connected Convolutional Networks

    目录 黄高老师190919在北航的报告听后感 故事背景 网络结构 Dense block DenseNet 过渡层 成长率 瓶颈层 细节 实验 发表在2017 CVPR. 摘要 Recent work ...

随机推荐

  1. JS---DOM---点击操作---节点的方式---案例

    点击操作---节点的方式---案例 案例1:点击按钮,设置p变色---节点的方式做 <!DOCTYPE html> <html lang="en"> < ...

  2. 【安富莱】RTX嵌入式操作系统教程发布,支持F103,F407和F429,含81个配套例程(2017-10-17)

    前言说明:1. 首先感谢大家对我们安富莱电子一年来的支持,2016年我们会再接再厉推出更好的教程. 2. 估计也有网友会问RTX的优势在那里,针对这个问题,教程中第一章分为6条专门回答了这个问题,有兴 ...

  3. Git教程---由浅入深

    初学者很难找到一个由浅入深,学完后能立刻上手的Git教程 Git用户 V&Git专家 Git是一个工具,是目前世界上最先进的分布式版本控制系统(没有之一). 集中式的版本控制系统  V& ...

  4. spring的简易实现(一)

    [练习]spring的简易实现(一) 在第一部分我们实现读取xml的配置,然后实例化xml中的bean 首先定义一个xml和相关的class类 <?xml version="1.0&q ...

  5. C# show Environment property info name and value retrieve, Maximize the Console Window based on window resolution

    using System.Reflection; static void ShowEnvironmentInfoDemo() { Type type = typeof(Environment); Pr ...

  6. css基础,css选择器

    07.29自我总结 css基础 一.什么是CSS CSS是级联样式表 CSS术语标记语言,没有逻辑 CSS作用 完成网页内容的样式与布局 二.CSS的三种引入方式 1. 内联式 书写位置:在 head ...

  7. Java生鲜电商平台-电商数据运营统计与分析

    Java生鲜电商平台-电商数据运营统计与分析 今天分享将会分为以下几个方面来阐述: 1. 作为运营我们需要统计与分析的几个核心数据是什么? 2. 核心数据对业务的指导价值在哪里呢? 3. 作为产品PM ...

  8. OAuth2、OpenID Connect简介

    当我们在登录一些网站的时候,需要第三方的登录.比如,现在我们要登录简书https://www.jianshu.com/sign_in,我们使用微博登录,点击下方的一个微博的小按钮,就会出现这么一个地址 ...

  9. ES6-Symbol的用法 ,symbol在对象中的应用,改变值

    ES6-Symbol的用法,,symbol在对象中的应用,改变值 let a = new String; let b = new Number; let c = new Boolean; let d ...

  10. ebs oracle YTD期间费用

    select PERIOD_NAME, SEGMENT3, SEGMENT3_DESC, sum(case when SEGMENT2 = '1011' then ACCOUNTED_ACCRUAL ...