当前位置: 首页 > article >正文

跟李沐学AI:序列到序列seq2seq

机器翻译

给定一个源语言的句子,自动翻译成目标语言

两个句子可以有不同的长度

例子:机器翻译

Seq2Seq

是一个encoder和decoder的架构。编码器是一个RNN,读取输入句子(可以是双向RNN或LSTM、GRU的模型)。随后将最后一个隐状态传给解码器,解码器使用另一个RNN进行输出。

 编码器是一个没有输出的RNN。编码器最后时间步的隐状态作为解码器的初始隐状态。

训练与推理

训练时解码器使用目标句子targets作为输入进行训练。推理时只能用上一时刻的输出作为输入。

衡量生成序列好坏的BLEU

 seq2seq需要一次性预测一个句子而不是预测一个词。因此不能使用困惑度proplexity作为衡量指标。

p_n是预测中所有n-gram的精度,即从uni-gram、bi-gram...n-gram的精度。例子:

标签序列label:ABCDEF和预测序列ABBCD。其中p_{uni-gram}=4/5。因为预测序列有5个uni-gram字符,而有4个字符在label中出现,故p_{uni-gram}=4/5。同理p_2=3/4p_3=1/3p_4=0

获取p_n后即可计算BLEU:

 预测长度len_{pred}不能过短,果断产生负数,产生惩罚。同时长匹配有高权重:p_n中的n越大p_n^{1/2^n}越大(p_n<1)。

总结

Seq2Seq从一个句子生成另外一个句子。

Seq2Seq的编码器和解码器都是RNN。

将编码器最后时间的hidden state作为解码器的初始hidden stae来完成信息传递。

seq2seq常用BLEU来衡量生成序列的好坏。

 


http://www.kler.cn/a/309239.html

相关文章:

  • HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?
  • TCP/IP协议,TCP和UDP区别
  • 机器学习——损失函数、代价函数、KL散度
  • react的创建与书写
  • Qt 获取当前系统中连接的所有USB设备的信息 libudev版
  • OSS文件上传
  • 本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录
  • 影刀RPE学习——自动化
  • 地大信息-基础信息平台 GetImg 任意文件读取漏洞复现
  • http和https分别是什么?区别是什么?
  • GO GIN SSE DEMO
  • Springboot项目打war包运行及错误解决
  • SpringCloud Alibaba入门简介
  • 最优化理论与自动驾驶(一):概述
  • 你认为嵌入式软件开发的尽头是什么?
  • 了解 React 应用程序中的渲染和重新渲染:它们如何工作以及如何优化它们
  • NEXT.js 中间件 NextResponse.redirect 无效
  • 2576. 求出最多标记下标(24.9.12)
  • 【C/C++】涉及string类的经典OJ编程题
  • Mina protocol - 体验教程
  • 【每日一题】LeetCode 1184.公交站间的距离问题(数组)
  • 【大模型技术教程】FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统
  • C语言习题~day32
  • 密码学---easy_hash
  • 论文阅读: SigLit | SigLip |Sigmoid Loss for Language Image Pre-Training
  • 【Kubernetes】常见面试题汇总(二十一)