先来回顾一下潜变量(latent variable)自回归模型,
![](https://img-blog.csdnimg.cn/25f4f1b68f0846fb91ee87ffc826e52d.jpeg)
RNN神经网络就是一个潜变量自回归模型,简单RNN和MLP很相似,就是多了,初始的隐藏状态h是全0。
![](https://img-blog.csdnimg.cn/135e89c9b20c4b78bb005a091affa86b.jpeg)
怎么样衡量语言模型的好坏(evaluation metrics)?用平均交叉熵,困惑度。语言模型其实就是一个分类模型,假设字典大小m,有m个独一无二的token,每次预测下一个词是什么,就是一个m类的分类问题,因此可以用交叉熵。若语言序列长度n,则做n次预测,因此有n次交叉熵平均:
![](https://img-blog.csdnimg.cn/bb4a7d0b4e224badbd6220b75a9f64f1.png)
对困惑度的理解:困惑度等于2,表示候选词可能是2个词概率都很高,2个候选词选一个,困惑度为k大概是这k个词都有可能。
RNN一般需要梯度剪裁来预防梯度爆炸。
g:所有层上的梯度放在一个向量里。g的长度是l2-norm, 一般等于5或10,如果g长度很大,超过5或10,这个操作就会将其拉回5或10。
附1-RNN中一些维度:
![](https://img-blog.csdnimg.cn/17c4a3a175874021a54154855509ff3e.jpeg)
附2-潜变量和隐变量的区别:
![](https://img-blog.csdnimg.cn/6a7dafb13d2c401db587fb1fc5ee8a16.jpeg)