Highway Networks

导读

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

一 、Highway Networks 与 Deep Networks 的关系

深层神经网络相比于浅层神经网络具有更好的效果,在很多方面都已经取得了很好的效果,特别是在图像处理方面已经取得了很大的突破,然而,伴随着深度的增加,深层神经网络存在的问题也就越大,像大家所熟知的梯度消失问题,这也就造成了训练深层神经网络困难的难题。2015年由Rupesh Kumar Srivastava等人受到LSTM门机制的启发提出的网络结构(Highway Networks)很好的解决了训练深层神经网络的难题,Highway Networks 允许信息高速无阻碍的通过深层神经网络的各层,这样有效的减缓了梯度的问题,使深层神经网络不在仅仅具有浅层神经网络的效果。

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

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

先把各个层的公式写出来

我们对W1求导:

W = W - lr * g(t)

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

三、Highway Networks Formula

Notation

(.) 操作代表的是矩阵按位相乘

sigmoid函数:

Highway Networks formula

对于我们普通的神经网络,用非线性激活函数H将输入的x转换成y,公式1忽略了bias。但是,H不仅仅局限于激活函数,也采用其他的形式,像convolutional和recurrent。

对于Highway Networks神经网络,增加了两个非线性转换层,一个是 T(transform gate) 和一个是 C(carry gate),通俗来讲,T表示输入信息经过convolutional或者是recurrent的信息被转换的部分,C表示的是原始输入信息x保留的部分 ,其中 T=sigmoid(wx + b)

为了计算方便,这里定义了 C = 1 - T

需要注意的是x,y, H, T的维度必须一致,要想保证其维度一致,可以采用sub-sampling或者zero-padding策略,也可以使用普通的线性层改变维度,使其一致。

几个公式相比,公式3要比公式1灵活的多,可以考虑一下特殊的情况,T= 0的时候,y = x,原始输入信息全部保留,不做任何的改变,T = 1的时候,Y = H,原始信息全部转换,不在保留原始信息,仅仅相当于一个普通的神经网络。

四、Highway BiLSTM Networks

Highway BiLSTM Networks Structure Diagram

下图是 Highway BiLSTM Networks 结构图: input:代表输入的词向量 B:在本任务代表bidirection lstm,代表公式(2)中的 H T:代表公式(2)中的 T,是Highway Networks中的transform gate C:代表公式(2)中的 C,是Highway Networks中的carry gate Layer = n,代表Highway Networks中的第n层 Highway:框出来的代表一层Highway Networks 在这个结构图中,Highway Networks第 n - 1 层的输出作为第n层的输入

Highway BiLSTM Networks Demo

pytorch搭建神经网络一般需要继承nn.Module这个类,然后实现里面的forward()函数,搭建Highway BiLSTM Networks写了两个类,并使用nn.ModuleList将两个类联系起来:

HBiLSTM类的forward()函数里面我们实现Highway BiLSTM Networks的的公式 首先我们先来计算H,上文已经说过,H可以是卷积或者是LSTM,在这里,normal_fc就是我们需要的H

上文提及,x,y,H,T的维度必须保持一致,并且提供了两种策略,这里我们使用一个普通的Linear去转换维度

也可以采用zero-padding的策略保证维度一致

维度一致之后我们就可以根据我们的公式来写代码了:

最后的information_flow就是我们的输出,但是,还需要经过转换维度保证维度一致。 更多的请参考Github: Highway Networks implement in pytorch

[https://github.com/bamtercelboo/pytorch_Highway_Networks]

五、Highway BiLSTM Networks 实验结果

本次实验任务是使用Highway BiLSTM Networks 完成情感分类任务(一句话的态度分成积极或者是消极),数据来源于Twitter情感分类数据集,以下是数据集中的各个标签的句子个数:

下图是本次实验任务在2-class数据集中的测试结果。图中1-300在Highway BiLSTM Networks中表示Layer = 1,BiLSTM 隐层的维度是300维。

实验结果:从图中可以看出,简单的多层双向LSTM并没有带来情感分析性能的提升,尤其是是到了10层之后,效果有不如随机的猜测。当用上Highway Networks之后,虽然性能也在逐步的下降,但是下降的幅度有了明显的改善。

References

  • Highway Networks(paper) https://arxiv.org/pdf/1505.00387.pdf
  • Training Very Deep Networks

https://arxiv.org/pdf/1507.06228.pdf

  • 为什么深层神经网络难以训练 http://blog.csdn.net/binchasing/article/details/50300069
  • Training Very Deep Networks–Highway Networks http://blog.csdn.net/cv_family_z/article/details/50349436
  • Very Deep Learning with Highway Networks http://people.idsia.ch/~rupesh/very_deep_learning/
  • Hightway Networks学习笔记 http://blog.csdn.net/sinat_35218236/article/details/73826203?utm_source=itdadao&utm_medium=referral

原文发布于微信公众号 - 深度学习自然语言处理(zenRRan)

原文发表时间:2018-03-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

用卷积神经网络处理 “图” 结构数据应该怎么办?这篇文章告诉你答案

本文要介绍的这一篇 paper 是 ICML2016 上一篇关于 CNN 在图(graph)上的应用。ICML 是机器学习方面的顶级会议,这篇文章 --<<Le...

3789
来自专栏人工智能

盘点机器学习中那些神奇的损失函数

盘点机器学习中那些神奇的损失函数 这周深圳真的变冷,以前读书的时候,只要天气变到我会冷到哆嗦就知道,快过年了,算算,还有21天,2017就过去了,我在2016年...

3556
来自专栏机器之心

教程 | 将注意力机制引入RNN,解决5大应用领域的序列预测问题

3704
来自专栏专知

吴恩达高徒语音专家Awni Hannun:序列模型Attention Model中的问题与挑战

【导读】注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入...

4206
来自专栏生信小驿站

R 梯度提升算法①

它是一种传统而重要的Boost算法,在学习时为每一个样本赋上一个权重,初始时各样本权重一样。在每一步训练后,增加错误学习样本的权重,这使得某些样本的重要性凸显出...

1013
来自专栏大数据挖掘DT机器学习

基于树的预测模型-完整教程

基于树的学习算法被认为是最好的方法之一,主要用于监测学习方法。基于树的方法支持具有高精度、高稳定性和易用性解释的预测模型。不同于线性模型,它们映射非线性关系相当...

2895
来自专栏UAI人工智能

深度学习入门第四讲

17711
来自专栏磐创AI技术团队的专栏

详解谱聚类原理

1993
来自专栏决胜机器学习

神经网络和深度学习(二) ——从logistic回归谈神经网络基础

神经网络和深度学习(二)——从logistic回归谈神经网络基础 (原创内容,转载请注明来源,谢谢) 一、概述 之前学习机器学习的时候,已经学过logisti...

4527
来自专栏机器之心

新闻太长不想看?深度解析MetaMind文本摘要新研究

选自MetaMind 作者:Romain Paulus、Caiming Xiong、Richard Socher 机器之心编译 参与:Jane W、Cindy、...

3086

扫码关注云+社区

领取腾讯云代金券