神经翻译笔记4扩展b. RNN的正则化方法

本文探讨了RNN的正则化方法,包括层归一化、扩展dropout策略以及AWD-LSTM的优化技术。层归一化解决了RNN中批归一化的局限,而对dropout的扩展如变分dropout和zoneout则有助于防止过拟合。AWD-LSTM通过组合多种正则化方法,如DropConnect、变长反向传播、嵌入共享等,提高了RNN的泛化能力。
摘要由CSDN通过智能技术生成

神经翻译笔记4扩展b. RNN的正则化方法

本系列笔记前文介绍了若干神经网络常用的泛化方法,本文将延续这一话题,介绍若干适用于RNN的泛化/正则化方法

层归一化

[Ba2016]认为批归一化(BN)虽然原理简洁能有效提升收敛速度,但是很难适用于RNN上。因为RNN的输入是变长的,因此需要对不同的时间步保存不同的统计量。但是对序列到序列任务,很难保证测试时句子会有多长,因此分时间步保存统计量不是一个好的选择。此外,实验证明当每个小批量样本的数据量太小时,BN的效果不好,而训练RNN时基本都是使用小批量样本(这段存疑)。基于以上考量,该文章提出了层归一化的方法,核心思想是在统计量里不使用跟每批样本个数相关的信息,只考虑隐藏单元的个数。具体说,对神经网络的第 l l l层,假设该层共有 H H H个隐藏节点,输入是 h l \boldsymbol{h}^l hl,激活前经线性变换 W l \boldsymbol{W}^l Wl得到的向量是 a l \boldsymbol{a}^l al,该层第 i i i个隐藏节点的的输入权重是 w i l \boldsymbol{w}_i^l wil(因此 a i l = w i l T h l a_i^l = {\boldsymbol{w}_i^l}^\mathsf{T}\boldsymbol{h}^l ail=wilThl),则层归一化使用的统计量为
μ l = 1 H ∑ i = 1 H a i l σ l = 1 H ∑ i = 1 H ( a i l − μ l ) 2 \begin{aligned} \mu^l &= \frac{1}{H}\sum_{i=1}^H a_i^l \\ \sigma^l &= \sqrt{\frac{1}{H}\sum_{i=1}^H\left(a_i^l - \mu^l\right)^2} \end{aligned} μlσl=H1i=1Hail=H1i=1H(ailμl)2
可见各统计量与样本个数完全无关,因此对每次只处理一条样本的情况(例如在线学习)也适用。使用层归一化后RNN隐藏单元的计算如下所示
a ( t ) = U x ( t ) + W h ( t − 1 ) μ ( t ) = 1 H ∑ i = 1 H a i ( t ) σ ( t ) = 1 H ∑ i = 1 H ( a i ( t ) − μ ( t ) ) 2 h ( t ) = tanh ⁡ [ γ σ t ⊙ ( a ( t ) − μ ( t ) ) + β ] \begin{aligned} \boldsymbol{a}^{(t)} &= \boldsymbol{U}\boldsymbol{x}^{(t)} + \boldsymbol{W}\boldsymbol{h}^{(t-1)} \\ \mu^{(t)} &= \frac{1}{H}\sum_{i=1}^H a_i^{(t)} \\ \sigma^{(t)} &= \sqrt{\frac{1}{H}\sum_{i=1}^H\left(a_i^{(t)} - \mu^{(t)}\right)^2} \\ \boldsymbol{h}^{(t)} &= \tanh\left[\frac{\boldsymbol{\gamma}}{\sigma^t}\odot\left(\boldsymbol{a}^{(t)}-\mu^{(t)}\right)+\boldsymbol{\beta}\right] \\ \end{aligned} a(t)μ(t)σ(t)h(t)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值