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的算法原理。算法圖示如下:
該圖簡單明瞭,左側是一個窗口大小爲4的LSTM,右側是一個LSTM。其中pos encoding的方式採用《Attention Is All You Need》文中提出的一種sin和cos的幾何序列,計算公式和表示方法如下:
PE(pos,2i)=sin(pos/100002i/dmodel))
PE(pos,2i+1)=cos(pos/100002i/dmodel))
其中dmodel的隱藏單元數量與LARNN的特徵數量相同,類似於LSTM的特徵數量。
現在採用Batch Normaliztion的LSTM公式(BN-LSTM)以及Exponential Linear Unit(ELU)將算法進行公式化,爲避免公式過多,我在圖中標出每一步的輸出符號。
圖中左側部分進行優化和表示:
vt=[[ct−1,ct−2,ct−3,...,ct−k]]
key=value=postionalEncoding(vt)
query=Wxh([xt,ht−1])
BNELUj(arg)=BatchNormj(elu(arg))=BN(elu(arg))
at=MultiHeadSoftmax(sqrt(dk))query∗BNELU1(key)))∗BNELU2(values)
ft=σ(BN(Whfht−1+Wxfxt+bf))
it=σ(BN(Whiht−1+Wxixt+bi))
ot=σ(BN(Whoht−1+Wxoxt+bo))
gt residual mode=tanh(BN(Whcht−1+Wxcxt+bc))
gt layer mode=Wa([xt,ht−1,at])+ba
Ct=BN(f∗Ct−1+i∗xt∗gt))
ht=BN(ot∗elu(Ct)))
其中gt residual mode和gt layer mode二選一。
至此整個算法的計算原理和公式書寫完畢,共勉共進。
參考文檔
- 《LARNN: Linear Attention Recurrent Neural
Network》
- 《Long Short-Term Memory》
- 《Attention Is All You Need》