目录
简介:
算法出处想必大家都熟悉了,源于论文《Attention is All You Need》,代码部分可以从GitHub获取,其作为Tensor2Tensor包的一部分。(注:目前也实现了一个基于PyTorch的版本)
来看一下算法的总体结构,稍后从更容易理解的角度分析:

详解一——宏观黑盒:
都说卷积神经网络可以看作一个黑盒子,其实Transformer算法模型也是一个黑箱操作,看图理解:在机器翻译中,很明显,输入一种语言,经过算法模型得到另一种语言的输出。

从全局的角度看完之后,咱们来看局部的算法模型,其实它是由编码组件、解码组件和它们之间的连接组成 。如下图:

详解二——拆分组件:
编码组件部分:由一堆编码器(encoder)构成。
解码组件部分:由相同数量(与编码器对应)的解码器(decoder)组成。

详解三——编码器和解码器:
所在的编码器在结构上都是相同的,但它们没有共享参数。每个解码器都可以分解成两个子层。

编码器:
输入——>经过一个自注意力(self-attention)层(帮助编码器在对每个单词编码时关注句子的其他单词)——>前馈(feed-forward)神经网络中(每个位置的单词对应的前馈神经网络都完全一样或者说是一层窗口为一个单词的一维卷积神经网络)

解码器:
除了具有编码器的自注意力层和前馈神经网络层以外,这两层之间还有一个注意力层,用来关注输入句子的相关部分(和seq2seq模型的注意力作用相似)。
详解四——引入张量:
在图景中我们了解了模型,那么各种向量和张量是怎么样在模型的不同部分中,将输入转化为输出的呢?
1、首先将每个输入单词通过词嵌入算法转换为词向量。

2、每个单词都被嵌入为512维的向量,用上图的方框代替这些向量。
3、词嵌入过程只发生在最底层的编码器中。所有编码器接收一个向量列表,列表中那个的每个向量大小为512维。在底层(最开始)编码器中它就是词向

最低0.47元/天 解锁文章
5489

被折叠的 条评论
为什么被折叠?



