机器学习之LARNN(Linear Attention Recurrent Neural Network)

 Linear Attention Recurrent Neural Network(LARNN)由Guillaume Chevalier结合前人的经验于2018年八月发表的论文《LARNN: Linear Attention Recurrent Neural Network》中提出。
LARNN的核心机制是将Self-Attention Mechanisms(SAM)应用到Recurrent Neural Network(循环神经网络,RNN)中。
 首先,作者在文中通过分析算法模型的时间复杂度和计算难度,肯定了RNN的地位(不可抛弃)。后,结合Yoshua Bengio的工作成果,论证LARNN的存在价值和优势。最后,介绍LARNN算法原理,并通过一个案例进行实验。
 为简单明了,引用Chevalier文中算法结构图,通过一个SAM与LSTM结合的LARNN进行说明和细解LARNN的算法原理。算法图示如下:
机器学习之LARNN(Linear Attention Recurrent Neural Network)_第1张图片
 该图简单明了,左侧是一个窗口大小为4的LSTM,右侧是一个LSTM。其中pos encoding的方式采用《Attention Is All You Need》文中提出的一种sin和cos的几何序列,计算公式和表示方法如下:

P E ( p o s , 2 i ) = s i n ( p o s / 1000 0 2 i / d m o d e l ) ) PE(pos,2i) = sin(pos/10000^{2i/d_{model}})) PE(pos,2i)=sin(pos/100002i/dmodel))
P E ( p o s , 2 i + 1 ) = c o s ( p o s / 1000 0 2 i / d m o d e l ) ) PE(pos,2i+1) = cos(pos/10000^{2i/d_{model}})) PE(pos,2i+1)=cos(pos/100002i/dmodel))

 其中dmodel的隐藏单元数量与LARNN的特征数量相同,类似于LSTM的特征数量。
 现在采用Batch Normaliztion的LSTM公式(BN-LSTM)以及Exponential Linear Unit(ELU)将算法进行公式化,为避免公式过多,我在图中标出每一步的输出符号。
 图中左侧部分进行优化和表示:

v t = [ [ c t − 1 , c t − 2 , c t − 3 , . . . , c t − k ] ] v_{t} = [[c_{t−1}, c_{t−2}, c_{t−3}, . . . , c_{t−k}]] vt=[[ct1,ct2,ct3,...,ctk]]
k e y = v a l u e = p o s t i o n a l E n c o d i n g ( v t ) key = value = postionalEncoding(v_{t}) key=

你可能感兴趣的:(machine,learning,Big,Data,深度学习,神经网络,自然语言处理)