循环神经网络——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))
    困惑度的最好的理解是"下一个词元的实际选择数的调和平均数"。
相关推荐
做萤石二次开发的哈哈7 小时前
连锁门店、园区、交通枢纽的视频如何统一汇集?应用模板的接入与分权管理详解
人工智能·物联网·音视频·二次开发·视频监控·蓝海aiot一站式工作台·萤石云开放平台
老金带你玩AI7 小时前
全程拿着手机,我让dot准备了一场AI分享
人工智能
nvd117 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
snhna7 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
架构技术专栏7 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
点云-激光雷达-Slam-三维牙齿8 小时前
100,000 Records CSV File - India Traffic Accident Analysis Dataset.7z
人工智能·数据集
TechWayfarer8 小时前
精度极限的突破:AI与IPv6如何重塑高精度IP查询
人工智能·网络协议·tcp/ip·transformer
七十二时9568 小时前
视频掉帧怎么用AI补帧
人工智能
可达智灵8 小时前
信创适配|织灵 Coda Loom 2.0 完成银河麒麟服务器操作系统 V10、V11 适配认证
人工智能·可达智灵
Wx-bishekaifayuan8 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游