【深度学习】去掉softmax后Transformer会更好吗?复旦华为诺亚提出SOFT:轻松搞定线性近似...
作者丨h(huán)appy??編輯丨極市平臺(tái)
導(dǎo)讀
?本文介紹了復(fù)旦大學(xué)&華為諾亞提出的一種新穎的softmax-free的Transformer—SOFT。所提SOFT顯著改善了現(xiàn)有ViT方案的計(jì)算效率,更為關(guān)鍵的是:SOFT的線性復(fù)雜度可以允許更長(zhǎng)的token序列,進(jìn)而取得更佳的精度-復(fù)雜度均衡。
論文鏈接:https://arxiv.org/pdf/2110.11945.pdf
代碼鏈接:https://github.com/fudan-zvg/SOFT
項(xiàng)目鏈接:https://fudan-zvg.github.io/SOFT/
本文是復(fù)旦大學(xué)&華為諾亞關(guān)于Transformer中自注意力機(jī)制復(fù)雜度的深度思考,首次提出了一種新穎的softmax-free 的Transformer 。本文從softmax self-attention局限性出發(fā),分析了其存在的挑戰(zhàn);然后由此提出了線性復(fù)雜度的SOFT;再針對(duì)線性SOFT存在的訓(xùn)練問(wèn)題,提出了一種具有理論保證的近似方案。所提SOFT在ImageNet分類任務(wù)上取得了比已有CNN、Transformer更佳的精度-復(fù)雜度均衡。
Abstract
ViT通過(guò)圖像塊序列化+自注意力機(jī)制將不同CV任務(wù)性能往前推了一把。然而,自注意力機(jī)制會(huì)帶來(lái)更高的計(jì)算復(fù)雜度與內(nèi)存占用。在NLP領(lǐng)域已有不同的方案嘗試采用線性復(fù)雜度對(duì)自注意力進(jìn)行近似。然而,本文的深入分析表明:NLP中的近似方案在CV中缺乏理論支撐或者無(wú)效。
我們進(jìn)一步分析了其局限性根因:softmax self-attention 。具體來(lái)說(shuō),傳統(tǒng)自注意力通過(guò)計(jì)算token之間的點(diǎn)乘并歸一化得到自注意力。softmax操作會(huì)對(duì)后續(xù)的線性近似帶來(lái)極大挑戰(zhàn)?;谠摪l(fā)現(xiàn),本文首次提出了SOFT(softmax-free transformer )。
為移除自注意力中的softmax,我們采用高斯核函數(shù)替代點(diǎn)乘相似性且無(wú)需進(jìn)一步的歸一化。這就使得自注意力矩陣可以通過(guò)低秩矩陣分析近似 。近似的魯棒性可以通過(guò)計(jì)算其MP逆(Moore-Penrose Inverse)得到。
ImageNet數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明:所提SOFT顯著改善了現(xiàn)有ViT方案的計(jì)算效率 。更為關(guān)鍵的是:SOFT的線性復(fù)雜度可以允許更長(zhǎng)的token序列,進(jìn)而取得更佳的精度-復(fù)雜度均衡。
Contributation
本文的貢獻(xiàn)主要包含以下幾點(diǎn):
提出一種新穎的線性空間、時(shí)間復(fù)雜度 的softmax-free Transformer ;
所提注意力矩陣近似可以通過(guò)具有理論保證的矩陣分解算法 計(jì)算得到;
所提SOFT在ImageNet圖像分類任務(wù)上取得了比其他ViT方案更佳的精度-復(fù)雜度均衡 (見下圖a)。
Method
Softmax-free self-attention formulation
上圖給出了本文所提SOFT架構(gòu)示意圖。我們首先來(lái)看一下該注意力模塊的設(shè)計(jì)。給定包含n個(gè)token的輸入序列,自注意力旨在挖掘所有token對(duì)之間的相關(guān)性 。
具體來(lái)說(shuō),X首先線性投影為三個(gè)維的query、key以及values:
自注意力可以表示為如下廣義形式:
自注意力的關(guān)鍵函數(shù)包含一個(gè)非線性函數(shù)與一個(gè)相關(guān)函數(shù)。自注意力的常規(guī)配置定義如下:
雖然該softmax自注意力已成為首選且很少受到質(zhì)疑,但是它并不適合進(jìn)行線性化。為構(gòu)建線性自注意力設(shè)計(jì),我們引入了一種sfotmax-free自注意力函數(shù):通過(guò)高斯核替換點(diǎn)乘操作。定義如下:
為保持注意力矩陣的對(duì)稱性,我們?cè)O(shè)置投影矩陣相同,即。所提自注意力矩陣定義如下:
為描述的簡(jiǎn)單性,我們定義為矩陣形式:。所提自注意力矩陣S具有三個(gè)重要屬性:
對(duì)稱性
所有元素均在[0,1]范圍內(nèi);
所有對(duì)角元素具有最大值1。
我們發(fā)現(xiàn):當(dāng)采用無(wú)線性化的核自注意力矩陣時(shí),transformer的訓(xùn)練難以收斂 。這也就解釋了:為何softmax自注意力在transformer中如此流行。
Low-rank regularization via matrix decomposition with linear complxity
為解決收斂于二次復(fù)雜度問(wèn)題,我們利用了矩陣分解作為帶低秩正則的統(tǒng)一解,這就使得模型復(fù)雜度大幅下降,且無(wú)需計(jì)算全部的自注意力矩陣。
作出上述選擇因?yàn)樵谟?#xff1a;S為半正定矩陣,且無(wú)需后接歸一化。我們將S表示為塊矩陣形式:
其中,。通過(guò)上述分解,注意力矩陣可以近似表示為:
其中,表示A的MP逆。更多關(guān)于MP逆的信息建議查看原文,這里略過(guò)。
在上述公式,A和B是S通過(guò)隨機(jī)采樣m個(gè)token得到的子矩陣,可表示為(我們將其稱之為bottleneck token )。然而,我們發(fā)現(xiàn):隨機(jī)采樣對(duì)于m非常敏感。因此,我們通過(guò)利用結(jié)構(gòu)先驗(yàn)探索兩種額外的方案:
采用一個(gè)核尺寸為k、stride為k的卷積學(xué)習(xí);
采用一個(gè)核尺寸為k、stride為k的均值池化生成。
通過(guò)實(shí)驗(yàn)對(duì)比發(fā)現(xiàn):卷積層學(xué)習(xí) 具有更好的精度 。由于K與Q相等,因此。給定m個(gè)token,我們計(jì)算A和P:
最終,我們得到了SOFT的正則化后的自注意力矩陣:
上圖Algorithm1給出所提SOFT流程,它涉及到了MP逆計(jì)算。一種精確且常用的計(jì)算MP逆的方法是SVD,然而SVD對(duì)于GPU訓(xùn)練不友好。為解決該問(wèn)題,我們采用了Newton-Raphson方法,見上圖Algorithm2:一種迭代算法。與此同時(shí),作者還給出了上述迭代可以最終收斂到MP逆的證明。對(duì)該證明感興趣的同時(shí)強(qiáng)烈建議查看原文公式,哈哈。
Instantiations
上面主要聚焦于softmax-free self-attention 模塊的介紹,接下來(lái)我們將介紹如何利用SOFT模塊構(gòu)建Transformer模型。我們以圖像分類任務(wù)為切入點(diǎn),以PVT作為基礎(chǔ)架構(gòu)并引入所提SOFT模塊構(gòu)建最終的SOFT模型,同時(shí)還在stem部分進(jìn)行了微小改動(dòng)。下表給出了本文所提方案在不同容量大小下的配置信息。
Experiments
上表對(duì)比了所提方案與現(xiàn)有線性Transformer模型的性能,從中可以看到:
相比基線Transformer,線性Transformer能夠大幅降低內(nèi)存占用與FLOPs,同時(shí)保持相當(dāng)參數(shù)量;
所提SOFT在所有線性方案中取得了最佳分類精度;
所提SOFT與其他線性方案的推理速度相當(dāng),訓(xùn)練速度稍慢。
上圖給出了不同方案的序列長(zhǎng)度與內(nèi)存占用之間的關(guān)系,從中可以看到:所提SOFT確實(shí)具有線性復(fù)雜度的內(nèi)存占用 。
上表給出了所提方案與其他CNN、Transformer的性能對(duì)比,從中可以看到:
總體來(lái)說(shuō),ViT及其變種具有比CNN更高的分類精度;
相比ViT、DeiT等Transformer方法以及RegNet等CNN方法,所提SOFT取得了最佳性能;
相比PVT,所提方案具有更高的分類精度,直接驗(yàn)證了所提SOFT模塊的有效性;
相比Twins與Swin,所提SOFT具有相當(dāng)?shù)木?#xff0c;甚至更優(yōu)性能。
此外,作者還在NLP任務(wù)上進(jìn)行了對(duì)比,見上表,很明顯:SOFT又一次勝出 。
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載黃海廣老師《機(jī)器學(xué)習(xí)課程》視頻課黃海廣老師《機(jī)器學(xué)習(xí)課程》711頁(yè)完整版課件本站qq群554839127,加入微信群請(qǐng)掃碼:
總結(jié)
以上是生活随笔為你收集整理的【深度学习】去掉softmax后Transformer会更好吗?复旦华为诺亚提出SOFT:轻松搞定线性近似...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RTSP流怎么录制
- 下一篇: 【Python】利用 Python 实现