神经网络MLP 编码器-解码器 注意力机制 残差连接
Posted 征途黯然.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络MLP 编码器-解码器 注意力机制 残差连接相关的知识,希望对你有一定的参考价值。
[1] 多层感知机(MLP)
最典型的MLP包括包括三层:输入层、隐层和输出层,MLP神经网络不同层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。
由此可知,神经网络主要有三个基本要素:权重、偏置和激活函数
权重:神经元之间的连接强度由权重表示,权重的大小表示可能性的大小
偏置:偏置的设置是为了正确分类样本,是模型中一个重要的参数,即保证通过输入算出的输出值不能随便激活。
激活函数:起非线性映射的作用,其可将神经元的输出幅度限制在一定范围内,一般限制在(-11)或(01)之间。最常用的激活函数是Sigmoid函数,其可将(-∞,+∞)的数映射到(0~1)的范围内。
[2] 编码器-解码器(encoder-decoder)
编码器-解码器一般使用在机器翻译任务中,基于注意力机制的编码器-解码器架构如下:
这里只做简单介绍,了解更多可以查看文末的参考文章列表。
编码器的最终隐藏状态可以传给另一个RNN(解码器)。该RNN的每个输出都是输出序列中的一个单词,并作为RNN下一步的输入。然而,这样的架构需要编码器编码整个输入序列为最终隐藏状态。相反,如果使用注意力模型,解码器不仅接受最终隐藏状态作为输入,还接受编码器处理输入序列的每一步的输出作为输入。编码器可以赋予编码器输出不同的权重,在计算解码器输出序列的每次迭代中使用。
解码器循环层的最终输入为注意力加权的编码器输出和循环单元前一步的预测单词索引。下为这一过程的示意图,其中“Context”(上下文)表示编码器输出张量。为了简化图形,示意图中省略了嵌入层。
[3] 编码器-解码器(encoder-decoder)
为了解决由长序列到定长向量转化而造成的信息损失的瓶颈,Attention注意力机制被引入了。Attention机制跟人类翻译文章时候的思路有些类似,即将注意力关注于我们翻译部分对应的上下文。同样的,Attention模型中,当我们翻译当前词语时,我们会寻找源语句中相对应的几个词语,并结合之前的已经翻译的部分作出相应的翻译,如下图所示,当我们翻译“knowledge”时,只需将注意力放在源句中“知识”的部分,当翻译“power”时,只需将注意力集中在"力量“。这样,当我们decoder预测目标翻译的时候就可以看到encoder的所有信息,而不仅局限于原来模型中定长的隐藏向量,并且不会丧失长程的信息。
数学运算可以查看文末的参考文章列表。
[4] 残差连接(residual connection)
如上图,上面是来自于resnet模型的skip block的示意图。我们可以使用一个非线性变化函数来描述一个网络的输入输出,即输入为X,输出为F(x),F通常包括了卷积,激活等操作。
这就是residual connection的思想,将输出表述为输入和输入的一个非线性变换的线性叠加,没用新的公式,没有新的理论,只是换了一种新的表达。
残差连接是何的首创吗?当然不是,传统的神经网络中早就有这个概念,文【2】中则明确提出了残差的结构,这是来自于LSTM的控制门的思想。
y = H ( x , W H ) • T ( x , W T ) + X • ( 1 − T ( x , W T ) ) y = H(x,WH)•T(x,WT) + X•(1- T(x,WT)) y=H(x,WH)•T(x,WT)+X•(1−T(x,WT))
可以看出,当 T ( x , W T ) = 0 T(x,WT) = 0 T(x,WT)=0, y = x y=x y=x,当 T ( x , W T ) = 1 T(x,WT) = 1 T(x,WT)=1, y = H ( x , W H ) y= H(x,WH) y=H(x,WH)。
总之,为我们所知道的就是下面的式子叫残差连接,residual connection:
y = H ( x , W H ) + X y = H(x,WH) + X y=H(x,WH)+X
参考文章:
[1] MLP参考:https://zhuanlan.zhihu.com/p/63184325
[2] 编码器-解码器参考:https://zhuanlan.zhihu.com/p/52036405
[3] 注意力机制参考:https://zhuanlan.zhihu.com/p/46313756
[4] skip connect参考:https://zhuanlan.zhihu.com/p/42833949
以上是关于神经网络MLP 编码器-解码器 注意力机制 残差连接的主要内容,如果未能解决你的问题,请参考以下文章