位置: IT常识 - 正文

Transformer中解码器decoder的详细讲解(图文解释)(transformer的解码器)

编辑:rootadmin
Transformer中解码器decoder的详细讲解(图文解释)

推荐整理分享Transformer中解码器decoder的详细讲解(图文解释)(transformer的解码器),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:transformer解析,transformer编码器和解码器,transformer 解码过程,transformer encoder mask,transformer中解码器的输入output来自哪里,transformer中解码器的输入output来自哪里,transformer中解码器的输入output来自哪里,transformer 解码过程,内容如对您有帮助,希望把文章链接给更多的朋友!

假设我们想把英语句子i am good翻译成法语句子 Je Vais bein,首先将原句送入编码器,使编码器学习原句,并计算特征值,在上一篇博客中已经讲解了编码器是如何计算原句的特征值的,然后我们把从编码器求得的特征值送入解码器,解码器将特征值作为输入,并生成目标据,流程如下

 在编码器部分,我们了解到可以叠加N个解码器,同理,解码器也可以有N个叠加在一起,编码器将原句的所有特征值作为输入传给所有解码器,而非只给第一个解码器,因此一个解码器将有两个输入,一个是来自前一个解码器的输出,另一个是编码器输出的特征值

接下来我们学习解码器是如何生成目标句子的,当t=1时(t表示时间步)解码器开始工作,生成目标为句子中的第一个词,当t=2时,解码器使用当前的输入和在上一步生成的单词,来预测句子中的下一个单词,以此类推,在每一步中解码器都将上一步生成的单词与输入的词结合起来,并预测下一个单词

一个解码器模块及其所有的组件如下图所示

 从上图中可以看到,解码器内部有三个子层,分别是

1:带掩码的多头注意力层

2:多头注意力层

3:前馈网络层

与编码器模块相似,解码器模块也有多头注意力层和前馈网络层,但多了带掩码的多头注意力层,下面对它们一一进行讲解

一、带掩码的多头注意力层

 以英法翻译任务为例,假设训练数据集样本如下

解码器将输入的<sos>作为第一个标记,并在每一步中将下一个预测词与输入结合起来,以预测目标句子,直到遇到<eos>为止 

带掩码的多头注意力层就是预测与<sos>相邻的单词时,模型应该只看到<sos>,所有我们掩盖<sos>后边的所有词,因此在使用softmax函数进行归一化之前,我们需要对数值进行掩码转换,可以用负无穷去掩盖

二、多头注意力层Transformer中解码器decoder的详细讲解(图文解释)(transformer的解码器)

由下图可以看出,每个解码器中的多头注意力层都有两个输入:一个来自带掩码的多头注意力层,另一个是编码器输出的特征值 

多头注意力机制的第一步是创建三个矩阵,我们使用从上一个子层获得的注意力矩阵M创建查询矩阵Q,使用编码器输出的特征值R创建键矩阵和值矩阵,因为查询矩阵是从M求得的,所以本质上包含了目标句子的特征,键矩阵和值矩阵则含有原句的特征,因为它们是用R计算的

三、前馈网络层

 解码器的下一个子层是前馈网络层,它的工作原理与我们在编码器中用到的完全相同,此处不再赘述

四、叠加和归一组件

和在编码器部分讲到的一样,叠加和归一组件连接子层的输入和输出

五、线性层和softmax层

一旦解码器学习了目标句子的特征,我们就将顶层解码器的输出送入线性层和softmax层

线性层将生成一个logit向量,其大小等于原句中的词汇量,接下来使用softmax函数将logit向量转换成概率,然后解码器将输出具有高概率值的词的索引值

六、解码器总览

通过上图,我们可以总结出以下几点

1:首先,我们将解码器的输入转换为嵌入矩阵,然后将位置编码加入其中,并将其作为输入送入底层的解码器

2:解码器收到输入,并将其发送给带掩码的多头注意力层,生成注意力矩阵M

3:然后将注意力矩阵M和编码器输出的特征值R作为多头注意力层的输入,并再次输出新的注意力矩阵

4:把从多头注意力层得到的注意力矩阵作为输入,送入前馈网络层,前馈网络层将注意力矩阵作为输入,并将解码后的特征作为输出

5:最后我们把从解码器1得到的输出作为输入,将其送入解码器2

6:解码器2进行同样的处理,并输出目标句子的特征 

七、训练Transformer 

我们可以退哦那个过最小化损失函数来训练Transformer网络,但是应该如何选择损失函数呢,我们已经知道,解码器预测的是词汇的概率分布,并选择概率最高的词作为输出,所有我们需要让预测的概率分布和实际的概率分布之间的差异最小化,要做到这一点,可以将损失函数定义为交叉熵定义函数,我们通过最小化损失函数来训练网络,并使用Adam算法来优化训练过程

另外需要注意,为了防止过拟合,我们可以将dropout方法应用于每个子层的输入以及嵌入和位置编码的总和

创作不易 觉得有帮助请点赞关注收藏~~~

本文链接地址:https://www.jiuchutong.com/zhishi/297286.html 转载请保留说明!

上一篇:DOM(操作)(jQuery dom操作)

下一篇:vue中使用百度地图(vue使用百度地图三方标准地图清空后卡死)

  • 耳机定位怎么弄(普通蓝牙耳机丢了怎么定位)

    耳机定位怎么弄(普通蓝牙耳机丢了怎么定位)

  • 英特尔14nm用了多少年(英特尔14nm芯片是什么年代)

    英特尔14nm用了多少年(英特尔14nm芯片是什么年代)

  • 小米手机怎么下载来电铃声(小米手机怎么下载微信)

    小米手机怎么下载来电铃声(小米手机怎么下载微信)

  • 小米运行内存显示在哪里设置(小米运行内存显示怎么开)

    小米运行内存显示在哪里设置(小米运行内存显示怎么开)

  • 抖音前面为什么加个井号(抖音前面为什么有个小人)

    抖音前面为什么加个井号(抖音前面为什么有个小人)

  • 录像和音乐怎么同时进行(录像音乐是怎么加上去的)

    录像和音乐怎么同时进行(录像音乐是怎么加上去的)

  • wifi显示已保存 但是不能连接(wifi显示已保存,加密(不可上网))

    wifi显示已保存 但是不能连接(wifi显示已保存,加密(不可上网))

  • 阿里巴巴b2b业务是什么(阿里巴巴b2b业务吉祥物)

    阿里巴巴b2b业务是什么(阿里巴巴b2b业务吉祥物)

  • 钉钉悬浮窗算不算时间(钉钉悬浮窗算不算观看时长)

    钉钉悬浮窗算不算时间(钉钉悬浮窗算不算观看时长)

  • 钉钉最小化会记录时间吗(钉钉最小化会显示离开吗)

    钉钉最小化会记录时间吗(钉钉最小化会显示离开吗)

  • 为什么探探搜索不到人(为什么探探搜索不到别人用户名)

    为什么探探搜索不到人(为什么探探搜索不到别人用户名)

  • spring和spring boot区别(spring-boot-actuator)

    spring和spring boot区别(spring-boot-actuator)

  • 苹果电脑错误删除了软件怎么办(苹果电脑错误删除怎么办)

    苹果电脑错误删除了软件怎么办(苹果电脑错误删除怎么办)

  • 电脑能装几个固态硬盘(电脑装几个固态)

    电脑能装几个固态硬盘(电脑装几个固态)

  • 群发助手一次能发多少人(群发助手一次能发几条)

    群发助手一次能发多少人(群发助手一次能发几条)

  • ps特殊模糊怎么用(ps模糊指定区域)

    ps特殊模糊怎么用(ps模糊指定区域)

  • 怎么用蓝牙传视频(怎么用蓝牙传视频给另一部手机)

    怎么用蓝牙传视频(怎么用蓝牙传视频给另一部手机)

  • 手机怎么用不了耳机(万能钥匙苹果手机怎么用不了)

    手机怎么用不了耳机(万能钥匙苹果手机怎么用不了)

  • 如何清除拼多多购买记录(如何清除拼多多浏览的商品痕迹)

    如何清除拼多多购买记录(如何清除拼多多浏览的商品痕迹)

  • 苹果xsmax分辨率是2k吗(苹果xsmax分辨率贴吧)

    苹果xsmax分辨率是2k吗(苹果xsmax分辨率贴吧)

  • vnr怎么用(vnr怎么用腾讯翻译)

    vnr怎么用(vnr怎么用腾讯翻译)

  • 爱奇艺怎么取消只看片段(爱奇艺怎么取消跳过片头片尾)

    爱奇艺怎么取消只看片段(爱奇艺怎么取消跳过片头片尾)

  • 海贝音乐怎么用(海贝音乐怎么用自己的封面)

    海贝音乐怎么用(海贝音乐怎么用自己的封面)

  • a1476是ipad几(ipad a1475是什么型号)

    a1476是ipad几(ipad a1475是什么型号)

  • 【创建FTP】如何在内网创建属于自己的FTP(创建ftp软件)

    【创建FTP】如何在内网创建属于自己的FTP(创建ftp软件)

  • make命令   编译内核或源码文件(makefile 编译选项)

    make命令 编译内核或源码文件(makefile 编译选项)

  • ps怎么移动某一块(ps怎么移动某个图案)

    ps怎么移动某一块(ps怎么移动某个图案)

  • 新购车辆车船税多少钱
  • 业务招待费的财务分录
  • 如何分辨海关完税凭证的真假?
  • 印花税的账目处理
  • 汇算清缴要退税怎么做凭证呢
  • 上年结转未抵扣
  • 商品报废了还用退货吗
  • 外管证过期了一个月罚款多少
  • 收付转凭证如何排序装订
  • 提取法定盈余公积金会计分录
  • 子公司之间可以相互交易吗
  • 进销项税额的会计分录
  • 个人所得税必须得交吗
  • 非直接结算是什么意思
  • 销售库存商品会引起收入增加吗
  • 付尾款会没货吗
  • 外经证金额没开完需要核销吗
  • 营业执照副本编号是指什么
  • 支付机器设备修理费
  • 企业注销个税怎样更正申报呢
  • 公司聚餐计入什么会计科目
  • 单位垫付资金如何做账
  • 付员工经济补偿金计入工资总额吗
  • win11dev预览修复工具
  • linux小技巧
  • 银行存款收款凭证属于什么凭证
  • annaconda安装opencv
  • vue实现鼠标悬浮 显示全部内容
  • 以固定资产投资的会计处理
  • 低值易耗品摊销方法名称怎么选
  • 公司报亏损需要交税吗
  • 2022年数学建模获奖结果
  • php输出表格css
  • 控制器操作视频
  • 每个开发人员都有编制吗
  • modprobe operation not permitted
  • fdisk cfdisk
  • 工业企业采购商品过程中发生的进货费用
  • 没开票的工程可以结转成本吗
  • 新增四大行业营收排名
  • 财务做帐的金额怎么算
  • 哪些企业可以不计提盈余公积
  • 确认应付职工薪酬怎么算
  • 物业管理费专票税率是多少
  • 租车协议要不要报税务机关备案?
  • 接受母公司捐赠现金分录
  • 独立核算和非独立核算怎么查
  • 收到上年度所得税退税款会计分录怎么写
  • 工会经费通过应交税费核算吗
  • 共同类科目性质
  • 政府投资资产会计核算科目
  • 跨年暂估收入,次年开票会计分录
  • 法人转移公司资产怎么办
  • 因质量原因无法退货
  • 电汇凭证是什么会计科目
  • 长期股权投资权益法初始成本的确定
  • redhat配置bond
  • windows server 2008 日志文件在哪
  • linux find -perm 详解
  • CentOS中httpd源代码安装与测试步骤分享
  • win8系统怎么设置开机密码
  • 在linux系统中创建用户账户
  • win8搜索框怎么打开
  • easyui折叠面板默认折叠
  • 非法文件名是什么
  • Node.js中的http请求客户端示例(request client)
  • unity调色插件
  • js实现点击按钮移动滑块到另一个按钮的方法
  • 基于jQuery Ajax实现上传文件
  • 安卓手机管家推荐
  • 为什么python那么难
  • 对计划单列市税务局不服向谁复议
  • 云南发票网站
  • 如何做好协税工作
  • 湖北国税办税人是谁
  • todesk点不了
  • 上海网上申报软件怎样下载
  • 山西省税务
  • 代账公司盈利水平如何
  • 教育用地性质可以更改么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设