深度学习基础—语言模型和序列生成

引言

深度学习基础—循环神经网络(RNN)icon-default.png?t=O83Ahttps://blog.csdn.net/sniper_fandc/article/details/143417972?fromshare=blogdetail&sharetype=blogdetail&sharerId=143417972&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

        上篇文章,我们介绍了RNN的基本结构,本篇博客,我们就来一起看一下语言模型和序列生成,这是对RNN的一个基本应用。

1.语言模型


        在NLP中,构建语言模型是最重要最基础的工作之一,什么是语言模型?简而言之语言模型就是预测一个特定的句子出现的概率是多少。

        比如语音识别系统,我们听到一个人说了一个句子,“the apple and pear(pair) salad was delicious.”,所以那个人究竟说了什么?是 “the apple and pair salad”,还是“the apple and pear salad”?(pear和pair是近音词)。一个语音识别模型可能算出第一句话的概率是10^(-13),而第二句话的概率是10^(-10),比较这两个概率值,显然那个人说的是第二句话,因为第二句话的概率比第一句高出1000倍。

2.序列生成


        假设训练集有一句话:“Cats average 15 hours of sleep a day.”(猫一天睡15小时),将这个句子序列化,先建立一个字典,然后将每个单词都转换成对应的one-hot向量,也就是字典中的索引。

        可能某些场景我们需要定义句子的结尾,一般的做法就是增加一个额外的标记EOS(上图编号1所示),表示句子的结尾。如果想要模型能够准确识别句子结尾的话,EOS标记可以被附加到训练集中每一个句子的结尾。如果加了EOS标记,这句话就会有9个输入:有8个词和一个EOS标记(忽略标点符号)。

        如果训练集中有一些词并不在字典里,比如“The Egyptian Mau is a bread of cat.”,其中有一个词Mau并不是字典中的词,在这种情况下,可以把Mau替换成UNK标志,代表未知词。然后只针对UNK建立概率模型,而不是针对这个具体的词Mau(就是所有没有出现在字典中的词都识别为UNK)。

        构建语言模型的核心就是让模型在已经学习到某些词的基础上预测其他的词出现的概率。在第0个时间步,输入激活值a0和x1,其中x1=0向量(因为此时模型还未学到任何词,它要做的事就是针对词典每个词,预测第一个词是Cats的概率),最终会得到第一个词是Cats。在第1个时间步,由于已经预测出第一个词是Cats,因此我们令x2=y1,即输入x2=Cats和激活值a1,最终第1个时间步得到的结果应该是average,以此类推。最后一个时间步中,我们需要把上一时间步的正确结果输入,并希望预测结果为EOS。

        定义代价函数:

        总损失等于每一个时间步的预测损失求和,每一时间步的损失等于softmax层预测结果之和(长度为词典的长度)。

3.概率计算


        如果用很大的训练集来训练这个RNN,可以通过一系列开头单词像是Cars average 15或Cars average 15 hours of来预测之后单词的概率。比如现在有一个新句子,它是y1 y2 y3,现在要计算出整个句子中各个单词的概率:

        第一个softmax层会告诉我们y1的概率为p(y1),然后第二个softmax层会告诉我们考虑y1出现的情况下的概率为p(y2|y1),然后第三个softmax层告诉我们考虑y1和y2出现的情况下的概率p(y3|y1,y2),把这三个概率相乘,最后得到这个含3个词的整个句子的概率。

        这个概率计算公式也是语言模型背后的概率原理,即在已经学习到某些词(已经发生的事件)的基础上预测其他词(还未发生的事件的可能)。

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode-3-无重复字符的最长子串

题解: 1、初始化一个字典dic_hash{}。 2、初始化左指针i-1,右指针j为s的索引。 #3、初始化变量res1用3 2Q#来 |} 】、 代码:

readhat虚拟机基本操作

1.用cat显示/etc/passwd,并显示行号 2.在当前目录下创建空文件夹/web/test1 3.查看当前工作目录的命令 4.显示环境变量$PATH 5. 查看/tmp/目录的使用空间 6. 删除空目录old 要删除old,要先建立old目录---mkdir old,然后ls查看是否建立成功,再…

Java面试经典 150 题.P80. 删除有序数组中的重复项 II(004)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int removeDuplicates(int[] nums)…

基尼指数(Gini Impurity)的理解和计算

基尼不纯度简介 - Gini Impurity - 吕汉鸿 - 博客园 先看上面这个博文!!!然后再看下面的,下面这个原博文有一点问题。已修正,修正后的完整内容如下 一、基尼指数的概念 基尼指数(Gini不纯度)…

《股市行情预测软件:开发之路的探索与挑战》

《股市行情预测软件:开发之路的探索与挑战》 一、股市行情预测软件的重要性二、开发所需技术(一)数据收集与处理技术(二)数据分析技术(三)算法选择与应用(四)编程语言与开…

整合全文检索引擎 Lucene 添加站内搜索子模块

整合全文检索引擎 Lucene: 添加站内搜索子模块 1. 什么是 Lucene ? 有啥优势? Lucene 是一个开源的全文检索引擎库,由 Apache 基金会维护,官网地址:https://lucene.apache.org/ 。它提供了丰富的文本处理和搜索功能&#xff0c…

OceanBase详解及如何通过MySQL的lib库进行连接

OceanBase详解及如何通过MySQL的lib库进行连接 一、引言二、OceanBase概述1. 起源与发展2. 核心技术特点3. 应用场景三、OceanBase架构解析1. 系统架构2. 存储引擎3. 分布式架构四、如何使用MySQL的lib库连接OceanBase1. 前提条件2. 安装MySQL Connector/C3. 编写连接代码4. 编…

104. UE5 GAS RPG 实现技能火焰爆炸

这一篇文章我们再实现一个技能火焰爆炸,由于我们之前已经实现了三个玩家技能,这一个技能有一些总结的味道,对于创建技能相同的部分,长话短说,我们过一遍。 准备工作 我们需要一个技能类,继承于伤害技能基…

【力扣打卡系列】验证二叉搜索树

坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day17 验证二叉搜索树 题目描述 解题思路 前序遍历:先访问节点值,再访问左右子树有效二叉搜索树的定义 节点的左子树只包含小于当前节点的数节点的右子树只包含大于当前节…

Swarm-LIO: Decentralized Swarm LiDAR-inertial Odometry论文翻译

文章目录 前言一、介绍二、相关工作三、方法A. 问题表述B. 框架概述C. 群体系统的初始化D. 去中心化激光雷达-惯性状态估计 四. 实验A. 室内飞行B. 退化环境飞行C. 去中心化部署 五. 结论和未来工作 前言 原文:原文 准确的自我状态和相对状态估计是完成群体任务的关…

京东毫秒级热key探测框架JD-hotkey

前言 对任意突发性的,无法预先感知的热点数据,包括热点数据(如突发大量请求同一个商品)、热用户(如恶意爬虫刷子)、热接口(突发海量请求同一个接口)等,一瞬间打到我们的服…

IntelliJ IDEA 中上传项目到 Gitee 的完整指南

博主主页:【南鸢1.0】 本文专栏:git 目录 简介 1.插入intellij-gitee 2.导入下载插件 3.选择导航栏中的VCS->Share Project on Gitee 4.登录gitee 6.验证gitee仓库是否创建成功 7.上传分享项目 8.验证仓库代码是否上传成功 总结 简介 Gitee 是一个代码…

低代码可视化-按钮open-type开放能力自定义-代码生成器

微信小程序原本确实不直接支持通过点击按钮将内容分享到朋友圈的功能,但微信在后续更新中逐步放开了部分限制,允许特定内容以小程序卡片的形式分享到朋友圈。然而,这一功能仍然需要满足一定的条件,并且需要开发者进行特定的配置。…

基于springboot乐器视频学习网站设计与实现(源码齐全可用)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…

TypeScript:never 类型的神奇妙用

在 TypeScript 中,never 是一个特殊类型,表示「永不存在的值类型」,通常用于表示不可能发生的情况。它适用于抛出异常、不返回值的函数或处理逻辑上永远不会出现的分支。 以下是它的简单用法和注意事项: 1. never 的用法 1、抛…

Redis-结构化value对象的类型

文章目录 一、Redis的结构化value对象类型的介绍二、Redis的这些结构化value对象类型的通用操作查看指定key的数据类型查看所有的key判断指定key是否存在为已存在的key进行重命名为指定key设置存活时间pexpire与expire 查看指定Key的存活时间为指定key设置成永久存活 三、Redis…

解密美国 VPS 主机的核心优势与未来发展

在全球网络需求不断增长的今天,许多企业和开发者都在寻找更灵活、安全、性能优异的主机解决方案。美国 VPS 主机凭借其强大的技术支持和广泛的网络连接,成为国际用户的热门选择。本文将深入探讨美国 VPS 主机的核心优势、其在网络应用上的独特表现&#…

XSS小游戏【1-13关】

第一关 Payload&#xff1a;<script>alert(1)</script> 第二关 Payload&#xff1a;keyword<script>alert(1)</script> 发现没有成功&#xff0c;F12发现需要闭合input 标签 再次输入payload&#xff1a;aaa"><svg οnlοadalert(1)> …

Spring Boot框架:校园社团信息管理的现代化解决方案

3系统分析 3.1可行性分析 通过对本校园社团信息管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园社团信息管理系统采用SSM框架&#xff0c;JAVA作…

uniapp推送配置流程

Dcloud Dcloud注册账号 个推 了解即可 注册个推账号 ios配置流程 需配置含有推送的描述文件以及p8证书 配置推送证书 ios证书配置报技术错误&#xff08;参数错误&#xff09; TeamID-苹果开发者账号唯一的ID 安卓需配置多厂商 小米手机需要配置小米厂商 华为手机则需…