CS22N学习笔记(六)Language Modeling和RNNs

NLP task:Language Modeling
a new kind of neural networks:Recurrent Neural Networks (RNNs)

Language Modeling

语言模型的基本任务是根据已经知道的文本,预测计算下一个单词。
在这里插入图片描述
更正式的说法就是,给定一系列的单词序列x(1),x(2)…x(T),计算下个单词是谁的概率:
在这里插入图片描述
那么,要用语言模型输出一段文本的概率就是:
在这里插入图片描述

n-gram Language Models

这里n-gram的意思就是n个连续单词组成的块:
在这里插入图片描述
就是用预测单词的前n-1个词,预测下个单词。
在这里插入图片描述
通过计数的比例,来计算n-gram和n-1 -gram的概率,即:
在这里插入图片描述
以句子as the proctor started the clock, the students opened their _____为例:
取4-gram,就会忽略前面所有的单词,取最后四个来预测:students opened their __,然后计算:
在这里插入图片描述

n-gram Language Models中的问题

稀疏性问题(Sparsity Problems):
由于是从语料库中计数,可能你选择的n-gram或者(n-1)-gram再语料库中出现的次数很少,造成稀疏性问题:
在这里插入图片描述
选择的n越大,条件越特殊,则稀疏的特点越明显。
储存问题(Storage Problems):选择的n越大,则需要存的n-gram越大。
在这里插入图片描述

fixed-window neural Language Model

流程原理如图所示:
在这里插入图片描述
就是简单的将前n-1个词汇输入到一个bp神经网络,然后用softmax函数得到输出的概率分布。
它有一些优点:解决了稀疏的矩阵的问题,同时无需储存n-gram
它也有缺点:对于神经网络而言,这种窗口大小不够大,另外在训练的时候,只会训练对应的参数W,而不会共享参数。
在这里插入图片描述

RNN神经网络

它的结构是这个样子:
在这里插入图片描述
课程当中是这样:
在这里插入图片描述
从左到右是时间步数的传递,里面的权重参数是不变的,用公式表示如图所示:
在这里插入图片描述

A RNN Language Model

结构如图所示:
在这里插入图片描述
输入词向量,输出下一个单词的概率分布。
它的优点:可以计算任意长度的输入,且模型不随着输出的增加而变得复杂;具有一定的记忆特性,之前的输入会对之后产生一定的影响;每个时间节点上的权重参数是一致,因此在处理输入时具有对称性。
它的缺点:计算比较缓慢;实际计算时,有多个时间步时会难以从之前获得信息。
该模型的lossfuntion:每一个输出的交叉熵代价函数求和平均数。
在这里插入图片描述在这里插入图片描述

Training a RNN Language Model

在这里插入图片描述
训练时,像SGD方法一样,分批次的输入数据,计算代价函数,反向传播,更新权重。

Backpropagation for RNNs

RNN中,代价函数对权重的总的导数,等于每个时间节点上的导数的求和。即:
在这里插入图片描述
在这里插入图片描述
用多元函数求导的链式法则可以进行推导,主要思路如图所示:
在这里插入图片描述
具体计算时,从时间步t向前计算,每计算一步求和,如图:
在这里插入图片描述

其他关于语言模型和RNN

评估语言模型:利用perplexity函数,他在本质和交叉熵代价函数相同,因此可以用来进行评估。
在这里插入图片描述
在这里插入图片描述
perplexity数值越低越好。
课程还说了一些其他应用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值