RNN和LSTM在NLP中的应用(含部分论文及代码)

本文中的RNN是指Recurrent neural network,循环神经网络,而不是递归神经网络,Recursive neural network。

循环神经网络的核心在于利用相同的权值,即权值共享,这样可以减少需要学习的参数,提高学习效率。

典型RNN结构示例如下

640?wx_fmt=png

这里的输入以单词为例,实际中输入的通常是词向量,则在某个时刻输入的单词首先需要通过词嵌入将该单词映射到某个空间中,比如针对某个单词或词语

640?wx_fmt=png

映射之后的形式示例为

640?wx_fmt=png

然后再映射到隐含层

640?wx_fmt=png

640?wx_fmt=png

其中h0是初始的隐含层状态。

最后映射到输出层

640?wx_fmt=png

输出层本质上可以看做一个分布,比如

640?wx_fmt=png

该示例中出现概率最大的是books这个单词。

循环神经网络理论上可以处理任意长度的输入,同时模型的大小不会因为输入长度更长而变大。另外,理论上可以利用先前多步的信息,不同时间节点的权值共享,因此表示可以共享。

虽然循环神经网络具有挺多优势,但是这种循环计算带来的计算量也比较大,因此速度较慢,事实上,很难利用先前多步的信息。

循环神经网络中比较常用的损失函数为交叉熵损失函数,形式如下

640?wx_fmt=png

整体损失为所有损失取均值

640?wx_fmt=png

循环神经网络的反向传播公式如下

640?wx_fmt=png

需要注意的是,在t步跟t-1步所依赖的项数是不同的,因此这种反向传播也称时间段反向传播,BPTT(backpropagation through time)。

评价语言模型的指标可以使用混乱度,公式如下

640?wx_fmt=png

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值