當前位置:
首頁 > 新聞 > transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

雷鋒網 AI 科技評論按,膠囊網路是一種熱門的計算機網路模型,倍受人工智慧領域相關研究人員的關注。而 transformer 是谷歌在 2017 年的一篇著名論文「Attention Is All You Need」中提出的一種網路結構,這種網路結構是基於注意力機制的,主要關注 NLP 領域的機器翻譯問題。

Amsterdam 大學的博士生 Samira 思考了膠囊網路和 transformer 之間的關係,並發表了一篇博客。在博客中,她討論了 transformer 和膠囊網路的主要組成部分以及它們之間的關係。雷鋒網 AI 科技評論將她的文章編譯整理如下:

在本文中,我們將介紹 transformer 和膠囊網路的主要組成部分,並嘗試在這兩個模型的不同組件之間建立連接。我們的主要目標是研究這些模型本質上是否是不同的,如果是不同的,它們之間的關係是什麼。

transformers:

transformers,或所謂的自注意力網路,是一系列深度神經網路體系結構,其中自注意力層相互堆疊,通過多重轉換學習輸入分詞在具體的情境中如何表示。這些模型已經能夠在許多視覺和 NLP 任務上實現 SOTA。關於如何實現 transformer 有很多細節,但從整體上來看,transformer 是一種編碼器-解碼器體系結構,其中每個編碼器和解碼器模塊由一組 transformer 層組成,在每個層中,我們學習(重新)計算每個輸入分詞的表示。這個表示是通過關注前一層中所有分詞的表示方式計算出來的。具體如下圖所示。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

因此,為了計算層 L+1 中的表示,來自它前面的層 L 的表示通過一個自注意力模塊傳遞過來,該模塊更新每個和其它分詞有關聯的分詞的表示。後面的層的分詞在解碼器塊的自注意力中被屏蔽。另外,除了自注意力之外,解碼器中還有編碼器-解碼器注意(「encoder-decoder-attention」,上圖中沒有描述)。要了解有關 transformer 的更多詳細信息,請查看這篇偉大的文章:http://jalammar.github.io/illustrated-transformer。

transformer 的關鍵組成部分是自注意力機制,它的一個重要特性是採用多頭注意力機制。在這篇文章中,我們主要關注這個部分,並在將膠囊網路與 transformer 進行比較的過程中,深入探討它的一些細節。

使用多頭注意力機制的主要動機是獲得探索多個表示子空間的機會,因為每個注意力頭得到的表示投影是不一樣的。在理想的情況下,每個注意力頭都會通過考慮一個不同的方面來學習處理輸入的不同部分,並且在實踐中,不同的注意力機制計算出來的注意力分布也是不同的。transformer 中的多個注意力頭和 CNN 中的多個濾波器是類似的。

在這裡,我們解釋了如何使用多個頭的自注意力機制來整合來自較下層 L 中不同位置的信息,以計算較上層的 L+1 表示。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

首先,我們應該注意到,每一層的每個位置的表示都形式都是(鍵、值、查詢)三元組。因此,對於每一層,我們有三個矩陣(K,Q,V),這些矩陣中的每一行對應一個位置。

注意力頭 i 的輸入是 K、Q 和 V 的線性變換:

然後,該注意力頭 i 輸出為:

di 表示 Ki的長度。

直觀地說,在 L+1 層中每個位置的表示是 L 層中所有表示的加權組合。為了計算這些權重,注意力分布,每個注意力頭,計算 L+1 層中每個位置的查詢與 L 層中所有位置的鍵之間的相似性,然後通過 softmax 函數對這些相似性分數進行計算,得出所有位置的注意力分布。因此,對於每個自注意力層中的每個位置,我們在每個注意力頭下一層的位置上都有一個注意力權重分布。最後,對於每個注意力頭,使用頭部的注意力概率組合所有位置的值。在最後一步中,將所有注意力頭的值進行線性連接和轉換,以計算多個注意力集中部分的輸出:

因此,根據所學的參數,對於每一層,我們有一個轉換矩陣Wo,它將所有注意力頭的輸出組合起來。同時,對每個注意力頭來說,我們有三個轉換矩陣,即

帶 EM 路由的矩陣膠囊:

從一開始,膠囊網路就被用於以更自然的方式來處理圖像。在 2000 年,Hinton 和 Gharamani 認為,依賴於分割預處理階段的圖像識別系統存在這樣一個事實,即分割器不知道被處理對象的一般信息,同時,他們建議圖像的識別和分割都可以在同一個系統裡面完成。其思想是,為了識別對象的某一部分,必須首先需要對對象是什麼有一個大致的了解。換句話說,我們需要同時擁有自上而下和自下而上的信息流。

對於 NLP 問題來說這也同樣適用。這方面的一個例子是解析 garden path 裡面的句子。膠囊網路可以被看作是 CNN,在那裡內核的輸出有一些結構,池被動態路由所取代。

膠囊是一個單元,它學習如何在有限的查看條件域中檢測隱式定義的實體。它輸出實體存在的概率和一組反映實體特徵(如姿態信息)的「實例化參數」。存在概率是視點不變的,例如,它不會隨著實體的移動或旋轉而改變,然而實例化參數是視點等變的,例如,如果實體移動或旋轉,這些參數就會發生變化。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

在具有 EM 路由的矩陣膠囊中,它們使用了一個膠囊網路,這個網路包含標準的卷積層,以及一層初級膠囊,隨後是幾層卷積膠囊。在這個版本的膠囊網路中,實例化參數被表示為一個矩陣,這個矩陣被稱為姿態矩陣。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

每個膠囊層都有固定數量的膠囊類型(類似於 CNN 中的濾波器),它們被選作超參數。每個膠囊都是某種膠囊類型的實例。每個膠囊類型對應於一個實體,並且所有相同類型的膠囊都對應於不同位置的類型相同的實體。在較下層中,膠囊類型學習識別下層實體,例如眼睛,在較上層中,它們會呈現更多的上層實體,例如臉。

在卷積膠囊層中,每種膠囊類型的權矩陣在輸入上進行卷積,類似於內核在 CNN 中的應用。這會導致每種膠囊類型具有不同的實例。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

在膠囊網路中,每個層中膠囊類型的數量是預先定義好的。在兩個相鄰層中的每種膠囊類型之間,都有一個變換矩陣。這樣,每一個上層膠囊看到的都是不同角度的下層膠囊中的實體。

姿態矩陣

該方程顯示了如何根據下層膠囊的姿勢矩陣計算上層膠囊的姿勢矩陣 Mj,即 Mis 是:

在這個方程中,rij是膠囊 i 分配給膠囊 j 的概率,也就是說,膠囊 i 對膠囊 j 所捕獲概念的貢獻程度。WijMi 是下層膠囊 i 相對於膠囊 j 的姿態矩陣投影,也稱為「vote 矩陣」,表示為 Vij。因此,膠囊 j 的姿態矩陣基本上是下層膠囊投票矩陣的加權平均數。請注意,分配概率是作為動態路由 EM 過程的一部分計算的,與膠囊的存在概率或激活概率不同。

存在概率

現在,讓我們看看如何計算上層膠囊的激活概率。簡單地說,較上層膠囊的激活概率是根據激活成本與不激活成本相權衡計算出來的。

問題是:這些成本是什麼,我們該如何計算它們?

如果分配給更上層膠囊的概率總和大於零,即有一些較下層膠囊分配給這個膠囊,則不激活該膠囊會產生成本。但膠囊的激活概率並不是僅根據分配概率的值來計算的。我們還應該考慮分配給上層膠囊的下層膠囊的 vote 矩陣彼此之間的一致性。

換句話說,分配給上層膠囊的下層膠囊應該是上層膠囊所代表的同一實體的一部分。因此,激活膠囊的成本也反映了下層膠囊的 vote 矩陣與上層膠囊計算出的姿態矩陣之間的不一致程度。此外,為了避免隨意激活膠囊,激活每個膠囊時都有固定的懲罰。

帶 EM 的動態路由

這裡的主要挑戰是計算分配概率 rij。也就是如何將下層膠囊

連接到上層膠囊

,或者換句話說,如何在膠囊層之間路由信息。我們希望這些聯繫不僅取決於下層膠囊的存在,還取決於它們彼此之間的關係以及它們和上層膠囊之間的關係。例如,代表眼睛的膠囊(面部的一部分)可能不應該和代表桌子的膠囊聯繫在一起。這可以看作是在計算從下層膠囊到上層膠囊的注意力。但問題在於,為了能夠根據下層膠囊與上層膠囊的相似性來計算這一概率,我們事先沒有對上層膠囊的初始表示。這是因為膠囊的表示取決於下層的哪些膠囊將會被分配給它。這正是動態路由起作用的地方,它通過使用 EM 解決了這個問題。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

基於

的表示和下層膠囊到上層膠囊的分配概率,我們可以使用 EM 計算出

的表示。這種迭代過程稱為帶 EM 的動態路由。請注意,帶 EM 的動態路由是膠囊網路中前向傳遞的一部分,在訓練期間,錯誤通過動態路由的展開迭代進行反向傳播。

值得注意的是,它的計算方法和主要膠囊層的計算方法有點不同,因為其下面的層不是膠囊層。初級膠囊的姿態矩陣只是下層內核輸出的線性變換。此外,每個輸出類的最終膠囊層有一個膠囊。當將最後一個卷積膠囊層連接到最後一層時,變換矩陣在不同的位置上共享,它們使用一種稱為「坐標加成」(Coordinate Addition)的技術來保存關於卷積膠囊位置的信息。

膠囊網路與 transformer:

最後,我們來到了本文最有趣的部分:比較這兩個模型。雖然從實現的角度來看,膠囊網路和 transformers 似乎並不十分相似,但這兩個系列模型的不同組件之間存在一些功能上的相似性。

動態路由與注意力機制

在膠囊網路中,我們使用動態路由來確定從下層到上層的連接,與 transformer 中的情況一樣,我們使用自注意力來決定如何處理輸入的不同部分以及來自不同部分的信息如何促進表示的更新。我們可以將 transformer 中的注意力權重映射到膠囊網路中的分配概率,但是,膠囊網路中的分配概率是自下而上計算的,而 transformer 中的注意力是自上而下計算的。即 transformer 中的注意力權重分布在下層的表示上,而在膠囊網路中,分配概率分布在上層膠囊上。請注意,在 transformer 中,注意力概率是基於同一層中表示的相似性計算的,但這相當於假設上層首先用下層的表示進行初始化,然後通過將這些初始表示與下層的表示進行比較,計算出注意力概率來更新上層的表示。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

膠囊網路中的自下而上的注意力機制以及存在概率和激活膠囊會產生的懲罰,明確允許模型在信息傳播到更上面的層時抽象出概念。另一方面,在 transformer 中,自上而下的注意力機制允許上層節點不關注下層節點,並過濾掉在這些節點中捕獲的信息。

現在的問題是,為什麼在膠囊網路中我們需要使用 EM 來進行動態路由?為什麼我們不能用一個和 transformer 中計算注意力的機制類似的方法來計算膠囊網路中的分配概率呢?

我們的猜想是,可以使用點積相似度來計算下層膠囊與上層膠囊的相似度,從而計算出分配概率。

目前面臨的挑戰在於,在膠囊網路中,我們對更上層膠囊的表示沒有任何先驗的假設,因為我們事先並不知道它們所代表的是什麼。另一方面,在 transformer 中,所有層中的節點數是相同的,並且數量上和輸入的分詞數相同,因此,我們可以將每個節點解釋為相應輸入分詞結合了上下文的表示。這樣,我們就可以用較下層的對應表示來初始化每個較上層中的表示,這樣就可以使用這兩種表示之間的相似性分數來計算注意力權重。

膠囊類型和注意力頭:

膠囊網路和 transformer 體系結構都有一種機制,允許模型從不同的角度處理較下層的表示,以此來計算較上層的表示。在膠囊網路中,來自兩個相鄰層的每對膠囊類型之間有不同的轉換矩陣,因此作為不同膠囊類型實例的膠囊從不同的角度查看前一層的膠囊。與此相同,在 transformer 中,我們有多個注意力頭,其中每個注意力頭使用一組不同的轉換矩陣來計算鍵、值和查詢的投影值。因此,每個注意力頭在下層表示的不同投影上工作。這兩種機制和卷積神經網路中有不同的核是類似的。

transformer 中的注意力機制和膠囊網路中的動態路由:它們在本質上或許具有相似性

現在,膠囊網路和 transformer 在這方面的不同之處在於,在膠囊網路中,不同類型的膠囊有不同的查看角度,最終,較下層膠囊的分配概率在較上層中的所有膠囊上進行歸一化,而不管其類型如何。因此,在較低層中,每個膠囊有一個分配分布。而在 transformer 中,每個注意力頭獨立地處理其輸入。這意味著我們在更高層的每個位置都有一個單獨的注意力分布,注意力頭的輸出只在最後一個步驟中組合,在最後一個步驟中它們被簡單地連接和線性轉換,以計算多頭注意力塊的最終輸出。

位置嵌入和坐標添加:

在 transformer 和膠囊網路中,都有一些機制可以將特徵的位置信息顯式地添加到模型計算的表示中。然而,在 transformer 中,這是在第一層之前完成的,其中位置嵌入被添加到單詞嵌入中。而在膠囊網路中,它是通過坐標添加在最後一層中完成的,其中每個膠囊的感受野中心的縮放坐標(行、列)被添加到 vote 矩陣的右邊列的前兩個元素中。

結構化隱藏表示:

在 transformer 和膠囊網路中,隱藏的表示是以某種方式構建的。在膠囊網路中,我們用一種膠囊代替標準神經網路中的標量激活單元,每個這種膠囊都用姿態矩陣和激活值表示。姿態矩陣對每個膠囊的信息進行編碼,並用於動態路由計算下層膠囊和上層膠囊之間的相似性,激活概率決定了它們是否存在。

與此相反,在 transformer 中,表示被分解成鍵、查詢和值三元組,其中鍵和查詢是用於計算輸入不同部分之間相似性的定址向量,並計算注意力分布,以計算輸入的不同部分對彼此的表示的貢獻程度。

從廣義的概念來看,膠囊網路中的姿態矩陣在 transformer 中扮演著鍵和查詢向量的角色。這裡的要點是,它在不同類型信息的表示分離中似乎有一些優勢,並且在這兩個模型中,這是基於路由或注意力處理過程中隱藏狀態的角色來完成的。

via:https://staff.fnwi.uva.nl/s.abnar/?p=108

雷鋒網雷鋒網

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

加拿大高等研究院宣布新的科研計劃,Bengio、LeCun 任 AI 項目負責人
重磅|嬴徹科技核心團隊亮相 自動駕駛定位車規級量產

TAG:雷鋒網 |