Sparsemax封閉形式解及其損失函數(shù)的推導(dǎo)

本文目標(biāo)是三個(gè)方面。第一部分討論了sparsemax背后的動(dòng)機(jī)及其與softmax的關(guān)系,首次介紹了該激活函數(shù)的原始研究論文摘要,以及使用sparsemax的優(yōu)點(diǎn)概述。第二部分和第三部分專門討論數(shù)學(xué)推導(dǎo),具體地找到閉合形式的解以及適當(dāng)?shù)膿p失函數(shù)。
1.Sparsemax概述
Martins等人通過論文《From Softmax to Sparsemax: A Sparse Model of Attention and Multi-Label Classification》引入Sparsemax,提出了一種替代眾所周知的softmax激活函數(shù)的新方法。
雖然softmax是輸出在K個(gè)概率上歸一化的概率分布的多類分類的適當(dāng)選擇,但在許多任務(wù)中,我們希望獲得一個(gè)更稀疏的輸出。Martins引入了一個(gè)新的激活函數(shù)sparsemax,該函數(shù)輸出多項(xiàng)式分布的稀疏概率,因此從分布的質(zhì)量中濾除了噪聲。
這意味著sparsemax將為某些類分配恰好為0的概率,而softmax會(huì)保留這些類并為它們分配非常小的值,如10-3。在大型分類問題中,稀疏最大值可能特別有利;例如在自然語(yǔ)言處理(NLP)任務(wù)中,其中softmax層正在非常大的詞匯集上進(jìn)行多項(xiàng)分布建模。
但是,實(shí)際上,將softmax函數(shù)更改為稀疏估計(jì)器并不是一件容易的事。在保持softmax的一些基本屬性的同時(shí)獲得這種轉(zhuǎn)換(例如,易于評(píng)估,易于微分并容易轉(zhuǎn)換為凸損失函數(shù))變得非常具有挑戰(zhàn)性。
機(jī)器學(xué)習(xí)中解決該問題的傳統(tǒng)方法是使用L1懲罰,該懲罰在神經(jīng)網(wǎng)絡(luò)中的輸入變量和/或深層方面允許一定程度的稀疏性。雖然這種方法相對(duì)簡(jiǎn)單,但是L1懲罰會(huì)影響神經(jīng)網(wǎng)絡(luò)的權(quán)重,而不是作為稀疏概率的目標(biāo)輸出。
因此,論文作者認(rèn)識(shí)到需要補(bǔ)充激活功能,即 sparsemax,他們將其公式化為可解決的二次問題,并在一組約束條件下找到一個(gè)解決方案,以獲得與softmax類似的性質(zhì)。
在深入研究sparsemax實(shí)現(xiàn)背后的證據(jù)之前,讓我們首先討論論文中的一些重要的高級(jí)發(fā)現(xiàn)。以下要點(diǎn)總結(jié)了一些主要內(nèi)容:
Sparsemax是分段線性激活函數(shù)
盡管softmax形狀等效于傳統(tǒng)的S型函數(shù),但Sparsemax在一個(gè)維度上卻是"硬"的S型。此外,在兩個(gè)維度上,sparsemax是具有整個(gè)飽和區(qū)域(0或1)的分段線性函數(shù)。這是論文中的圖表,可幫助可視化softmax和sparsemax。

Sparsemax Loss與分類Huber Loss有關(guān)
在二元情況下,導(dǎo)出的稀疏極大損失函數(shù)與用于分類的修正的Huber損失直接相關(guān)(定義在張童論文《基于凸風(fēng)險(xiǎn)優(yōu)化的分類方法的統(tǒng)計(jì)特征和一致性》和鄒惠,朱季,和黑斯,特雷弗論文《基于邊緣向量、容許損失和多類邊緣的分類器》,斯坦福大學(xué)2006年技術(shù)報(bào)告)。也就是說,如果x和y是sparsemax之前的兩個(gè)分?jǐn)?shù),則使用sparsemax層和sparsemax損失,且t = x-y,并且在不失一般性的前提下,假設(shè)正確的標(biāo)簽為1,我們可以證明:

這是一個(gè)很好的性質(zhì),證明了sparsemax的理論基礎(chǔ);Huber損失是L1和L2懲罰之間的折衷,這正是我們?cè)噲D從softmax激活中獲得的結(jié)果,同時(shí)包括稀疏性。此外,可以通過將損失與其他標(biāo)準(zhǔn)分類損失進(jìn)行比較來(lái)證明與Huber損失的相似性:

在上圖中,您可以看到,對(duì)于t的負(fù)值,即對(duì)于大誤差,損耗與誤差呈線性比例關(guān)系,類似于鉸鏈損失。但是,隨著t收斂到1,即誤差減小,我們觀察到平方關(guān)系,類似于最小二乘損失。
隨著類數(shù)的增加,稀疏極大可以提高性能
sparsemax框架已顯示在帶有大量標(biāo)簽的數(shù)據(jù)集上表現(xiàn)特別出色。在下面的示例中,您可以在表1中看到幾個(gè)數(shù)據(jù)集及其詳細(xì)信息,并在表2中看到了不同激活函數(shù)(即 S型,softmax和sparsemax)的微平均/宏平均F1分?jǐn)?shù)。標(biāo)簽的數(shù)量(即較低的行數(shù)),與softmax相比,sparsemax性能的提升變得越來(lái)越明顯。

表1:數(shù)據(jù)集說明

表2:不同數(shù)據(jù)集的性能基準(zhǔn)
Sparsemax可以用于注意力模型,以提高潛在的性能和更好的解釋性
稀疏輸出的想法也可以在具有注意力機(jī)制的深度學(xué)習(xí)模型中加以利用-一種用于計(jì)算潛在大量實(shí)體的注意力權(quán)重的神經(jīng)網(wǎng)絡(luò)。事實(shí)證明,這種注意力機(jī)制在NLP任務(wù)(例如翻譯或語(yǔ)言建模)中特別有效,這導(dǎo)致了所謂的Transformers的創(chuàng)建,即利用自我注意力的非循環(huán)模型體系結(jié)構(gòu),廣泛用于諸如BERT的最新語(yǔ)言模型。從sparsemax中獲得嚴(yán)格的空概率的優(yōu)勢(shì)在于,如果某些隱藏狀態(tài)(單詞)被判斷為不相關(guān),則可以完全消除它們的影響--與softmax相比,softmax最終累積了所有不相關(guān)狀態(tài)的無(wú)窮小和,并可能影響模型性能。此外,在概率為零的情況下,我們擴(kuò)大了注意力的一個(gè)主要優(yōu)勢(shì):可解釋性。使用稀疏分?jǐn)?shù)有助于清理注意力圖,并闡明注意力系統(tǒng)的工作方式。
然而,根據(jù)經(jīng)驗(yàn),由于自然語(yǔ)言推理任務(wù)中的關(guān)注稀疏,本文僅報(bào)告了少量的性能提升。

表3:SNLI數(shù)據(jù)集上注意力模型的性能
既然我們已經(jīng)強(qiáng)調(diào)了sparsemax的一些優(yōu)點(diǎn)和關(guān)鍵發(fā)現(xiàn),現(xiàn)在讓我們繼續(xù)進(jìn)行sparsemax背后的兩個(gè)重要推導(dǎo):即找到其閉式解以及其損失函數(shù)方程。
2.稀疏激活函數(shù)
回顧Softmax
Softmax是S形到多類分類的概括。它采用了對(duì)數(shù)變換把所有得分?映射到概率p∈[0,1]:

從概念上講,對(duì)于一組K類,softmax是一個(gè)把K維實(shí)數(shù)向量映射到K-1維概率分布Δ(即到K-1維概率單純形)的函數(shù)。更準(zhǔn)確地說:

重要的是要注意,只有K-1自由度是必要的,因?yàn)楦怕士偤蜑?。
Softmax被定義為具有完全支持,即非零值輸出,數(shù)學(xué)上定義為

修改此屬性以允許零輸出正是使我們能夠獲得稀疏概率的原因。
Sparsemax的定義
作者將sparsemax激活函數(shù)公式化為二次約束優(yōu)化問題:

這等同于將其定義為的歐幾里得投影?到概率單純Δ? ¯ ¹。稀疏性是通過在投影過程中碰到單純形邊界的概率很高而引起的,從而使某些尺寸為零。
封閉式解決方案
上面的sparsemax定義可以用其封閉形式的解決方案編寫為


代表閾值函數(shù)。我們將在第3節(jié)中逐步推導(dǎo)該方程式。
類似地,也可以在其閉式解中表示為


下面的算法1的偽代碼總結(jié)了這組方程,可以幫助更好地理解向量z的sparsemax計(jì)算的步驟:

最具挑戰(zhàn)性的部分是確定閾值 (z) ; 我們將我們?cè)诘?節(jié)最后證明時(shí)再回到這個(gè),每個(gè)類的輸出概率我是?減去閾值τ (Z),如果該值為正,且0,如果是負(fù)的。
稀疏最大損失函數(shù)
最后,我們還想導(dǎo)出對(duì)應(yīng)于sparsemax的損失函數(shù)。雖然封閉形式解的第一個(gè)證明是直接根據(jù)sparsemax的原始定義確定的,但是損失函數(shù)是一個(gè)優(yōu)先問題,可以采取不同的形式。讓我們解釋一下原因。
可以證明,結(jié)合使用交叉熵?fù)p失(即多項(xiàng)式分布上的負(fù)對(duì)數(shù)似然率)和softmax,損失函數(shù)簡(jiǎn)化為

其中k等于真實(shí)標(biāo)簽的索引。
交叉熵?fù)p失和softmax結(jié)合使用所產(chǎn)生的優(yōu)勢(shì)簡(jiǎn)化了梯度到

這意味著在反向傳播期間,評(píng)估softmax(z)足以進(jìn)行正向和反向傳遞,并且不需要額外的計(jì)算。這種行為是我們也想在sparsemax框架中維護(hù)的屬性。
但是,根據(jù)經(jīng)驗(yàn),這種設(shè)置對(duì)于sparsemax來(lái)說是不可行的。嘗試將sparsemax與交叉熵結(jié)合在一起產(chǎn)生的一個(gè)問題是,此損失函數(shù)現(xiàn)在將需要全支持,即僅需要非零值的輸出。但是,由于損失函數(shù)采用概率的對(duì)數(shù),因此,如果概率嚴(yán)格為空,則不會(huì)定義其對(duì)數(shù)。這就是為什么交叉熵?fù)p失不能用于sparsemax激活函數(shù)的原因。作者建議找到一個(gè)滿足相似梯度表達(dá)式的可微分損失函數(shù),即

通過添加另外的約束sparsemax損耗的最小值為0,當(dāng)獲得S(z)的= {K} ,即只有正確的類是非零的,我們可以表明sparsemax損失函數(shù)具有如下形式

3.證明I:Sparsemax閉式解的推導(dǎo)
目的
該證明的目的是證明以下等效:

換句話說,我們要解決概率p和得分z之差的平方歐幾里德范數(shù)的arg min優(yōu)化問題。這可以理解為在選擇的最近點(diǎn)Δ? ¯ ¹從得分矢量?。
關(guān)于Karush-Kush-Tucker(KKT)條件的提醒
Karush–Kuhn–Tucker(KKT)條件是數(shù)學(xué)優(yōu)化中的一個(gè)概念。給定一組特定約束,它們表示滿足非線性編程解決方案的一階必要條件。在我們的sparsemax的設(shè)置,我們要找到一些功能的最低點(diǎn)F:在一定條件下??→?。
然后可以將優(yōu)化問題寫成如下形式:找到使函數(shù)f最小的x,使得滿足g (x)和h (x)的條件,即:

為了解決這個(gè)問題,我們首先需要定義拉格朗日函數(shù)L(x,μ,λ):

的KKT方法的狀態(tài)(處于高電平),其給出的拉格朗日函數(shù)L,如果(X *,μ*)是一個(gè)鞍點(diǎn)大號(hào)與μ≥0和互補(bǔ)松弛μ?g?(X *)≥0 ∈i∈[0,n],則x *是上述優(yōu)化問題的最優(yōu)向量。
以一種具體的方式,我們簡(jiǎn)單地尋找拉格朗日梯度為零的值,即:

推導(dǎo)
鑒于sparsemax是一個(gè)約束優(yōu)化問題,我們用KKT的早期符號(hào)重寫它,即使用f,g和h如下:

然后,拉格朗日采用

現(xiàn)在,我們可以針對(duì)x區(qū)分拉格朗日函數(shù):

該解決方案成為一個(gè)包含三個(gè)方程式的系統(tǒng):

第一個(gè)方程式(1)來(lái)自拉格朗日為零的梯度。第二等式(2)來(lái)自于原來(lái)的松弛條件μ≥0和從p是概率的正矢量。最后,等式(3)是互補(bǔ)松弛條件。
隨后,我們根據(jù)方程式(2)和(3)區(qū)分兩種情況。對(duì)于每個(gè)維度i∈[0,n],p?*> 0從而μ?* = 0,或者μ?*> 0從而p?* = 0。更確切地說,這意味著我們考慮兩種情況:支撐S(z)的元素,其中p> 0,以及支撐S(z)之外的元素,其中p = 0。
在繼續(xù)進(jìn)行sparsemax證明時(shí),我們需要記住,我們的目標(biāo)是兩件事:確定非零概率的值,以及確定概率為0的條件。因此:

在1.和2.中,z?大于 *,因此p?*等于它們的正差,或者p?*為零。因此,p?* =(z?- (z))?。
此外,從等式(2)我們知道∑?p?* = 1,并且存在| S(z)|,非零p?*,因此:

這是sparsemax封閉形式解推導(dǎo)的第一個(gè)證明。
4.證明II:稀疏極大損失函數(shù)的推導(dǎo)
目的
第二個(gè)證明的目的是證明以下等效性:

換句話說,我們要導(dǎo)出sparsemax損失函數(shù)的梯度與sparsemax損失函數(shù)本身之間的等價(jià)關(guān)系。
引理
在開始證明之前,我們需要定義一些重要的符號(hào)并建立兩個(gè)重要的結(jié)果:

對(duì)于引理1,我們可以直接計(jì)算關(guān)于z的²的偏導(dǎo)數(shù)。

事實(shí)上,如果??是在S(z)的,那么這將是存在于分子和的導(dǎo)數(shù)將尺度成反比| S(z) |; 否則,導(dǎo)數(shù)將為null。
接下來(lái),使用鏈?zhǔn)椒▌t,我們可以推斷出衍生τ²與問候?:

請(qǐng)注意,如果j∉S(z)則(z)= 0。
在引理2,我們感興趣的是所謂的自信 sparsemax,即當(dāng)預(yù)測(cè)受讓人重量的100%至只有真正類?。在這種情況下,我們有spar semax(z,k)=δ_k。這有兩個(gè)結(jié)果,即:

推導(dǎo)
我們想要獲得sparsemax的損失函數(shù),使得

首先,讓我們以非矢量形式查看關(guān)于z?的sparsemax的偏導(dǎo)數(shù):


然后,我們可以推斷,對(duì)于K∈ ? :

剩下的最后一步是確定積分常數(shù)。我們可以簡(jiǎn)單地挑K = 0和梯度仍然是正確的,但我們或許能有更合適的解決方案。這是我們使用上面定義的第二個(gè)引理的地方。在完美預(yù)測(cè)的情況下,我們希望損失等于零,類似于softmax或其他損失函數(shù)(如MAE / MSE)。
更準(zhǔn)確地說,我們需要滿足以下要求:

從而:

最后,我們獲得:

得出關(guān)于稀疏最大損失函數(shù)推導(dǎo)的第二個(gè)證明。
5.結(jié)論
在本文中,我們介紹了sparsemax激活函數(shù)背后的思想和數(shù)學(xué)公式,該函數(shù)與傳統(tǒng)的softmax相比,允許稀疏輸出域。我們首先總結(jié)了Martins等人的一些關(guān)鍵發(fā)現(xiàn)。本文認(rèn)為,從經(jīng)驗(yàn)上講,隨著類數(shù)的增加,sparsemax可以提高分類模型的性能。此外,在使用sparsemax訓(xùn)練的NLP注意模型中,性能提升以及更好的解釋能力十分普遍。最后,主要部分專門介紹了sparsemax背后的兩個(gè)重要證明;即閉合形式解的推導(dǎo)和潛在的損失函數(shù)。