Paper | Highway Networks
解决的问题:在当时,人们认为 提高深度 是 提高精度 的法宝。但是网络训练也变得很困难。本文旨在解决深度网络训练难的问题,本质是解决梯度问题。
提出的网络:本文提出的网络结构统称为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相乘。
有几点问题:
要求每一层的输入\(\mathbf{X}\)、输出\(\mathbf{Y}\)、变换输出\(H (\mathbf{X}, \mathbf{W}_\text{H})\)和门输出\(T (\mathbf{X}, \mathbf{W}_\text{T})\)是相同维度的。当维度不同时,我们可以简单地借助补零或降采样。本文中,作者借助一个额外的卷积层完成维度变换。
所有\(\mathbf{H}\)(\(\mathbf{T}\))的权值是共享的。
在初始化\(\mathbf{T}\)时,其偏置\(\mathbf{b}_{\text{T}}\)设为负数。这是希望网络一开始就主动寻求信息流的搬运,只在必要时执行变换。这与Gers等人的LSTM的初始化思路很像。实验证明这种初始化方法非常有效!
实验略。
2. 分析

通过对权值的可视化发现:
训练后,初始为负值的偏置不但没有上升,反而变得更负【第一排第一列的偏置初始化为-2,现在更低了;第二排初始化为-4,也更低了】。但随着深度增加,CIFAR的偏置有所提升【第二排的偏置随着深度增加在降低】。
CIFAR变换门的输出却随着深度增加而降低趋于0【第二列第二排和第一列对比】。这说明,一开始强烈的负偏置并没有让门都为0,而是促进其选择性。
对同一个输入,变换门表现得非常稀疏,如第三列所示。
如第四列所示,大多数样本随着深度增加并不会发生太大变化。主要变化发生在网络浅层。
综上,高速网络最大的意义在于:跳过没有用的层,加快信息传递。而这种没有用的层在深度网络和简单任务中是非常常见的。
还有一篇补充论文《Training Very Deep Networks》发表在2015年NIPS。有时间再看~
Paper | Highway Networks的更多相关文章
- 基于pytorch实现HighWay Networks之Train Deep Networks
(一)Highway Networks 与 Deep Networks 的关系 理论实践表明神经网络的深度是至关重要的,深层神经网络在很多方面都已经取得了很好的效果,例如,在1000-class Im ...
- Highway Networks
一 .Highway Networks 与 Deep Networks 的关系 深层神经网络相比于浅层神经网络具有更好的效果,在很多方面都已经取得了很好的效果,特别是在图像处理方面已经取得了很大的突破 ...
- Highway Networks Pytorch
导读 本文讨论了深层神经网络训练困难的原因以及如何使用Highway Networks去解决深层神经网络训练的困难,并且在pytorch上实现了Highway Networks. 一 .Highway ...
- 基于pytorch实现HighWay Networks之Highway Networks详解
(一)简述---承接上文---基于pytorch实现HighWay Networks之Train Deep Networks 上文已经介绍过Highway Netwotrks提出的目的就是解决深层神经 ...
- Highway Networks(高速路神经网络)
Rupesh Kumar Srivastava (邮箱:RUPESH@IDSIA.CH)Klaus Greff (邮箱:KLAUS@IDSIA.CH)J¨ urgen Schmidhuber (邮箱: ...
- 【论文笔记】Training Very Deep Networks - Highway Networks
目标: 怎么训练很深的神经网络 然而过深的神经网络会造成各种问题,梯度消失之类的,导致很难训练 作者利用了类似LSTM的方法,通过增加gate来控制transform前和transform后的数据的比 ...
- Paper | Squeeze-and-Excitation Networks
目录 1. 故事 2. SENet 2.1 概况 2.2 具体 3. 实验 本文的贡献点在于:通过显式建模特征注意力机制,达到了很好的效果.这是以往被默认隐式学习的操作.并且注意,此时建模出来的注意力 ...
- Paper | Feedback Networks
目录 读后总结 动机 故事 ConvLSTM图像分类网络 损失函数 与Episodic Curriculum Learning的结合 实验方法 发表在2017年CVPR. 读后总结 这篇论文旨在说明: ...
- Paper | Densely Connected Convolutional Networks
目录 黄高老师190919在北航的报告听后感 故事背景 网络结构 Dense block DenseNet 过渡层 成长率 瓶颈层 细节 实验 发表在2017 CVPR. 摘要 Recent work ...
随机推荐
- 苹果_公司开发者账号_申请DUNS number
申请DUNS number 注意事项:a.公司英文名称,例如:北京京城科技有限公司,Beijing Jingcheng Technology Co., Ltd.(Co.和Ltd.都是缩写,中间用“逗号 ...
- 45-管理 Machine
用 docker-machine 创建 machine 的过程很简洁,非常适合多主机环境.除此之外,Docker Machine 也提供了一些子命令方便对 machine 进行管理.其中最常用的就是无 ...
- RAC环境下修改字符集
跟单实例多少有点区别ORACLE 11g RAC 两节点第一步 查看字符集PRIMARY-SYS@mydb2>select userenv('language') from dual; USER ...
- Linux笔记15 使用Apache服务部署静态网站。
配置服务文件参数Linux系统中的配置文件 服务目录 /etc/httpd 主配置文件 /etc/httpd/conf/httpd.conf 网站数据目录 /var/www/html 访问日志 /va ...
- 学习Linux必看的命令(一)
学习Linux必看的命令(一) 一:什么是Linux Linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,L ...
- n个数字相加
求s=a+aa+aaa+aaaa+aa...a的值 其中a是一个数字,多少个数字相加由键盘输入控制 a = int(input("数字:")) count = int(input( ...
- [PHP] swoole直接使用二进制包
swoole提供一个编译好的二进制包,这个包连php都包含进去了,下载解压后就可以直接运行,都不用安装php 在这个地方直接下载二进制包 https://www.swoole.com/page/dow ...
- 使用webstrom开发小程序要做的设置
1.关闭rpx的错误提示 在setting里面 -->搜索inspections --> 在右侧找到invalid CSS property value 把对勾划掉
- alter对话框处理:
from selenium import webdriverd = webdriver.Firefox()d.get('file://C:\\我的代码\\selenium自动化测试\\alter.ht ...
- JS时间戳与时间字符串之间的相互转换
时间字符串 转 时间戳 /** * 时间字符串 转 时间戳 * @param {String} time_str 时间字符串(格式"2014-07-10 10:21:12") * ...