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

目录

?s2s

transformer's encoder?

transformer's?decoder

Decoder两个类别:autoregressive v.s non-autoregressive /缩写为:AT v.s NAT

decoder内部结构

encoder与decoder相差的就是

怎么做训练的?

训练transformer(也可以是s2s模型)的tips

总结


?

????????是一个seq2seq模型,输入是一个序列,输出是一个序列,输出序列的长度由机器决定

? ? ? ? seq2seq的应用:可以解决很多的Q&A问题,可以看做一个万能模型?

  1. 语音辨识(输入的是本语言的语音,输出的是本语言的文字)
  2. 机器翻译(输入的是本语言的文字,输出的是其他语言的文字)
  3. 语音翻译(如果其他语言无文字,可以直接把其他语音翻译成有文字的语言)
  4. 语音合成(文本转语音信号)
  5. 聊天机器人(输入输出都是文字,收集大量对话,学习对应的回应)
  6. 情感分析(判断正负面感情)
  7. 文本摘要

    各种nlp问题都可以用这个模型,但是问题在定制的模型上效果会更好,定制模型请参考2020年课程https://www.bilibili.com/video/BV1RE411g7rQ?from=search&seid=15292554835599622019

  8. 文法剖析,输入一段文字,输出一个树状结构(分析文中的语法组成)论文参考:Grammer as a foreign language
  9. 多标签分类:硬做s2s,由机器决定输出多少个类别
  10. 物体检测:?

?s2s

起源:

代表:?

transformer's encoder?

?

  • 其中的很多block,每个都是输入一排向量输出一排向量,一个block所做的事情:sa+FC的前馈神经网络
    • sa过程中的细节:残差连接residual connection + layer norm(add&norm),输入和输出直接相加的结果用均值和方差做标准化。本文说明了为什么batch norm不如layer norm
    • sa的结果作为FC的输入,再做一次残差连接+标准化,得到block的输出

    ?

?

transformer's?decoder

?????????从常见的autoregressive 语音辨识讲起,encoder得到一排输出之后,读入decoder,首先设定一个开始符号(可以是独热编码),decoder输出一个向量。decoder会把自己的输出作为接下来的输入,所以有可能一错皆错erro propagation?问题如何解决?

Decoder两个类别:autoregressive v.s non-autoregressive /缩写为:AT v.s NAT

AT:输入begin,输出w1,输入w1,输出w2,直到end

NAT:给多少个begin,就直接给出全部的输出。如何决定要给几个begin?另外学习一个分类器,先做分类、直接给一堆开始,看什么地方输出了end。

? ? ? ? 优点:并行、可控的输出长度

? ? ? ? 缺点:NAT往往不如AT的表现,为什么不好?因为multi-modality问题

?

decoder内部结构

暂时不看encoder的输入

?

encoder与decoder相差的就是

  • 图1mask:原来的sa的每个输出都考虑所有的整个输入,加入mask就只能考虑之前的输出。为什么要mask?decoder的输出是一个一个输出的,不同于encoder直接输出一排,因为decoder不能考虑未来的输出?

?

  • ?图2,遮住的部分称作cross attention:是连接encoder和decoder的桥梁,这个模组的具体过程如下图
    • q来自decoder,kv来自encoder,decoder通过q去encoder抽取信息作为接下来的FC的输入
    • transformer中:decoder的每一层都使用了encoder的输出(也就是cross attention),也可以不这样

  • ???如何确定输出序列的长度?需要一个停止符号

怎么做训练的?

  • decoder的每次输出其实就是在做分类,其输出是一个概率值,把答案给它,希望交叉熵总和越小越好
  • decoder在训练的时候会给正确答案(ground truth),称作teacher forcing(把正确答案给decoder的输入)
    • 训练的时候看了答案,预测的时候没有怎么办?加点随机性,加点噪音

训练transformer(也可以是s2s模型)的tips

  • copy mechanism:让decoder复制输入的内容。最早有从输入复制内容能力的模型pointer network 有视频 下文是pn模型的变形
    • 聊天机器人(重复输入的内容)
    • 文本摘要,需要百万篇文章才能让机器说合理的句子
  • guided attention 解决漏字的问题,强迫得到完整的输出,对应语音辨识和合成很重要
    • ?monotonic attention
    • location-aware attention
  • beam search
    • ???????每次找分数最高的来输出,称作greedy decoding?
    • 不是每次找到最好的,而是找整体最好的,怎么找这条路呢?算法beam search,可能不会看所有的路径
    • 如果答案非常明确时,beam search很有帮助。但是需要创造力的,没有帮助,decoder需要随机性(可能在训练时要加入噪音,让模型看过各种情况)TTS任务
  • 优化
    • ???????训练的时候,最小化交叉熵
    • 实际上评估的时候,用BLEU score最高的模型,最大化BLEU score
    • 遇到无法优化的损失函数,直接用RL。decoder当做agent,当做RL(reinforcement learning)问题硬做?本文有点难实践?
  • 训练和测试不一致

    ?

    • 测试时decoder看到的是自己的输出,可能会看到错误
    • 训练时看到的是正确的内容,这个现象称作 exposure bias
    • 解决办法:训练的时候不要只给正确的内容,给点错的,这个做法称作scheduled sampling,可参考以下论文

?

?


总结


本课由s2s的encoder和decoder结构引出transformer


其中transformer的encoder部分,主要讲解了block部分,由多头注意力、残差连接&标准化、FC的前馈神经网络等内容构成
?
transformer的decoder部分
首先讲了decoder的两个类别,其中AT的表现更好,NAT表现不如AT但可以并行。然后讲了decoder的内部结构
其中解码器相比于编码器的差别就在于:
1、多了cross attention(就是结合了encoder的输出做attention)
2、mask是为了让decoder不考虑未来的输出
3、注意decoder需要停止标记
?
训练过程中,decoder使用正确答案在训练,适当的加入随机性可以改善模型在测试中的表现(scheduled sampling)
训练的建议:
1、从输入复制内容,可参看pointer network模型及其变形
2、通过guided attention得到强制完整的输出,使用语音任务
3、beam search对答案明确的任务有帮助
4、挑选模型的时候,选择BLEU score最高的模型,遇到无法优化的损失函数,直接reinforcement learning
?
??

?

????????

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:17:35  更:2021-07-16 11:20:34 
 
开发: 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/22 9:52:29-

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