循环神经网络简解——RNNLSTM

Posted 无乎648

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环神经网络简解——RNNLSTM相关的知识,希望对你有一定的参考价值。

循环神经网络

1、序列数据

序列数据是常见的数据类型,前后数据通常具有关联性
例如句子cats average 15 hours of sleep a day”

2、语言模型

语言模型是自然语言处理(NLP, Natural Language Processing)重要技术
NLP中常把文本看为离散时间序列,一段长度为T的文本的词依次为w1, W 2, … , WT其中 wt(1 ≤ t ≤T)是时间步(Time step) t的输出或标签
语言模型将会计算该序列概率P(W 1 , w2 ,… , WT)
“Cats average 15 hours of sleep a da y”
八个单词==>T=8
列如: chu fang li de shi you yong wan le
p(厨,房,里,的,食,油,用,完,了)>p(厨,房,里,的,石,油,用,完,了)

语言模型计算序列概率:
P(w1 , w2, . . . , wT)=1P(wt | w1, … . , wt_1 ).
P(我,在,听,课)=P(我)*P(在│我)*P(听│我,在)*P(听│我,在,听)
统计语料库(Corpus)中的词频,得到以上概率,最终得到P(我,在,听,课)
缺点:时间步t的词需要考虑t-1步的词,其计算量随t呈指数增长

3、循环神经网络RNN

RNN是针对序列数据而生的神经网络结构,核心在于循环使用网络层参数,避免时间步增大带来的参数激增,并引入隐藏状态(Hidden State)用于记录历史信息,有效的处理数据的前后关联性。

隐藏状态(Hidden state)用于记录历史信息,有效处理数据的前后关联性激活函数采用Tanh,将输出值域限制在[-1,1],防止数值呈指数级变化

参数矩阵 [ W x h 、 W h h 、 W h q ] [W_xh、W_hh、W_hq] [WxhWhhWhq]

RNN 是通过时间返向传播(backpropagation through time)


反向传播推导过程:
∂ L ∂ W q h = ∑ t = 1 T p r o d ( ∂ L ∂ o t , ∂ o t ∂ W q h ) = ∑ t = 1 T ∂ L ∂ o t h t T \\frac\\partial L \\partial W_qh=\\sum_t=1^Tprod(\\frac\\partial L\\partial o_t,\\frac\\partial o_t\\partial W_qh)=\\sum_t=1^T\\frac\\partial L\\partial o_t h_t^T WqhL=t=1Tprod(otL,Wqhot)=t=1TotLhtT
∂ L ∂ h T = p r o d ( ∂ L ∂ o T , ∂ o T ∂ h T ) = W q h T ∂ L ∂ o t \\frac\\partial L \\partial h_T=prod(\\frac\\partial L\\partial o_T,\\frac\\partial o_T\\partial h_T)=W_qh^T\\frac\\partial L\\partial o_t hTL=prod(oTL,hToT)=WqhTotL
∂ L ∂ h t = p r o d ( ∂ L ∂ o t + 1 , ∂ h t + 1 ∂ h t ) + p r o d ( ∂ L ∂ o t , ∂ o t ∂ h t ) = W h h T ∂ L ∂ h t + 1 + W q h T ∂ L ∂ o t \\frac\\partial L \\partial h_t=prod(\\frac\\partial L\\partial o_t+1,\\frac\\partial h_t+1\\partial h_t)+prod(\\frac\\partial L\\partial o_t,\\frac\\partial o_t\\partial h_t)=W_hh^T\\frac\\partial L\\partial h_t+1+W_qh^T\\frac\\partial L\\partial o_t htL=prod(ot+1L,htht+1)+prod(otL,htot)=WhhTht+1L+WqhTotL
∂ L ∂ h t = ∑ i = t T ( W h h T ) T − i W q h T ∂ L ∂ o T + t − i \\frac\\partial L \\partial h_t=\\sum_i=t^T(W_hh^T)^T-iW_qh^T\\frac\\partial L\\partial o_T+t-i htL=i=tT(WhhT)TiWqhToT+tiL
∂ L ∂ W h x = p r o d ( ∂ L ∂ h t , ∂ h t ∂ W h x ) = ∑ t = 1 T ∂ L ∂ h t x t T \\frac\\partial L \\partial W_hx=prod(\\frac\\partial L\\partial h_t,\\frac\\partial h_t\\partial W_hx)=\\sum_t=1^T\\frac\\partial L\\partial h_t x_t^T WhxL=prod(ht学习笔记TF017:自然语言处理RNNLSTM

浅谈RNNLSTM + Kreas实现及应用

深度学习:浅谈RNNLSTM+Kreas实现与应用

对于RNNLSTM等序列模型的数据集构建的一些理解

记忆网络RNNLSTM与GRU

几句话总结一个算法之RNNLSTM和GRU