循环神经网络——RNN

循环神经网络

在之前NLP基础章节-语言模型中我们介绍了 n n n 元语法,其中单词 x t x_t xt 在时间步 t t t 的条件概率仅取决于前面 n n n 个单词,若是想要将之前单词的影响也加入那么模型参数数量会指数级增长。但是可能之前的单词存在重要的信息是无法舍弃的,于是我们可以参考NLP基础-序列模型中提到隐变量模型。 h t = f ( x 1 , ⋯   , x t − 1 ) . h_t = f(x_1,\cdots,x_{t-1}). ht=f(x1,⋯,xt−1).

这样模型需要同时预测 x t x_t xt 和更新 h t h_t ht,于是模型形式上就变成: h t = g ( h t − 1 , x t − 1 ) . h_t=g(h_{t-1},x_{t-1}). ht=g(ht−1,xt−1). x t = P ( x t ∣ h t ) . x_t=P(x_t|h_t). xt=P(xt∣ht).

无隐状态的神经网络

无隐状态的神经网络其实可以看做多层感知机(MLP),回顾一下MLP的模型,设隐藏层的激活函数为 ϕ \phi ϕ,小批量样本为 X X X,隐藏层的输出 H H H 计算如下:(隐藏层并不等于隐变量) H = ϕ ( X W x h + b h ) . H = \phi(XW_{xh}+b_h). H=ϕ(XWxh+bh). 接下来将隐藏层的输出 H H H 作为输出层的输入: O = ϕ ( H W h q + b q ) . O=\phi(HW_{hq}+b_{q}). O=ϕ(HWhq+bq).

这样的模型我们已经很熟悉了。接下来看隐状态的神经网络。

有隐状态的神经网络

与多层感知机不同的是,我们需要保存前一个时间步的隐藏变量 H t − 1 H_{t-1} Ht−1,并使用 W h h W_{hh} Whh 作为该隐变量的权重 H t = ϕ ( X t W x h + H t − 1 W h h + b h ) . H_t=\phi(X_tW_{xh}+H_{t-1}W_{hh}+b_h). Ht=ϕ(XtWxh+Ht−1Whh+bh). O t = H t W h q + b q . O_t=H_tW_{hq}+b_q. Ot=HtWhq+bq.

困惑度(Perplexity)

这里的困惑度是针对语言模型的质量的一个评分标准。一个好的语言模型能够用高度准确的词元来预测我们接下来会看到什么。 考虑一下由不同的语言模型给出的对"It is raining ..."("...下雨了")的续写:

  1. "It is raining outside"(外面下雨了);
  2. "It is raining banana tree"(香蕉树下雨了);
  3. "It is raining piouw;kcj pwepoiut"(piouw;kcj pwepoiut下雨了)。
    例1无疑是正确的,逻辑连贯符合情理的。而例2虽然正确拼写但句子没有逻辑没有意义。例3则根本没有正确的拼写。
    根据信息论知识,如果想要压缩文本,我们可以根据当前词元集预测的下一个词元。 一个更好的语言模型应该能让我们更准确地预测下一个词元。 因此,它应该允许我们在压缩序列时花费更少的比特。 所以我们可以通过一个序列中所有的 n n n 个词元的交叉熵损失的平均值来衡量:
    1 n ∑ t = 1 n − log ⁡ P ( x t ∣ x t − 1 , ⋯   , x 1 ) \frac 1n\sum_{t=1}^{n}-\log P(x_t|x_{t-1},\cdots,x_1) n1t=1∑n−logP(xt∣xt−1,⋯,x1)
    其中 P ( ) P() P() 由语言模型给出,而困惑度则是上式的指数:
    exp ⁡ ( − 1 n ∑ t = 1 n log ⁡ P ( x t ∣ x t − 1 , ⋯   , x 1 ) ) \exp(-\frac 1n\sum_{t=1}^{n}\log P(x_t|x_{t-1},\cdots,x_1)) exp(−n1t=1∑nlogP(xt∣xt−1,⋯,x1))
    困惑度的最好的理解是"下一个词元的实际选择数的调和平均数"。
相关推荐
biter00882 分钟前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
吃个糖糖9 分钟前
35 Opencv 亚像素角点检测
人工智能·opencv·计算机视觉
qq_5290252926 分钟前
Torch.gather
python·深度学习·机器学习
IT古董1 小时前
【漫话机器学习系列】017.大O算法(Big-O Notation)
人工智能·机器学习
凯哥是个大帅比1 小时前
人工智能ACA(五)--深度学习基础
人工智能·深度学习
m0_748232921 小时前
DALL-M:基于大语言模型的上下文感知临床数据增强方法 ,补充
人工智能·语言模型·自然语言处理
szxinmai主板定制专家1 小时前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
海棠AI实验室1 小时前
AI的进阶之路:从机器学习到深度学习的演变(三)
人工智能·深度学习·机器学习
机器懒得学习2 小时前
基于YOLOv5的智能水域监测系统:从目标检测到自动报告生成
人工智能·yolo·目标检测