IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Transformer总结 -> 正文阅读

[人工智能]Transformer总结

Transformer总结


前言

该篇博客是笔者学习李宏毅老师课程后所写的学习笔记,如文中有错误,感谢大家指正

通过学习对比,李宏毅老师在Transformer模型的讲解上略逊色与李沫老师,这是学习李沫老师论文精讲的批注,共享在网盘上了
链接: https://pan.baidu.com/s/10wU6LFFlR_ir3ivOZDYufA?pwd=uwhw
提取码: uwhw


一、Sequence-to-Sequence模型

??Sequence-to-Sequence是一种输入输出均为一个序列的模型,也被简称为Seq2seq模型,它的特点是模型的输出长度是不确定的,有可能比输入长,也可能比输入短,且输出的长度由模型自己决定。
应用场景:
(1)语音辨识:模型的输入声音讯号,输出语音辨识的结果,是一段文字
(2)机器翻译:输入一段文字,输出为翻译后的另一个语种的文字
(3)语音翻译 :输入为声音讯号,输出为翻译后的文字,在语言翻译中是直接将声音信号转换成不同 语种文字,没有声音到文字,文字再翻译的中间过程
??在实际应用中,QA的问题(给定一段输入和问题,模型给出一个回答)都有机会用Seq2seq的模型来解,而为了让模型对特定的问题有更好的表现,通常会为该问题定制化一个模型而不是使用一个通用模型。

二、Transformer模型

在这里插入图片描述

??Transformer模型通常由两部分组成,一部分是encoder,另一部分是decoder。需要先将输入送入到encoder部分中,encoder模块对输入进行处理后送入decoder部门进行解码输出,

1.encoder

在这里插入图片描述

??在encoder部分,输入时一排向量,输出是一排与输入个数相同的向量,中间处理的核心就是多个self-attention叠加而成的block
在这里插入图片描述 ??但此处用到的self-attention是在其基础上做处理部分改动,更多的计算步骤使其能更好的找到序列间内部的联系

在这里插入图片描述在这个改动后的self-attention计算单元中, b b b 计算方法和以前相同,但此处不再是直接将 b b b作为输出 ,而是
(1)先将对应的输出 a a a b b b相加组成一个residual块,
(2)然后对residual块进行layer normalization处理,其过程为先计算出入向量的均值 m m m和标准差 σ \sigma σ,然后对向量中的每个元素进行 x i ′ = x i ? m σ x_i^{'}=\dfrac{x_i-m}{\sigma} xi?=σxi??m?归一化后输出。
(3)将layer normalization的输出 v v v送入全连接网络FC中,
(4)将其输出和 v v v相加再组成一个residual块,
(5)对residual块再做一个layer normalization处理后最为self-attention的最终输出。

在这里插入图片描述 ??此外需要注意,在一个block中,使用的是多头注意力,以达到找到内部多种不同联系的目的;在多头注意力模块输出后还需要一个residua和layer normalization的模块;将多个block组合最终组成encoder

2.decoder

2.1Autoregressive

decoder有两种形式,分别是Autoregressive和 Non Autoregressive
在这里插入图片描述 ??AT的一个输入和前一个输出共同觉点当前的输出,即一个一个输入、一个一个输出;而NAT是一起送入多个输入,一起返回多个输出,而输出的个数也是由模型自己决定。下面我们将介绍更为常用的Autoregressive的decoder
在这里插入图片描述

??首先把encoder的输出读到decoder中,模型自己会给decoder输入一个BEGIN(或BOS),表示此时开始,这个BEGIN将对应第一个输出。(在完成语音识别的Seq2seq模型中,输出是一个汉字,这个汉字将用一个长度为vocabulary库长度的序列表示,即vocabulary库中有多少个字该向量就有多少行,在这个输出的向量中,每个字对应一个数字,表示输出是这个字的可能性,对这个向量使用softmax使其和为1。)此时模型的BEGIN对应了第一个输出,然后将第一个输出再送入decoder中来预测下一个输出。
??上一个输出决定下一个的输入,这种方式也可能产生负面影响,即一步错步步错。
注意:decoder输出结束的个数需要机器自己决定,vocabulary中需要存一个END,表示输出结束


下面我们来了解一下decoder内部结构
在这里插入图片描述
??在decoder的block中,第一个多头注意力加上了Masked,这种Masked self-attention在计算时,每个输入不考虑它右边的信息,即 a 1 a_1 a1?看不到 a 2 a_2 a2? a 3 a_3 a3? a 4 a_4 a4? a 3 a_3 a3?能看到 a 1 a_1 a1? a 2 a_2 a2?,在计算时也会发生响应的改变,不能被看到的输入的相关性不应被计算进去。这是因为decoder的输出是一个一个产生的,所以一个输入右边的元素此时还没有产生,它右边输入的相关性此时不能被计入其中。
在这里插入图片描述

2.2 Non Autoregressive

??下面我们简述一下Non Autoregressive形式的decoder
??Non Autoregressive 的输出和输入的个数相同,但是由于输出的个数不确定,我们不好直接确定要求输入的个数,可以用另一个预测模型来预测它的长度;或者给很长的Begin,在输出中END并不一定在最后,此时END右边预测出的部分舍弃。

Non Autoregressive的优势:平行化的输入输出,运行的更快, 比较能控制输出的长度。
Non Autoregressive的劣势:错误率更高


2.3cross attention

在这里插入图片描述

??通过对比不难发现它们最大的差别在于decoder比encoder多红框这个部分,正是这个Cross attention部分将它们连接在一起。在这里插入图片描述 ??Cross attention模块共有三个输入,其中两个来自encoder,一个来自deocder。
在这里插入图片描述
??encoder的输出 a i a^i ai向量分别与矩阵相乘,生成向量 k i k^i ki v i v^i vi,decoder的输入通过Mask SA后也和矩阵相乘生成向量 q q q,计算它们的相关性(过程参考self attention中 α ′ 的计算 \alpha^{'}的计算 α的计算)并送入FC后输出在这里插入图片描述
??以此类推计算后面的输出,注意第一个输入以后的decoder输入为上一个decoder的输出

3.Training过程

??在语音辨识的训练中,有一段声音讯号作为输入,对应的中文文字作为输出。训练集的标签为一段语言和对应的正确的中文,中文用独热码来表示。decoder的输出是一个概率的分布,希望不正确字符的概率越小越好,每一个输出都和正确答案计算一个交叉熵,我们希望交叉熵的总和最小。
注意:训练时decoder的输入不是由机器自己预测出来的,而是使用提供的正确答案。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:33:42  更:2022-10-17 12:36:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 2:51:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计