【超越EfficientNets】LambdaNet讓網絡無需注意力也能更快更高更強(附paper下載)

點擊上方【AI人工智能初學者】,選擇【星標】公衆號,期待您個人相遇與進步

本文提出新層:Lambda Layers!由其衍生出的LambdaResNets,極大地改善了圖像分類模型的速度與準確性權衡。在ImageNet上表現SOTA,同時比EfficientNets快約4.5倍!並在檢測和分割任務中性能提高明顯,代碼剛剛開源!node

一、簡介

建模長期的交互做用是機器學習重心所在。注意力機制已經成爲捕獲遠程交互做用的選擇範例。然而,自注意力機制的二次內存佔用妨礙了它對長序列或多維輸入的適用性,好比一般包含數萬像素的圖像。同時對於不只僅圖像的分辨率,圖像的head個數也會帶來很大的顯存消耗。
基於上述侷限,本文提出了termed lambda layers即Lambada Layer,它爲捕獲模型輸入和上下文信息的結構化集合之間的長期交互提供了一個通用框架。它經過將可用上下文轉換爲線性函數(稱爲lambda)並將這些線性函數分別應用於每一個輸入來捕獲此類交互。這裏使用Lambda層做爲注意力機制的替代品。注意力機制在輸入和上下文元素之間定義了一個類似核,而Lambda層則是將上下文信息總結爲一個固定大小的線性函數,從而繞過了須要大量記憶的注意映射。對好比下:
Lambda層用途普遍,能夠實現爲在全局,局部或masked contexts中對內容和基於位置的交互進行建模。因爲它們避開了對昂貴的注意力圖的需求,所以能夠將lambda層常規地應用於成千上萬個長度的輸入,從而使它們能夠應用於長序列或高分辨率圖像。由此產生的神經網絡體系結構LambdaNetworks具備高效的計算能力,而且能夠經過直接調用現代神經網絡庫中可用的操做來輕鬆實現。web

二、Modeling Long-Range InterActions

2.一、queries、contexts和interactions的定義

這裏分別用 表示queries和contexts,其中每個query 特徵都包含着 和position n,同理,每個context元素都包含 和位置m,而(n,m)能夠指結構化元素之間的任意類型的成對關係。
考慮在給定上下文C和函數 的狀況下將query映射到輸出向量 。當處理結構化輸入時,這樣一個函數能夠做爲神經網絡中的Layer。這裏把 定義基於內容交互; 定義爲基於位置的互動。此外,當輸出只有一個限制較小的上下文在n附近被考慮時, 依賴於全部 交互。最後,若是這些交互包含上下文中的全部元素(m個),則將其定義爲稠密交互(dense interaction),不然定義爲稀疏交互(sparse interaction)。
編程

2.二、引入Keys來捕獲Long-range interactions

在深度學習的背景下,對快速成批線性操做進行優先排序,並經過dot-product操做捕獲交互。這促使引入能夠經過點積操做與query交互的向量,從而與查詢具備相同的維數。特別是基於內容的交互 須要依賴 的k維向量,一般稱爲關鍵
相反,基於位置的交互做用 須要位置嵌入 也稱爲相對鍵。因爲query/key深度k和上下文空間維度m不在輸出 中,所以須要將這些維度收縮爲Layer計算的一部分。所以,捕獲遠程交互的每一層均可以根據它是收縮查詢深度仍是首先收縮上下文位置來表徵。微信

2.三、Attentional interactions

收縮查詢深度首先在查詢和上下文元素之間建立一個類似性內核(注意映射),稱爲Attention操做。能夠將此機制看做是對激發query,key,value-terminology的可區份內存的尋址。隨着上下文位置m的數量不斷增長,而輸入和輸出維數k和v保持不變,考慮到層輸出是一個維數相對較小的向量v<<m,能夠看出Attention Map存在計算的浪費。網絡

2.四、Lambda interactions

相反,經過一個線性函數表示某個線性函數;在這個場景中,上下文被聚合爲一個固定大小的線性函數。每一個虛擬元數據做爲一個小的線性函數,獨立於上下文存在(一旦計算出來),並在應用到與其相關的查詢 後被丟棄。這種機制讓人聯想到激發lambda術語的函數編程和微積分。相反,經過線性函數將每一個查詢映射到它的輸出可能更高效。在這個場景中,上下文被聚合爲一個固定大小的線性函數 。每一個虛擬元數據 做爲一個小的線性函數,獨立於上下文存在,並在應用到其關聯的查詢 後被丟棄。app

三、Lambda Layers

這裏記輸入爲 和context爲 做爲input並生成一個lambda線性函數,並將其應用到query和產生Y中。注意:這裏 框架

3.一、Lambda Layer:將上下文轉換爲線性函數

一、生成Contextual Lambda Function:lambda層首先經過線性映射上下文來計算鍵和值,而且經過softmax操做跨上下文位置對鍵進行標準化,進而獲得生成標準化的鍵 。它的實現能夠被看做是一種函數傳遞形式,每一個上下文元素貢獻一個內容函數 和一個位置函數 函數是經過加和context獲得的:式中content lambda爲 ,position lambda爲 是對上下文元素的排列不變性,在全部查詢位置n之間共享,並編碼如何僅基於上下文內容對 進行轉換;對比之下, 編碼如何基於內容 和位置(n,m)轉換查詢內容 ,從而支持對此類圖像進行結構化的建模輸入。機器學習

二、應用lambda到query將輸入 轉換爲查詢 ,獲得lambda層的輸出爲:編輯器

三、Lambda interpretation: 矩陣的列能夠看做是|k| |v|-維上下文特徵的固定大小的集合。這些上下文特性是從上下文的內容和結構聚合而來的。應用lambda線性函數動態分佈上下文特性,以產生 的輸出。這個過程用來捕捉密集的內容和基於位置的遠距離互動,而不產生Attention Map。svg

四、Normalization:做者實驗代表,在計算查詢和值以後應用批處理歸一化是有幫助的。

3.二、帶有結構化上下文的Lambda Layers

這裏不進行詳細的描述,粗略的羅列如下步驟:

一、Translation equivariance

基於內容的交互是置換等變的,所以已是平移等變的。經過確保對任意平移t的位置嵌入知足 ,獲得了位置相互做用中的平移-等價方差。

二、Lambda convolution :

從計算的角度來看,使用全局上下文可能會產生噪聲。所以,將位置交互的範圍限制到查詢位置n周圍的一個局部鄰域,就像局部自注意力和卷積的狀況同樣,多是有用的。在上下文被安排在多維網格上的狀況下,能夠經過使用常規卷積從局部上下文生成位置lambdas,將V中的v維視爲額外的extra spatial dimension。稱這個運算爲lambda convolution。因爲計算如今被限制在一個局部範圍,lambda卷積獲得線性的時間和內存複雜度。lambda卷積很容易與其餘功能一塊兒使用,如dilation和striding,並在專用硬件加速器上享受高度優化的實現。

3.三、使用Multi-Query Lambda減小複雜性

批量Multi-Query Lambda層使用einsum有效實現爲:

這裏的複雜度分析再也不進行描述,更詳細的內容能夠看論文原文,接下來直接看其再ResNet50上的效果:

四、實驗

4.一、基於ImageNet分類的實驗

4.二、基於目標檢測和實例分割的實驗

因爲筆者能力有限,其中有理解錯誤的地方還請擔待,若是想了解更多詳細信息,能夠參考論文原文。
論文的獲取方式爲:掃描下方二維碼回覆【lambdanet】便可獲取

解讀視頻:https://www.youtube.com/watch?v=3qxJ2WD8p4w

參考:[1].LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION

聲明:轉載請說明出處

掃描下方二維碼關注【AI人工智能初學者】公衆號,獲取更多實踐項目源碼和論文解讀,很是期待你個人相遇,讓咱們以夢爲馬,砥礪前行!!!

點「在看」給我一朵小黃花唄

本文分享自微信公衆號 - AI人工智能初學者(ChaucerG)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索