自用,都是ppt截图
训练一个RNN语言模型
预测的结果和真实的结果,损失函数为交叉熵
对每一步的交叉熵损失取平均,得到整体损失
但是计算每个单词的损失,计算量很大,提到了随机梯度下降
RNN反向传播
推导,chain rule
反向求导,梯度求和
用RNN生成文本~
评估语言模型
对语料库概率取倒数,T单词数量,1/T进行标准化,不这样做的话,随着语料库的增加,perplexity会越来越小
对perplexity取log再取e,发现了exp(交叉熵),这样一来,在训练语言模型,使交叉熵损失最小化的同时,也使perplexity更小。
而perplexity越小越好,因为它是语料库概率的倒数,我们希望语言模型使这个概率更大,也就是perplexity更小
为什么关注语言建模
1.语言建模是基准测试任务,帮助我们衡量在语言理解上的发展
2.是很多NLP任务的一部分,尤其涉及到生成文本和估计文本概率的
简要回顾
RNN不是语言模型,我们用RNN来构建语言模型
用RNN来做句子分类
可以选择最后一个隐藏状态作为sentence encoding,最后一个隐藏状态在RNN中用来预测下一个单词,设定它包含了之前文本的所有信息
而通常情况下更好更有效的方法是取所有隐藏状态的最大值或均值
还有其他的应用就不写在这里了,接下来的任务是了解一下双向LSTM然后学习下一课~