循环神经网络——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,,xt1).
这样模型需要同时预测 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(ht1,xt1). x t = P ( x t ∣ h t ) . x_t=P(x_t|h_t). xt=P(xtht).

无隐状态的神经网络

无隐状态的神经网络其实可以看做多层感知机(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} Ht1,并使用 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+Ht1Whh+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=1nlogP(xtxt1,,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=1nlogP(xtxt1,,x1))
    困惑度的最好的理解是“下一个词元的实际选择数的调和平均数”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

58岁TVB前视后近况曝光

众所周知,不少早年的TVB视帝视后如今在内地都很吃香,就比如说今年58岁的邓萃雯(雯女)。 近日由她与演员赵文瑄、张凯丽等合演的话剧《鳄鱼》在内地巡回演出,吸引了大批粉丝到场支持,不过就在雯女准备进入演…

vue3 动态配置element 的table

需求 合并行、合并标题、列宽可调整、列顺序可调整、可以控制列是否显示、列布局可保存、导出excel… 参考效果 代码 引入 npm i xlsx npm install element-plus --savetable组件 <template><div><div class"table-btn"><el-tooltip conte…

手写一个基于SpringBoot的MVC架构,默认实现CRUD和导入导出功能

文章目录 前言正文一、项目结构二、技术点三、部分核心代码3.1 core-tool 中的核心代码3.1.1 所有实体的通用父类 SuperEntity3.1.2 所有枚举的父接口 BaseEnum3.1.3 所有业务异常的父接口 BaseException 3.2 mvc-tool 中的核心代码3.2.1 CrudController 接口定义3.2.2 默认的C…

编译原理必考大题:子集法将NFA转换为DFA【详细讲解,真题实战】

写在最前&#xff0c;本文为实战向&#xff0c;解决问题的求法&#xff0c;理论基础见我的上一篇博客,当然了&#xff0c;只做题的话&#xff0c;看这个就够用了 文章目录 NFA转换为DFA如何求ε-闭包&#xff1f;如何求状态转换弧集?NFA转换为DFA的方法论真题实战例题一例题二…

MySQL学习(3):SQL语句之数据定义语言:DDL

1.SQL通用语法与分类 &#xff08;1&#xff09;通用语法 &#xff08;2&#xff09;分类 2.DDL 2.1数据库操作 show DATABASES; #查询所有数据库select DATABASE(); #查询当前数据库create DATABASE 数据库名称 [default charest 字符集] [collate 排列规则]; #default cha…

昇思25天学习打卡营第05天|sea_fish

打卡第5天&#xff0c;学习数据变换Transform&#xff0c;记录学习的内容。 数据变换 Transforms 通常情况下&#xff0c;直接加载的原始数据并不能直接送入神经网络进行训练&#xff0c;此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换&#xff08;Transf…

Perl 语言精髓:三元运算符的深度解析与应用

标题&#xff1a;Perl 语言精髓&#xff1a;三元运算符的深度解析与应用 摘要 Perl 是一种功能强大的脚本语言&#xff0c;以其灵活的语法和强大的文本处理能力而闻名。Perl 中的三元运算符是实现条件赋值和简洁表达式的强大工具。本文将深入探讨 Perl 中三元运算符的使用方法…

[NeurIPS2021] Deep Residual Learning in Spiking Neural Networks【文献精读、翻译】

深度残差学习在脉冲神经网络中的应用 Fang W, Yu Z, Chen Y, et al. Deep residual learning in spiking neural networks[J]. Advances in Neural Information Processing Systems, 2021, 34: 21056-21069. 摘要 深度脉冲神经网络 (SNNs) 因为使用离散的二进制激活和复杂的时…

讨论stl链表

讨论链表 list迭代器失效list的模拟实现创建结点类链表迭代器完成实现代码 list与vector 链表是一个序列容器&#xff0c;在任意位置都可以用常数时间插入或者删除&#xff0c;并且可以在两个方向进行迭代。 list迭代器失效 迭代器失效指迭代器所指向的结点无效&#xff0c;即该…

淘宝扭蛋机小程序开发:为消费者带来新的潮玩乐趣

在当下的消费市场&#xff0c;潮玩消费已经成为了年轻人的新宠&#xff0c;预计在近几年间潮玩市场的销售额将达到千亿元&#xff01;其中扭蛋机市场更是吸引了各个阶段的消费群体&#xff0c;在市场巨大的发展前景下&#xff0c;同时也吸引了众多投资者入局&#xff0c;市场竞…

SuperMap iDesktop

SuperMap iDesktop 介绍 SuperMap iDesktop是一款由超图公司推出的企业级插件式桌面GIS软件&#xff0c;它通过SuperMap iObjects .NET、桌面核心库和.NET Framework 4.0构建&#xff0c;集成了地图制作、空间分析、数据编辑、三维分析等多种功能于一体&#xff0c;为用户提供…

el-date-picker限制开始时间不能大于结束时间,且结束不能小于开始时间

<div class"des-status-df">开始</div><div class"block"><el-date-picker:picker-options"startDatePicker"v-model"startTime"type"datetime"placeholder"选择日期时间"></el-date-…

标准版回收站的商品怎么删除?

管理后台/维护/数据维护/清除数据 里面就可以清空回收站的商品

深度解析:scikit-learn Pipeline记忆功能的秘密

标题&#xff1a;深度解析&#xff1a;scikit-learn Pipeline记忆功能的秘密 摘要 scikit-learn&#xff08;简称sklearn&#xff09;是Python中一个广泛使用的机器学习库&#xff0c;它提供了许多用于数据挖掘和数据分析的工具。Pipeline是sklearn中一个强大的功能&#xff…

Qt---xxx.pro: Missing closing brace(s).

丢失了关闭括号 出现这个问题&#xff0c;可以找一下pro文件中是不是少括号了。 CONFIG(debug, debug|release) {TARGET $$join(TARGET,,,d)ROUTDIR $$PWD/../build/debug } else {TARGET $$join(TARGET,,,)ROUTDIR $$PWD/../build/release 我本来是这么写的&#xff0c…

Postman自动化测试实战:使用脚本提升测试效率

在软件开发过程中&#xff0c;接口测试是确保后端服务稳定性和可靠性的关键步骤。Postman作为一个流行的API开发工具&#xff0c;提供了强大的脚本功能来实现自动化测试。通过在Postman中使用脚本&#xff0c;测试人员可以编写测试逻辑&#xff0c;实现测试用例的自动化执行&am…

Flink作业执行之 4.JobGraph

Flink作业执行之 4.JobGraph 1. 入口 前文了解了由Transformation到StreamGraph的过程&#xff0c;StreamGraph即作业的逻辑拓扑结构。 生成逻辑结构后&#xff0c;接下来的操作往往是对逻辑结构的优化。在很多组件中都是这样的处理&#xff0c;如hive、spark等都会执行“逻辑…

C++中main函数的参数、返回值分别什么意思?main函数返回值跟普通函数返回值一样吗?

在C中&#xff0c;main函数是程序的入口点&#xff0c;即程序开始执行的地方。main函数可以有两种形式的签名&#xff08;signature&#xff09;&#xff1a; 标准的main函数&#xff0c;不接受任何参数&#xff0c;也不返回任何值&#xff1a; int main() {// 代码... }带有参…

os实训课程模拟考试(选择题复习)

目录 一、操作系统的基本功能和设计目标 &#xff08;1&#xff09;基础知识 &#xff08;2&#xff09;题目与答案 1、操作系统是一组 B &#xff08;单选&#xff09; 2、以下哪项不是操作系统关心的主要问题&#xff1f;D &#xff08;单选&#xff09; 3、下列关于…