RNN review笔记

不知为啥,图全没了,shit

与其他算法的区别,其他算法考虑样本独立,rnn考虑样本之间有 时序,一个单词输入可以作为一个时刻。
一个batch更新权值一次,batch可以理解为句子的长度。

  首先来看RNN和普通的feed-forward网络有什么不同。RNN的网络框架如下:

   

  由结构图可以知道,RNN和feed-forward相比只是中间隐含层多了一个循环的圈而已,这个圈表示上一次隐含层的输出作为这一次隐含层的输入,当然此时的输入是需要乘以一个权值矩阵的,这样的话RNN模型参数只多了个权值矩阵。更形象的RNN图可以参考:

   

  以及图:

   

  按照上图所示,可知道RNN网络前向传播过程中满足下面的公式(参考文献Learning Recurrent Neural Networks with Hessian-Free Optimization),

一、隐层表示计算:

          (1)

:从输入层到隐层中间的参数矩阵,即图二中的灰色虚线。

:从上一个时刻输出到当前时刻隐层中间的参数矩阵,即图二中的红色实线。

:当前时刻的输入embedding,即图二中的input。

:上一个时刻的隐层输出,即图二中的state矩阵。


二、最终输出概率为一个多分类,例如分词、词性标注等,每个时刻都有多个输出值可能,经行概率归一化:

       (2)

:隐层到输出层中间的参数矩阵,即图二中的红色虚线,(公式中有多少行,就有多少个类别,得到多少个概率值)。


三、其代价函数可以是重构的误差(最小二乘法):

    

  也可以是交叉熵(softmax回归或者logistic回归):

  


【应用】:

1. 《Vinyals O, Kaiser L, Koo T, et al. Grammar as a foreign language[J]. arXiv preprint arXiv:1412.7449, 2014.》

把LSTM用于句法分析任务,文章把树状的句法结构进行了线性表示,从而把句法分析问题转成翻译问题,然后套用机器翻译的encoder-decoder框架使用LSTM解决

2. 《Palangi H, Deng L, Shen Y, et al. Deep Sentence Embedding Using the Long Short Term Memory Network: Analysis and Application to Information Retrieval[J]. arXiv preprint arXiv:1502.06922, 2015.》

使用LSTM获得大段文本或者整个文章的特征向量,用点击反馈来进行弱监督,最大化query的特性向量与被点击文档的特性向量相似度的同时最小化与其他未被点击的文档特性相似度。


其他RNN设计:
1986乔丹老爷子设计的,输出层三个单元的输出值反馈给下一个时序作为隐层的输入


LSTM (Long short-term memory)
增加三个门:input gate、ouput gate、foget gate,其他和rnn的unit一样。
input gate:和输入单元(g)一样,输入包括当前时刻的x(t)以及上一时刻的隐层输出h(t-1),输出是经过sigmoid计算的一个值ic,ic*输入单元的值来控制输入信号大小(0时不传递信号、1时全部传递)
forget gate: 控制是否忘记前一时刻隐层记忆的信息,如果f(t)=1,则不忘记;f(t)=0,则全部忘记。
internal state: 当前时刻的输入 * 输入门权值 + 上一时刻隐层输出 * 忘记门权值,即:

output gate:控制输出信号,输出信号=internal state隐层输出 * 输出门权值


网络示例:其中input gate、foget gate和output gate的 输入都为当前时刻的input和上一时刻隐层输出,并分别乘以各自权值矩阵。

计算公式如下:分别计算输入、输入门、忘记门、输出门、中间state、输出


RNN应用:



你可能感兴趣的:(算法)