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

引言

深度学习基础—循环神经网络(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.rhkb.cn/news/463827.html

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

相关文章

kdd比赛方案

解决方案概述 采用两阶段的方法来解决比赛任务。在第一阶段,采用与 SciBERT 集成的跨编码器模型来确定源论文是否是最重要的参考文献之一。在第二阶段,利用了从目标和源论文中得出的特征,以及第一阶段的输出,输入到几个二进制分类…

抖音Ai图文故事号,AI一键生成故事图片变现,涨粉变现超快!

今天分享2个简单好上手,可批量复制,出单超快的Ai项目,那就是AI绘画壁纸号Ai图文故事号。 在抖音、小红书上,壁纸号火的一塌糊涂,新号3天涨粉1500,变现利润超过了4位数 壁纸看起来平平无奇,市场需…

面试题:JVM(三)

1. 面试题 说一说JVM的内存结构是什么样子的,每个区域放什么,各有什么特点?(快手、搜狐) JVM的内存结构,及各个结构的内容。(vivo) 详细介绍一下内存结构(墨迹天气) JVM…

ELK的ElasticStack语法

目录 传送门前言一、索引(数据库)1、创建索引2、获取索引3、删除索引 二、文档(Row行)1、创建文档2、获取文档3、修改文档4、删除文档5、高级查询(精辟)条件查询分页、指定、排序、范围查询全文检索、分组查…

leaflet绘制圆形方案

电子围栏绘制方案: 采用leaflet绘制电子围栏 可以看对应api文档 。原生是英文,所以要重定义,直接覆盖下面的 leaflet.draw-cn.js 文件L.drawLocal = {draw: {toolbar: {// #TODO: this should be reorganized where actions are nested in actions// ex: actions.undo or a…

新能源汽车空调压缩机:科技驱动的冷暖核心

一、新能源汽车空调系统概述 新能源汽车空调系统在车辆中起着至关重要的作用,它直接影响着驾乘人员的舒适度。新能源汽车空调系统主要由制冷系统、加热系统、送风系统、操纵控制系统和空气净化系统等组成。 制冷系统通常由电动压缩机、冷凝器、压力传感器、电子膨…

Javaweb梳理8——数据库设计

Javaweb梳理8——数据库设计 8 数据库设计8.1 数据库设计简介8.2 表关系(一对多)8.3 表关系(多对多)8.4 表关系(一对一) 8 数据库设计 8.1 数据库设计简介 软件的研发步骤 数据库设计概念 数据库设计就是根据业务系统的具体需…

IDEA - 快速去除 mapper.xml 黄色警告线和背景色----简化版

1.打开设置 2.去掉黄色警告线设置 3.去掉背景色设置 4.示范图

vue3中使用vue-diff工具来比较数据差异

1.安装vue-diff npm i vue-diff 2.main.js中全局注册 import VueDiff from "vue-diff"; import "vue-diff/dist/index.css";app.use(VueDiff) 3.使用 <template><div class"contain-page"><el-scrollbar height"100vh&…

w014基于Springboot校园管理系统的设计与实现

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

openGauss数据库-头歌实验1-3 创建和管理模式

一、创建和使用模式 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;基于 openGauss 学习创建模式的相关知识。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.openGauss 的常用操作&#xff0c;2.SQL 创建模式相关语…

基于springboot+vue实现的任务管理系统(源码+L文)4-103

第4章 系统设计 4.1 总体功能设计 员工&#xff0c;经理&#xff0c;管理员都需要登录才能进入任务管理系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使用者为员工和经理&#xff0c;对员工只能提供任务信息显示查询&…

PlotNeuralNet学习与入门

最近在绘制神经网络结构图&#xff0c;发现了一个开源的工具&#xff1a;PlotNeuralNet Github网址链接&#xff1a; HarisIqbal88/PlotNeuralNet: Latex code for making neural networks diagrams 一些相关的教程&#xff1a; 视频教程链接&#xff1a;【Alu】PlotNeuralN…

c怎么与python交互

ctypes是Python的一个外部库&#xff0c;可以使用python语言调用已经编译好的C语言函数以及数据类型并进行数据交换等。ctypes的官方文档在https://docs.python.org/3/library/ctypes.html 1、ctypes基本数据类型映射表 2、python调用c语言的函数库 &#xff08;1&#xff09…

less解决function中return写法在浏览器被识别成Object导致样式失败的问题

问题描述&#xff1a; 一开始写的是: baseFontSize: 37.5px;//基于屏幕尺寸/10得出的基准font-size// return失败,浏览器显示为[object Object],[object Object] .pxToRem(px){value: px / baseFontSize * 1rem;return value; } 使用height: .pxToRem(40px);之后浏览器却是这…

VR 创业之路:从《I Expect You To Die》到未来展望

今年是 Reality Labs 成立 10 周年&#xff0c;Meta 每周都会与不同的 XR 先驱进行交流&#xff0c;探讨他们在行业中的经历、经验教训以及对未来的展望。本次&#xff0c;他们与游戏设计师、作家兼 Schell Games CEO Jesse Schell 进行了深入交谈&#xff0c;了解了他的个人故…

面试经典 150 题:189、383

189. 轮转数组 【参考代码】 class Solution { public:void rotate(vector<int>& nums, int k) {int size nums.size();if(1 size){return;}vector<int> temp(size);//k k % size;for(int i0; i<size; i){temp[(i k) % size] nums[i];}nums temp; }…

数据结构 —— AVL树

目录 1. AVL的概念 2.AVL树的结构 3.AVL树的插入 3.1 平衡因子更新 4. 旋转 4.1 旋转的原则 4.2 右单旋 4.2.1 右单旋代码实现 4.3 左单旋 4.3.1 左单旋代码实现 4.4 左右双旋 4.4.1 左右双旋代码实现 4.5 右左双旋 ​编辑 4.5.1 右左双旋代码实现 5. AVL树的判断…

交换机如何实现2.5G网络传输速率和网络变压器有关吗

华强盛电子导读&#xff1a;I19926430038 交换机实现2.5G网络传输速率涉及多个因素&#xff0c;其中包括硬件设计、端口支持、传输介质以及网络协议等。网络变压器在其中扮演了一个重要的角色&#xff0c;但并不是唯一的因素。 1. **硬件设计**&#xff1a;交换机需要有支持2.…

「C/C++」C++设计模式 之 抽象工厂模式(Abstract Factory)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…