本文是李宏毅机器学习的笔记,这是第七节,介绍了Transformer的相关知识。
1. Self-Attention机制
复杂的输入和输出
一个模型的输入和输出有很多复杂的形式。例如输入可以是一个向量或者一系列向量的组合。一系列向量输入方式有很多,例如One-Hot Encoding、Word Embeding等。应用的场景也很多,例如声音的输入,文字的输入,具有图结构的数据输入。输出的形式也有很多种,一个向量对应一个标签,一系列向量的组合对应一个标签,M个向量对应N个标签。
这里我们关注一个向量对应一个标签的形式。
加入在机器翻译场景下,对于这种文字的输入形式,我们需要考虑上下文意思,全连接网络很明显不适用,所以这里使用能考虑上下文的self-attention机制。
Self-Attention机制介绍
之前写过相关文章,参考链接。
也可以参考李宏毅老师的课件。
Self-Attention应用
被广泛用于NLP领域,例如NLP领域常用的Transformer和Bert。
Self-Attention机制还可以用于语音处理、图片处理、GAN网络、Graph。
再对比一下Self-Attention和CNN网络
可以看出Self-Attention更复杂,更适合处理具有大量数据的任务。
Self-attention可以代替RNN,它比RNN的性能要更好。
2. Transformer算法
Seq2Seq
Seq2Seq就是输入一个sequence,然后输出一个sequence,Seq2Seq可以用于很多任务中,包括Speech Recognition、Machine Translation、Speech Translation、Chatbot等等。
可以用于语音和自然语言处理。但是通用的模型往往性能不如特定任务的model,所以更多的是针对特定任务有特定的model。
Seq2Seq还可以用于文法剖析
也可以用于Multi-label Classification,Multi-label Classification与Multi-class Classification是不一样的。
Seq2Seq model包含Encoder和Decoder
Encoder
Encoder可以用RNN或者CNN,右图是Transformer的Encoder.Transoformer就是使用了Attention机制进行Encoder和Decoder操作的Seq2Seq的模型。Self-attention的计算流程。
也可以用其他的Encoder结构
Transformer的介绍
之前写过相关文章,参考链接。
也可以参考李宏毅老师的课件。
文章出处登录后可见!