self-attention竟然没用?
眾所周知,transformer已經(jīng)不止火在nlp了,ViT(如下圖所示)也大有取代CNN之勢。我們認(rèn)知中transformer最重要的部分莫過于多頭的self-attention機(jī)制了,該機(jī)制發(fā)掘不同token之間的空間信息聯(lián)系。這篇論文<Pay Attention to MLPs>提出了一個(gè)更簡單的架構(gòu),gMLP,使用gating機(jī)制,達(dá)到和transformer在nlp或者計(jì)算機(jī)視覺一樣的效果。
MLP也是L層block堆積而成(如下圖所示),輸入為X(n*d),n的長度,維度是d,每個(gè)block定義如下:
U和V就是圖中Channel Proj,對(duì)embeddings做線性映射,類似transformer中的FFNs,激活函數(shù)用的GeLU,s函數(shù)表示的是spatial gating unit,該block在預(yù)訓(xùn)練或finetune的方式和transformer并無區(qū)別,重要的就是用s函數(shù)替代了multi-head self-attention去挖掘不同tokens之間的關(guān)系。
為了使得spatial gating unit具備挖掘不同token之間的關(guān)系的能力,必須對(duì)空間維度有收縮的操作,最簡單的就是做個(gè)線性映射:
W是n*n維度的矩陣,這里就不像self-attention,W是隨著Z動(dòng)態(tài)變化的,而且W是獨(dú)立于輸入的embedding的,所以s函數(shù)定義如下:
論文里表示為了訓(xùn)練穩(wěn)定性,W初始化接近0并且b初始化為1,這樣fw,b(Z)基本都等于1,所以一開始s(Z)就接近Z,在訓(xùn)練過程中逐步注入空間信息。論文還對(duì)fw,b的輸入做了標(biāo)準(zhǔn)化,采用SGU可以使得該block的表現(xiàn)類似transformer。
結(jié)果表明,沒有self-attention的模型可以像用于圖像分類的transformer一樣有效地處理數(shù)據(jù)。事實(shí)上,當(dāng)模型被適當(dāng)?shù)卣齽t化時(shí),它們的準(zhǔn)確度似乎與模型capacity相關(guān),而不是與自注意機(jī)制相關(guān)。此外,gMLP很好的平衡了參數(shù),準(zhǔn)確率,以及模型性能。
參考文獻(xiàn):https://arxiv.org/pdf/2105.08050.pdf
self-attention竟然沒用?總結(jié)
以上是生活随笔為你收集整理的self-attention竟然没用?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何评估序列推荐模型?
- 下一篇: 数据清洗该怎么做?