Transformer

Transformer实际上就是变形金刚,其与Bert实际类似。其实际上就是一个Sequence-to-Sequence的模型,其输出的长度并不是由人为指定,而是由机器自行确定。

Transformer的基本结构,如上图所示,主要由一个Encoder和一个Decoder组成,一般将输入序列通过Encoder进行处理,处理完成后给到Decoder,由Decoder来确定输出向量。

1.Encoder

Encoder的基本结构:

模型的编码器可以有多个Block进行编码处理。

Block的具体结构:

根据李老师课程中的讲解,仅以拆解内部的Block结构输入向量b讲过Self-Attention得到向量a,同时由相应的输入向量b进行残差连接,经过一次Layer Norm就可以得到向量c.接着将c作为FC网络的输入得到d,接着再次进行残差连接,得到向量e,最后再做一次Layer Norm操作得到向量f。

2.Decoder-Autoregressive (AT)

        Decoder中使用的Masked Self-Attention结构如下图所示,只考虑之前的输入信息,并不考虑在当前点后的输入。

        Decoder在进行处理的过程中会将自己上一个时刻的输出作为自己当前的输入,可能会出现一步错步步错的这样的问题,但是在训练过程中可以故意给模型喂入一些这样的数据,让模型在数据存在问题的情况下任然可以有比较不错的输出,防止出现一步错步步错的情况。

在做语音转换的时候需要有文字的结尾,防止出现Nerver Stop的问题。

当模型输出END时候,模型就结束。

3.Decoder Non-autoregressive (NAT)

AT需要一步一步的去学习,并将上一次的学习的结果作为下一次学习的输入进行后续的操作,NAT直接一次性输入所有的vector,然后一次性输出整个句子,实现输出。输出的长度可以再设一个单独的模型来进行预测。另外一种方法,直接给一个足够长的start来让模型输出,我们只需要将开始到第一个END出现的位置视作为模型的实际输出即可。

NAT:可以实现并行运算,同时模型的输出长度也是可控的。

NAT的结果通常比AT的结果比较糟糕。由于Multi-modality的原因。

4. Encoder-Decoder

Decoder部分不仅有自身的输入向量,还有Encoder部分的输出作为输入向量。而Encoder部分的输出与Decoder中Masked Multi-Head Attention的输出一起被送到Multi-Head Attetion进行处理,这部分就叫Cross Attention,如上图。

Cross-Attention的具体实现流程:

  • Encoder的输出分别与各自对应的矩阵,得到相应的key值,Decoder经过Masked Multi-Head Attention的输出与矩阵相乘得到Query值,两者做点积得到相关性分数
  • Encoder的输出分别与各自对应的矩阵相乘得到相应的value值,然后与关联性分数相乘,并将所有结果累加起来,并将累加后的结果再给到全连接层,最终得到输出结果。

最后的输出实际上就是一个Softmax分类器,依次得到每一个字。

李宏毅2021春季机器学习课程视频笔记14-Transformer相关推荐

  1. 李宏毅2021春季机器学习课程视频笔记1:Introduction, Colab PyTorch Tutorials, HW1

    诸神缄默不语-个人CSDN博文目录 李宏毅2021春季机器学习课程视频笔记集合 VX号"PolarisRisingWar"可直接搜索添加作者好友讨论. 更新日志: 2021.11. ...

  2. 李宏毅2021春季机器学习课程视频笔记11-卷积伸进网络(CNN)

    卷积神经网络架构 图像识别 将图片拉直放入神经网络中进行训练. 网络通过对图像中的存在的特征进行分析,判断当前属于何种类别. 神经网络其实不需要对整个图片进行分析,只需要对一些特殊的信息进行分析就可以 ...

  3. (强推)李宏毅2021春机器学习课程-课件免费下载

    博主最近学习李宏毅2021春机器学习课程,课程给出的课件都是按章节的,阅读起来不是很方便,所以将课件按章节整理合并了一下,并给出学习视频和代码的链接,与各位分享~ b站视频链接:(强推)李宏毅2021 ...

  4. 1-4 李宏毅2021春季机器学习教程-PyTorch教学-助教许湛然

    1-3 李宏毅2021春季机器学习教程-Google Colab教学-助教许湛然介绍了Colab的使用,这篇文章是助教许湛然关于PyTorch框架的简要讲解. 更多操作查看: https://pyto ...

  5. 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介

    上篇文章1-1 李宏毅2021春季机器学习教程-第一节(上)-机器学习基本概念简介介绍了回归的一些知识,重点介绍了机器学习寻找函式的三个步骤.接着我们继续学习第一节Introduction的内容. 目 ...

  6. 李宏毅2023春季机器学习课程

    目录 2021&2022课程 重磅须知 我维护的其他项目 更新日志 课程地址 课程资料直链 课程作业直链 其他优质课程 2021&2022课程 CSDN Github 重磅须知 为方便 ...

  7. 2-1 李宏毅2021春季机器学习教程-第二节机器学习任务攻略

    之前的学习简要介绍了机器学习和深度学习的相关概念,上一篇文章李宏毅2021春季机器学习教程HW1-COVID-19 Cases Prediction (Regression)解答有关于HW1的解答,接 ...

  8. 【学习笔记】李宏毅2021春机器学习课程第三节:卷积神经网络(CNN)

    文章目录 1 图像分类问题 2 观察一:通过某些模式来识别 3 简化一:各扫门前雪 3.1 经典的 Receptive Field 设计方式 3.1.1 看所有的 Channel 3.1.2 使用 3 ...

  9. 【学习笔记】李宏毅2021春机器学习课程第6.1节:生成式对抗网络 GAN(一)

    文章目录 1 能够作为生成器的神经网络 GAN 2 动漫人物头像生成 3 判别器(Discriminator) 4 从自然选择看GAN的基本思想 5 GAN 的具体实现过程 步骤一: 固定 gener ...

最新文章

  1. ossim-agent代理和要监控的服务器的配置
  2. 感受亚马逊:“抠门”的巨无霸电商如何炼成
  3. date oracle 表中_从 MySQL 迁移数据到 Oracle 中的全过程
  4. 水题 逆序对 NOIP 2013 火柴排队
  5. NOIP2016 D2T3 愤怒的小鸟
  6. pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理
  7. micro_macro
  8. 简单迅速解决windows电脑下载windows应用商店(Microsoft Store)
  9. 09-网格划分质量查看
  10. centos 7.6编译安装nginx
  11. 服务器设置来电自动重启,电脑来电自动重启怎么样设置
  12. P卡、worldfirst、连连跨境电商收款哪家好?
  13. 网易云评论 爬虫 java_网易云音乐资源爬取(登录+评论)
  14. 全球疫情形势动态地图展示(超帅超好玩的python动图)
  15. Python神秘的魔法函数
  16. 跟着鸟哥学linux【一】
  17. 新浪微博的页面解析思考
  18. Java知识整理(Netty/索引/锁/JMM)-增强篇
  19. Asp.Net读取excel文件的时候 出错提示:外部表不是预期的格式 解决方案
  20. php培训总结如何写,济南php培训学员的学习笔记总结

热门文章

  1. JS isNaN函数
  2. 一个不错的旋转木马轮播图特效
  3. 使用jasypt加密配置 报错:DecryptionException: Unable to decrypt
  4. 易语言光速网络引擎教程第一课
  5. Java8 Optional类用法
  6. Oracle迁移DM8后NCHAR字符类型的转换说明
  7. svn 提交代码报locked问题解决
  8. TIA-942数据中心标准
  9. 启动容器时报错:iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 1217 -j DNAT --to-de
  10. 博士意外发现秘密:DALL-E 2自创语言,人看不懂但能生成特定图像,可能会被用来搞事!...