机器学习笔记—5(李宏毅版)

Transformer

Transformer 就是一个 Seq2Seq 的 model,output 的长度有可能确定、为一、或者未知(由机器自己决定,比如语音识别、中英翻译、语音翻译)。
Seq2Seq 还可以应用于训练聊天机器人。收集大量人与人之间的对话进行训练。QA 类型训练可以作为训练的基础,而 QA 可以用 Seq2Seq 的 model 来解决,对于特定的任务使用特定的模型往往可以得到更好的结果。
文法剖析,输入为一段文字,而输出是一个树状的结构体,可以使用括号和文字来表示。
用 Seq2Seq 来解决 Multi-label Classification 问题,由机器自己决定,输入一篇文章,输出几个class。也可以用来解决 Object Detection 问题,Input sequence 经过 Encoder 和 Decoder 两步后输出 output sequence。
Encoder 需要完成的工作为,输入一排向量,输出另外一排同样长度的向量,这里使用的技术是 Self-attention,Encoder 过程中包含多个 Block,每个Block 会对向量进行 Self-attention 和 Fully-connected。
在transformer 中的 Self-attention 与普通的 Self-attention 不同,增加了一些操作,如下
Block中的一些操作
整个Encoder的Block中进行的过程如下
在这里插入图片描述
Autoregressive

语音辨识
语音–Encoder–>vector sequence–Decoder–>中文字句(会考虑到之前输出的字句,将自己之前的输出也作为输入的参数)

Encoder 和 Decoder 的过程很相近
Self-attention 在输出一个 vector 时,会考虑周围多个输入 vector,而 Masked Self-attention 在输出 vector 时,仅仅会考虑位于当前输出位置之前的输入的 vector 而不考虑位于当前输出位置之后的输入。

这个输出的过程会一直进行而不会停止,类似于词语接龙的过程。需要添加一个特殊符号,用来表示输出的结束位置。

AT 和 NAT
AT 一次产生一个词语或者汉字,并且从 BEGIN 开始,每个汉字根据前一个输出的汉字产生。而 NAT 则是一次产生一个完整句子,根据多个输入的 BEGIN 产生对应的多个汉字。

Cross-attention,连接 Encoder 和 Decoder 之间的桥梁
在这里插入图片描述

在这里插入图片描述
Eecoder由很多层,Dncoder也有很多层,不一定每层Encoder的输入都要是最后一层Decoder的输出。Decoder各层的输入与Encoder各层的输出可以进行相互组合。
语音辨识过程可以类比于分类过程,每个类别对应每个汉字,使用 one-hat vector。

Copy Mechanism,根据用户提供的词句和汉字直接作为输出。
Chat-bot 聊天机器人
Summarization 读一篇文章并且产生摘要。

Guided Attention,特别在语音辨识中,引导机器进行 attention,避免有些词句和汉字机器没有注意到。语音输入应当是从左到右的顺序,一个一个进行识别。

Beam Search,假设可能的输出只有两个,那么根据输入得到输出,可以形成一颗二叉树,二叉树的边权对应输出值的可能性。选择其中的最短路径,一般来说是最好的结果。需要找到较好的结果,既可以用到 Beam Search 技术,时而有用时而无用。对于答案非常明确,没有二义性(歧义)的语音辨识,那么使用 beam search 比较有优势。如果答案比较宽泛,并不明确,那么使用 beam search 可能会有比较差的结果。TTS语音合成 可以在测试时加入一些杂讯,这样可以让结果更好。

为了避免 mismatch,在进行训练时,既要给出正确结果,也要给出一些错误结果,Scheduled Sampling。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值