首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

进一步认识循环神经网络

参数学习

循环神经网络的参数学习可以通过随时间进行反向传播(Back propagation Through Time,BPTT)算法[Werbos, 1990]。图6.6给出了随时间进行反向传播算法的示例。

以随机梯度下降为例,给定一个训练样本(x, y),其中x = (x1, · · · , xT)为长度是T 的输入序列,y = (y1, · · · , yT)是长度为T 的标签序列。即在每个时刻 t,都有一个监督信息yt,我们定义时刻t的损失函数为

这里 L 为可微分的损失函数,比如交叉熵。那么整个序列上损失函数为

整个序列的损失函数L关于参数Uij的梯度为:

其中表示“直接”导数,即直对公式(6.2)中出现的Uij进行求导,得到

其中[hk]j为第k时刻隐状态的第j维。除了第i行外,其余都为0。

我们定义为第 t 时刻的损失对第 k 时刻隐藏神经元的净输入 zk的导数,则

将公式(6.15)和(6.12)代入公式(6.11)得到

将上式写成矩阵形式为

同理可得,L 关于权重 W 和偏置 b 的梯度为

长期依赖问题 将公式 (6.17) 展开得到

我们定义γ = UTdiag(f′(zi)),则在上面公式中的括号里面为γt?k。如 果γ > 1,当t?k ∞时,γt?k∞,会造成系统不稳定,也就是所谓的梯 度爆炸问题(Gradient Exploding Problem);相反,如果 γ < 1,当 t?k ∞ 时,γt?k0,会出现和深度前馈神经网络类似的梯度消失问题(Gradient Vanishing Problem)。

在循环神经网络的应用中,由于经常使用非线性激活函数为 logistic 函数或 tanh 函数作为非线性激活函数,其导数值都小于 1;并且权重矩阵 UT也不会 太大,因此经常会出现梯度消失问题。定义UT≤ γu≤ 1,diag[f′(zi)]≤ γf≤ 1,则有

经过t?k次传播之后,

如果时间间隔t?k过大,会趋向于0。

虽然简单循环网络从理论上可以建立长时间间隔的状态之间的依赖关系,

但是由于梯度爆炸或消失问题,实际上只能学习到短期的依赖关系。这就是所 谓的长期依赖问题(Long-Term Dependencies Problem)。

改进方案

为了避免梯度爆炸或消失问题,就要尽量使得diag(f′(zi))UT= 1。最直接 的方式就是选取合适的参数,同时使用非饱和的激活函数,使得 diag(f ′ (zi))UT~1。但这种方式需要足够的人工调参经验,限制了模型的广泛应用。

除了调参之外,更好的一种方式就是改变模型,比如让U = 1,同时使用 f′(zi) = 1,即

其中,W 为权重参数,g(·) 是非线性激活函数。

上述改进模型使得 ht和 ht?1之间为线性依赖关系,且权重系数为 1,这样 就不存在梯度爆炸或消失问题。但是,这种改变也丢失了神经元在反馈边上的 非线性激活的性质,因此也降低了模型的表示能力。

为了避免这个缺点,我们可以采用一个更加有效的改进策略:引入一个新 的状态ct 专门来进行线性的反馈传递,同时在ct 的信息非线性传递给ht。

其中 ht 依然为神经元在第 t 时刻的状态;而 ct 为一个新的记忆单元,用来保存 历史时刻的信息。

但这种改进依然存在一定的问题。记忆单元 c 不断累积存储新的输入信息,会发生饱和现象。假设 g(·) 为 logistic 函数,则随着时间的增长,c 会变得越来越大,从而导致 h 变得饱和。也就是说,记忆单元可以存储的信息,即网络容量(Network Capacity),是有限的。随着记忆单元存储的内容越来越多,其丢失的信息也越来越多。为了解决这个问题,Hochreiter and Schmidhuber [1997] 提出一个非常好的解决方案,就是引入门机制来控制信息的累积速度,并可以 选择遗忘之前累积的信息。这就是下节介绍的长短时记忆神经网络。

作者:邱锡鹏 犀语科技首席科学家复旦大学计算机学院,副教授

主要研究方向:深度学习、自然语言处理、自动问答系统以及表示学习。在ACL、EMNLP、IJCAI等计算机学会A类期刊、会议上发表40余篇学术论文。开源自然语言处理工具FudanNLP项目负责人,主要开发者。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180209G0I1OM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com