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

66 使用注意力机制的seq2seq【动手学深度学习v2】

66 使用注意力机制的seq2seq【动手学深度学习v2】

深度学习学习笔记
学习视频:https://www.bilibili.com/video/BV1v44y1C7Tg/?spm_id_from=…top_right_bar_window_history.content.click&vd_source=75dce036dc8244310435eaf03de4e330

在机器翻译时,每个生成的词可能源自句子中的不同词,将所有东西压在一起,翻译时可能不清楚来自哪一块的内容,seq2seq只用了最后一层隐藏层的输出,看不到前面的内容,还原不出对应词的位置。想要翻译对应词时找到原句子中的对应位置,于是加入注意力机制
在这里插入图片描述

加入注意力
在解码器RNN输入时,(先前讲的使用最后一个时刻的隐藏层输出作为上下文+输入的embedding concat作为解码器的输出)应该根据现在要预测值的不一样选择不是最后一个时刻的词而可能是前面几个时刻的对应的隐藏状态作为输入。

attention将编码器对应每个词的输出作为key-value,key-value 是 第 i 个词的RNN的输出。
key-value放入attention中。query是解码器的RNN在对上一个词的预测输出作为query,去attention中match下一个词需要的key-value。
于是将上下文的向量合并embedding一起进去解码器的RNN。

Seq2Seq的改进就是之前进入解码器的RNN只拿到的是最后一个时刻的隐藏层输出,现在的是允许拿出所有的词做一个加权平均,一开始用前面的那些输出,越到后面用后面那些输出。
在这里插入图片描述

在这里插入图片描述

QA:

  1. attention搜索是在当前句子搜索。
  2. BERT是在encoder中加入注意力机制,bert没有decoder
  3. enc_valid_lens 为原句子的长度,在RNN时会把每个词都padding为一样长度,enc_valid_lens就是给出原始长度,不要padding的长度
  4. 图像attention:抠很多子图,一个子图就是一个key-value
http://www.lryc.cn/news/3936.html

相关文章:

  • NextJS(ReactSSR)
  • JointBERT代码复现详解【上】
  • 进程间通信(上)
  • 【Unity3D】Unity 3D 连接 MySQL 数据库
  • vue通用后台管理系统
  • IDEA设置只格式化本次迭代变更的代码
  • 算法训练——剑指offer(Hash集合问题)
  • Element UI框架学习篇(七)
  • 【项目实战】32G的电脑启动IDEA一个后端服务要2min!谁忍的了?
  • 2022年山东省中职组“网络安全”赛项比赛任务书正式赛题
  • RibbitMQ 入门到应用 ( 二 ) 安装
  • 提取DataFrame中每一行的DataFrame.itertuples()方法
  • 基于卷积神经网络的立体视频编码质量增强方法_余伟杰
  • 【2023unity游戏制作-mango的冒险】-3.基础动作和动画API实现
  • 跨域的几种解决方案?
  • 2022年山东省职业院校技能大赛网络搭建与应用赛项正式赛题
  • 【JUC并发编程】ArrayBlockingQueue和LinkedBlockingQueue源码2分钟看完
  • GitHub个人资料自述与管理主题设置
  • Express篇-连接mysql
  • win10 安装rabbitMQ详细步骤
  • 【成为架构师课程系列】一线架构师:6个经典困惑及其解法
  • 光耦合器的定义与概述
  • 谷粒商城--品牌管理详情
  • stack、queue和priority_queue
  • 面试题(二十二)消息队列与搜索引擎
  • Spring Security in Action 第三章 SpringSecurity管理用户
  • Java面试——maven篇
  • 基于微信小程序的游戏账号交易小程序
  • Matlab绘制隐函数总结-二维和三维
  • 如何直观地理解傅立叶变换?频域和时域的理解