自然语言处理之LSTM、GRU

一、前言

循环神经网络RNN,无法处理长距离依赖问题,针对此问题,提出了LSTM和GRU。

二、LSTM: (Long short-term memory)

2.1 LSTM结构

在这里插入图片描述

  • 上图中左侧为RNN,右侧为LSTM结构图:RNN在隐藏层中只传递一个状态值 h h h,LSTM不仅传递 h h h,还传递一个状态值 c c c,每一个隐藏层中的神经元都接收上一时刻传递的 h t − 1 h_{t-1} ht1 c t − 1 c_{t-1} ct1,经过计算得到 h t h_{t} ht c t c_{t} ct再传入下一时刻。

在这里插入图片描述

  • 上图是LSTM的某一隐藏层的局部结构,其中包含3个门控结构:红色方框的遗忘门、绿色方框的输入门、紫色方框的输出门,3个门中包含3个sigmoid函数和2和tanh函数。
  • 使用sigmoid函数的原因是:sigmoid函数能够将输入映射到[0,1]空间中,那么咱们就可以根据映射之后的概率对于上一时刻传递的信息进行有选择的去除,保留和输出。比如sigmoid函数的值为1也就是门的全开状态,则代表所有的信息都被保留,如果sigmoid函数为0也就是门的全闭状态,则代表所有的信息都不被保留。
  • 使用tanh函数是:为了对数据进行处理,映射到[-1,1]的空间。
  • 说明:公式中 ⋅ · 表示矩阵相乘, ⊗ \otimes 表示点乘。

2.1.1 遗忘门

在这里插入图片描述
f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) (1) f_t=\sigma(W_f·[h_{t-1},x_t]+b_f)\tag{1} ft=σ(Wf[ht1,xt]+bf)(1)

  • t − 1 t-1 t1时刻传入的 h t − 1 h_{t-1} ht1与时刻 t t t的输入 x t x_t xt进行拼接,然后通过权值矩阵 W f W_f Wf转换后,加上偏置 b f b_f bf,最后通过sigmoid函数映射为 [ 0 , 1 ] [0,1] [0,1]范围内,形成遗忘门;
  • 然后通过遗忘门 f t f_t ft对上一时刻传入的 c t − 1 c_{t-1} ct1进行有选择的遗忘,将 c t − 1 c_{t-1} ct1 f t f_t ft进行点乘,得到去除一部分信息后的遗忘输出,所以遗忘门的输出值为:
    C t − 1 ⊗ f t (2) C_{t-1}\otimes f_t\tag{2} Ct1ft(2)

2.1.2 输入门

在这里插入图片描述
i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) (3) i_t=\sigma(W_i·[h_{t-1},x_t]+b_i)\tag{3} it=σ(Wi[ht1,xt]+bi)(3)

C t ~ = t a n h ( W C ⋅ [ h t − 1 , x t ] + b C ) (4) \tilde{C_t}=tanh(W_C·[h_{t-1},x_t]+b_C)\tag{4} Ct~=tanh(WC[ht1,xt]+bC)(4)

  • 输入门的输出值为:
    i t ⊗ C t ~ (5) i_t\otimes\tilde{C_t}\tag{5} itCt~(5)
  • 将遗忘门的输出值和输入门的输出值加起来,就可以得到 C t C_t Ct
    C t = C t − 1 ⊗ f t + i t ⊗ C t ~ (6) C_t=C_{t-1}\otimes f_t+i_t\otimes\tilde{C_t}\tag{6} Ct=Ct1ft+itCt~(6)
  • C t C_t Ct中保留了 t − 1 t-1 t1时刻传入的部分信息和 t t t时刻传入的经过筛选后的信息。

2.1.3 输出门

在这里插入图片描述
o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) (7) o_t=\sigma(W_o·[h_{t-1},x_t]+b_o)\tag{7} ot=σ(Wo[ht1,xt]+bo)(7)
h t = o t ⊗ t a n h ( C t ) (8) h_t=o_t\otimes tanh(C_t)\tag{8} ht=ottanh(Ct)(8)

  • 这样就计算出来t时刻的所有输出值, h t h_t ht C t C_t Ct,然后 h t h_t ht C t C_t Ct又可以传入到下一时刻来进行循环操作了。
    计算 t t t时刻的输出 y t y_t yt
    y t = g ( V ⋅ h t ) (9) y_t=g(V·h_t)\tag{9} yt=g(Vht)(9)
    上式中 V V V是隐藏层到输出层之间的权值矩阵, g ( ) g() g()是激活函数,如果是二分类采用 s i g m o i d sigmoid sigmoid,多分类则采用 s o f t m a x softmax softmax

2.2 LSTM如何缓解RNN梯度消失问题

  • RNN导致梯度消失的原因:因为tanh和sigmoid函数的导数均小于1,一系列小于1的数连乘,连乘的数一多,连乘的结果就有很大概率为0,那么参数便不能进行更新了,从而导致的梯度消失现象发生。
    在这里插入图片描述
    在这里插入图片描述

  • 虽然RNN也可以通过调整Ws来使得连乘接近于1,但是RNN是通过乘以Ws来调节,乘法数值变化较快,比较敏感,参数很难调,一不小心就超过了上界发生梯度爆炸,达不到下界不发生梯度消失。而LSTM是通过加上bf来调节,来降低梯度消失的风险,调节起来更容易,相对于RNN较好。所以之前也只是说了LSTM能相对于RNN缓解梯度消失的问题,并不能完全消除。

  • 类比到LSTM中:
    -

  • f t , i t , C t ~ f_t, i_t, \tilde{C_t} ft,it,Ct~带入 C t C_t Ct中可得:
    C t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) C t − 1 + σ ( W i ⋅ [ h t − 1 , x t ] + b i ) t a n h ( W C ⋅ [ h t − 1 , x t ] + b C ) (10) C_t=\sigma(W_f·[h_{t-1},x_t]+b_f)C_{t-1}+\sigma(W_i·[h_{t-1},x_t]+b_i)tanh(W_C·[h_{t-1},x_t]+b_C)\tag{10} Ct=σ(Wf[ht1,xt]+bf)Ct1+σ(Wi[ht1,xt]+bi)tanh(WC[ht1,xt]+bC)(10)

  • C t C_t Ct C t − 1 C_{t-1} Ct1求偏导结果为:
    ∂ C t ∂ C t − 1 = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) (11) \frac{\partial C_t}{\partial C_{t-1}}=\sigma(W_f·[h_{t-1},x_t]+b_f)\tag{11} Ct1Ct=σ(Wf[ht1,xt]+bf)(11)
    上式中取值范围为 [ 0 , 1 ] [0,1] [0,1]之间,在实际参数更新过程中,可以控制 b f b_f bf较大,使得该值更接近于1,这样即使在多次连乘的情况下,梯度也不会消失。

2.3 LSTM优缺点

  • 缺点:包含 W f , W i , W o , W c , b f , b i , b o , b c , V W_f,W_i,W_o,W_c,b_f,b_i,b_o,b_c,V Wf,Wi,Wo,Wc,bf,bi,bo,bc,V等9个参数,参数较多,调参对机器性能要求比较高;
  • 优点:有更多的参数对于模型的调节更加精确。

三、GRU: (Gate Recurrent Unit)

3.1 GRU结构

3.2 GRU内部结构

在这里插入图片描述

3.2.1 reset重置门

r t = σ ( W r ⋅ [ h t − 1 , x t ] + b r ) (12) r_t=\sigma(W_r·[h_{t-1},x_t]+b_r)\tag{12} rt=σ(Wr[ht1,xt]+br)(12)
得到重置门 r t r_t rt后,将 r t r_t rt与上一时刻传入的 h t − 1 h_{t-1} ht1进行点乘,得到重置之后的数据:
h t − 1 ′ = h t − 1 ⊗ r t (13) h_{t-1}'=h_{t-1}\otimes r_t\tag{13} ht1=ht1rt(13)
然后将得到的 h t − 1 ′ h_{t-1}' ht1 x t x_t xt进行拼接:
h ′ = t a n h ( W ⋅ [ h t − 1 ′ , x t ] + b ) (14) h'=tanh(W·[h_{t-1}',x_t]+b)\tag{14} h=tanh(W[ht1,xt]+b)(14)
这里的 h ′ h' h包含了输入信息 x t x_t xt,和经过选择后的上一时刻的重要信息 h t − 1 ′ h_{t-1}' ht1,这样达到了记忆当前状态信息的目的。

3.2.2 update更新门

z t = σ ( W z ⋅ [ h t − 1 , x t ] + b z ) (15) z_t=\sigma(W_z·[h_{t-1},x_t]+b_z)\tag{15} zt=σ(Wz[ht1,xt]+bz)(15)
z t z_t zt就是更新门,更新门同时进行遗忘和记忆的方式如下:
h t = z t ⊗ h t − 1 + ( 1 − z t ) ⊗ h ′ (16) h^t=z_t\otimes h^{t-1}+(1-z_t)\otimes h'\tag{16} ht=ztht1+(1zt)h(16)

  • 其中 z t ⊗ h t − 1 z_t\otimes h^{t-1} ztht1:表示对原本隐藏状态的选择性遗忘, z t z_t zt看做是遗忘门,遗忘 h t − 1 h_{t-1} ht1中不重要的信息;
  • ( 1 − z t ) ⊗ h ′ (1-z_t)\otimes h' (1zt)h:表示对包含当前节点信息的 h ′ h' h进行选择性记忆;
  • h t = z t ⊗ h t − 1 + ( 1 − z t ) ⊗ h ′ h^t=z_t\otimes h^{t-1}+(1-z_t)\otimes h' ht=ztht1+(1zt)h:遗忘上一时刻中 h t − 1 h^{t-1} ht1的某些信息,并记忆当前节点输入的某些维度信息。
  • 式(16)中遗忘的权重 z z z和记忆的权重 1 − z 1-z 1z是互补的,遗忘多少信息,就弥补多少信息。

3.3 GRU总结

  • GRU只有两个门,相应地参数也就比LSTM要少,效率要高,但是结果并没有多大的区别。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: bp、lstmgru和随机森林都是机器学习领域的常用算法。 BP(反向传播算法)是神经网络算法中的一种,通过前向传播将输入数据送入网络中,经过激活函数后得到输出结果,再通过反向传播来更新神经元之间的权值。BP算法可以用于分类和回归问题。 LSTM(长短时记忆网络)和GRU(门控循环单元)是递归神经网络算法中的两种常用算法。它们的主要特点是能够记忆之前的状态,可以用于序列数据的处理。LSTMGRU的不同之处在于LSTM具有三个门控单元(输入门、遗忘门和输出门),而GRU只有两个门控单元(重置门和更新门)。 随机森林是一种基于集成学习的分类和回归算法。它通过随机采样得到多个决策树,每个决策树对应一个小数据子集,最后将所有决策树的结果进行投票平均来得到最终结果。随机森林的特点是不容易过拟合,对异常值和噪声具有较好的鲁棒性,适用于处理高维和大规模数据集。 ### 回答2: BP神经网络指的是反向传播神经网络,是一种常用的基于监督学习的神经网络模型。BP神经网络包含输入层、输出层和一层或多层隐藏层,可以对任意一个函数进行逼近,因此在多个领域有着广泛的应用,如图像识别、自然语言处理等。 LSTM(长短时记忆网络)和GRU(门控循环单元)都是基于循环神经网络(RNN)的模型,解决了传统RNN中梯度消失和梯度爆炸的问题,用于处理序列数据。LSTM引入了三个门来控制信息流向和流出;GRULSTM更加简化,只有两个门,但是在实际应用中效果也很不错。这两种模型常被用于自然语言处理、语音识别、时间序列预测等领域。 随机森林是一种集成学习方法,由多个决策树组成。它能够有效地解决过拟合问题,提高模型的泛化能力。在特征选择和特征提取方面也表现得很出色,因此在分类、回归、聚类等领域都有广泛的应用。 总的来说,这四种模型在不同的领域都有自己的优势和适用范围。选择合适的模型需要考虑数据类型、问题类型、数据量、特征提取等因素,综合考虑才能在实际应用中取得最好的效果。 ### 回答3: BP神经网络(Backpropagation Neural Network,后向传导神经网络)是一种最基本的人工神经网络模型。它是一种有监督学习的算法,用于学习输入与输出之间的映射关系。BP神经网络具有全局最优性和强逼近能力,可以解决复杂的非线性问题,适用于分类、预测等各种任务。它的缺点是容易陷入局部极小值,训练时间较长,对训练数据的依赖性强,需要大量的人工干预和调整。 LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的循环神经网络(RNN),具有强大的记忆和长期依赖性建模能力。与传统的RNN相比,LSTM在输入层、遗忘门、输入门和输出门分别引入了记忆单元、遗忘门、输入门和输出门等机制,使得网络可以忘记多余信息、记住重要信息和输出有效信息。LSTM可以通过堆叠多个LSTM层来增强网络表达能力。它在任务中的表现优异,特别是在自然语言处理,时间序列预测等领域有着广泛的应用。 GRU(Gated Recurrent Unit,门控循环单元)是另一种特殊的循环神经网络,是对LSTM网络的简化和改进。GRULSTM网络非常相似,但是它只有一个更新门和一个重置门,与LSTM的三个门相比,GRU的结构更加简单,因此训练速度也更快。GRU在一些任务中的表现优于LSTM,例如文本分类、图像描述、语音识别等任务。 随机森林(Random Forest,RF)是一种基于决策树的集成学习算法。它通过随机抽取训练数据和训练特征来构建多个决策树,并通过投票或平均等方式对所有决策树的结果进行集成,取得更好的效果。随机森林可以解决维数灾难和过拟合等问题,具有较好的准确性和泛化能力,适用于回归、分类等多个领域。随机森林的优点在于其不依赖于数据分布,不需要过多的预处理,可以直接处理文本和图像数据,并且结果具有可解释性强的特点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值