Sequence to Sequence model

基础模型

基础模型是用RNN模型,前部分是encoder用来寻找法语输入的编码,后半部分是decoder用来生成英文翻译作为输出,每次输出一个单词,直到输出结束标志如EOS。

下面是另一个例子,在CNN模型输出层之前会输出图片的向量,我们将这个向量输入到RNN模型,然后让RNN模型输出标题,直到遇到结束符

可以看到上述两个基础模型更像是语言模型的特化版本,语言模型的输入是0向量,而这两个模型的输入是Encoder的输出。

选择最可能的输出

在上面的基础模型中,有了Encoder的输出作为decoder的输入,decoder是一个特化的语言模型,它用来评估一个序列在特定输入下的概率,我们需要挑选出概率最大的输出。

这里我们不能使用上面所说的类似贪心的方式输出,即每轮输出都选用概率最大的下个单词,并将其作为下一轮输出的输入。课程举了一个例子,比如翻译时,前两个输入是Jane is,预测第三个单词时在语言模型中going命中的概率通常要大于visiting,这样会导致语言模型生成了下面的输出,但是可以看到下面的输出质量是不如上面的。

但是所有单词的任意组合是指数形式上涨的,我们没法评估所有的单词组合的概率,因此需要有近似算法来挑选出可能得输出加以评估。

Beam Search

基础版本

以下图词库大小为10000,Beam width为3作为例子,将Encoder的输出作为Decoder输入,并预测下个词的概率之后,选取概率最高的3个单词,分别作为下一轮输入,再预测下一轮输出,一共会有30000个概率,再选取最高的3个,重复上述操作。下面两张图代表了两轮迭代,直到迭代到EOS。

优化版本
打分优化

上面基础版本中最大化的概率函数存在一些问题:

1. 一个序列的概率是每词条件输入的概率连乘,概率都是小于1的,这会导致越乘越小,类似梯度消失问题。

2. 最大化这个概率函数会倾向于选取更短的序列,因为每多一个单词就要多乘一个小于1的数字。

解决上面问题可以分为两步:

1. 首选对概率连乘函数取log,因为是单调递增函数不影响最终排序结果,而且避免了小数连乘,可以解决上面第一个问题,但是依然存在序列越长分数越低的问题

2. 分数乘一个系数\frac{1}{T_y^\alpha }T_y为序列长度,\alpha为超参。

Beam Width选择

没有固定值,上面例子中使用的3,实际生产中可能会用10、100,在学术界为了发表论文时用更准确的数字可能会用1000甚至3000。但是随着B的增长,收益是边际效益递减的。实际应用中可以使用一组备选测试实际效果。

另外不管B多大,Beam Search不能保证返回的全局最优的,但是它执行效率非常高。

误差分析

使用误差分析判断输出结果(比如翻译)不准确的问题,应该归因到RNN模型本身,还是应该归因于B的超参选择有问题。

如下图,可以用你的模型分别计算准确翻译和不准确翻译逐单词输入的概率结果,比较两者概率大小。如果模型认为准确结果的概率更大可以归因于B,而如果确实准确结果的概率就是小于不准确结果,说明是模型本身的问题。

然后对于更多翻译不准确的误差进行分析,分析B导致错误和RNN模型导致错误的比例,来确定后续的改进方向。

BLEU Score(只用于评估机器翻译输出结果,跟模型本身无关)

对于不同的翻译结果如何进行评估是个问题,现在通常使用BLEU分来进行评估。BLEU全称 bilingual evaluation understudy,表达的意思是人类评估的替补。这是2002年提出的评估机器翻译的论文,这篇论文大大推动了机器翻译领域的发展。

比如下图,我们可以将机器翻译的输出了7个the,the在准确翻译中存在,可以认为精确度为7/7;也或者改进的精准度计算中,分子是reference中the出现次数,分母是机器翻译输出中出现次数,则为2/7

我们也可以评估一起出现的临近的两个单词的命中情况,如下图。

即,同理可推广到相邻的n个单词的命中概率

最终定义

所以最终定义如下,这里增加了一个BP(brevity penalty)简短惩罚系数,因为越短的输出会让你更容易在reference中命中,这会让模型倾向于输出更短的翻译,增加简短惩罚系数避免这种倾向,论文中给出的BP定义见下图。

Attention 模型

基础模型的缺陷

前面的基础模型存在一个问题,就是对于长句子的翻译效果较差,这是因为Encoder先输入完所有单词,然后给出一个输出到Decoder,这个输出需要记忆整个长句子是比较困难的,所以随句子扁长,效果会衰退。

而人类进行翻译时,往往是边读边翻译,而不是读完整个句子再翻译。

模型结构

区别于基础模型,其Encoder还是一个RNN类(比如图里的BiRNN)模型,Decoder也是个RNN模型,但是它的输入不再只有Encoder的一个输出,而是在每一个时间步上都将上一轮输出S^{<t-1>}及Encoder中几个时间步上的输出根据注意力系数加权C^{<1>}=\sum_{t^{'}}^{}\alpha ^{<t,t^{'}>}a^{<t^{'}>}作为输入,其中a^{t^{'}}=({​{\overset{\rightarrow }{a}}}^{t^{'}},{​{\overset{\leftarrow }{a}}}^{t^{'}})。这类似于人类翻译,翻译时会考虑附近的一些单词进行翻译。

每轮迭代所有注意力系数之和为1,这里还有个问题就是注意力系数如何计算

注意力系数的计算

通过额外创建一个小模型(如下图左下角,只有一层),用来预测e^{<t,t^{'}>},并通过softmax函数计算\alpha ^{<t,t^{'}>}。这个模型也在语言模型训练过程的反向传播中通过梯度下降更新。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

verilog练习:i2c slave 模块设计

文章目录 前言1.结构2.代码2.1 iic_slave.v2.2 sync.v2.3 wr_fsm.v2.3.1 状态机状态解释 2.4 ram.v 3. 波形展示4. 建议5. 资料总结 前言 首先就不啰嗦iic协议了&#xff0c;网上有不少资料都是叙述此协议的。 下面将是我本次设计的一些局部设计汇总&#xff0c;如果对读者有…

【竞技宝】PGL瓦拉几亚S4预选:Tidebound2-0轻取spiky

北京时间2月13日,DOTA2的PGL瓦拉几亚S4预选赛继续进行,昨日进行的中国区预选赛胜者组首轮Tidebound对阵的spiky比赛中,以下是本场比赛的详细战报。 第一局: 首局比赛,spiky在天辉方,Tidebound在夜魇方。阵容方面,spiky点出了幻刺、火枪、猛犸、小强、巫妖,Tidebound则是拿到飞…

Android RenderEffect对Bitmap高斯模糊(毛玻璃),Kotlin(1)

Android RenderEffect对Bitmap高斯模糊(毛玻璃)&#xff0c;Kotlin&#xff08;1&#xff09; import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.HardwareRenderer import android.graphics.PixelFormat import android.graphic…

AI前端开发的崛起与ScriptEcho的助力

近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术飞速发展&#xff0c;深刻地改变着软件开发的格局。尤其是在前端开发领域&#xff0c;AI的应用越来越广泛&#xff0c;催生了对AI写代码工具的需求激增&#xff0c;也显著提升了相关人才的市场价值。然而&#xff0c;…

【Mac排错】ls: command not found 终端命令失效的解决办法

【TroubleShooting on Mac】ls: command not found 终端命令失效的解决办法 A Solution to Solve “Command not found” of Terminal on Mac 一直在使用心爱的MacBook Pro的Terminal&#xff0c;并且为她定制了不同的Profile。 这样&#xff0c;看起来她可以在不同季节&…

DexVLA:通用机器人控制中具有插件式扩散专家的视觉语言模型

25年2月来自美的集团和华东师范的论文“DexVLA: Vision-Language Model with Plug-In Diffusion Expert for General Robot Control”。 让机器人能够在不同的环境中执行不同的任务是机器人学习的核心挑战。虽然视觉-语言-动作 (VLA) 模型已显示出可泛化机器人技能的前景&…

【微服务学习一】springboot微服务项目构建以及nacos服务注册

参考链接 3. SpringCloud - 快速通关 springboot微服务项目构建 教程中使用的springboot版本是3.x&#xff0c;因此需要使用jdk17&#xff0c;并且idea也需要高版本&#xff0c;我这里使用的是IDEA2024。 环境准备好后我们就可以创建springboot项目&#xff0c;最外层的项目…

DeepSeek 助力 Vue 开发:打造丝滑的返回顶部按钮(Back to Top)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

deepseek大模型,本地搭建deepseek模型,springai调用本地deepseek模型,java调用deepseek大模型api

文档对应的视频地址&#xff1a; https://www.bilibili.com/video/BV1V8NBevEjk/?spm_id_from333.1387.homepage.video_card.click&vd_source14d27ec13a4737c281b7c79463687112SpringAI调用本地deepseek模型 一、 使用deepseek步骤 官网注册账号 地址&#xff1a; https…

大模型语言简介

大模型语言能做什么 信息提取 将长段文字中的信息抽取出来并且以结构化的方式输出。相比起传统NLP的方式&#xff0c;大模型在泛化能力上有非常大的提升&#xff0c;并且开发成本要低2个数量级。应用场景包括&#xff1a;论文论点论据提取、用户画像提取、舆情分析、病例结构…

计算机毕业设计Python旅游评论情感分析 NLP情感分析 LDA主题分析 bayes分类 旅游爬虫 旅游景点评论爬虫 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

FreeRtos实时系统: 十二.FreeRTOS的队列集

FreeRtos实时系统: 十二.FreeRTOS的队列集 一.队列集简介二.队列集相关API函数三.队列集操作实验 一.队列集简介 左边的接收任务会在没接收到队列时会阻塞&#xff0c;如果前面释放信号量这时该任务也获取不到信号量。 右边使用队列集如果获取到&#xff0c;判断句柄是谁&#…

vsftpd 编译安装流程

目录 vsftpd 编译安装流程1、下载源码包并上传致服务器解压2、进入源码目录后编译源码文件3、将对应文件安装到指定位置4、准备 vsftpd 的运行环境5、启动 vsftpd 服务进行测试6、编译安装说明 vsftpd 编译安装流程 1、下载源码包并上传致服务器解压 源码包下载地址&#xff1…

【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决

问题描述 我们将Debug版本的安装包发送到手机上安装&#xff0c;会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码&#xff1a; android.injected.testOnlyfalse 最后点击“Sync now”&#xff0c;等待重新加载gradle资源即可 后面我们重新编译Debug安装…

计算机网络-八股-学习摘要

一&#xff1a;HTTP的基本概念 全称&#xff1a; 超文本传输协议 从三个方面介绍HTTP协议 1&#xff0c;超文本&#xff1a;我们先来理解「文本」&#xff0c;在互联网早期的时候只是简单的字符文字&#xff0c;但现在「文本」的涵义已经可以扩展为图片、视频、压缩包等&am…

八大排序——归并排序

目录 1.基本思想 2.动态图 3.分解的时候我们可以使用递归的方式进行 代码解释 1. main 方法 2. mergeSort 方法 3. merge 方法 示例运行过程 初始数组 每轮排序后的数组 代码总结 合并两个有序序列 1.基本思想 归并排序就是递归得将原始数组递归对半分隔&#xff0c…

C++ Primer 跳转语句

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

Elasticsearch:15 年来致力于索引一切,找到重要内容

作者&#xff1a;来自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 刚刚 15 岁了&#xff01;回顾过去 15 年的索引和搜索&#xff0c;并展望未来 15 年的相关内容。 Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章&#xff08;带有标志性的…

后稀缺社会的经济模型:当技术突破资源边界时的范式革命

文章目录 引言:走出马尔萨斯陷阱一、技术基础:构建后稀缺社会的四大支柱1.1 自动化生产系统:边际成本趋零的物理基础1.2 能源基础设施:聚变-光伏-储能的黄金三角二、经济模型转变:从稀缺范式到丰裕范式2.1 传统经济模型的失效2.2 新价值方程的涌现三、后稀缺经济的三层架构…

macOS部署DeepSeek-r1

好奇&#xff0c;跟着网友们的操作试了一下 网上方案很多&#xff0c;主要参考的是这篇 DeepSeek 接入 PyCharm&#xff0c;轻松助力编程_pycharm deepseek-CSDN博客 方案是&#xff1a;PyCharm CodeGPT插件 DeepSeek-r1:1.5b 假设已经安装好了PyCharm PyCharm: the Pyth…