殊途同归的策略梯度与零阶优化
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
深度學(xué)習(xí)如此成功的一個(gè)巨大原因就是基于梯度的優(yōu)化算法(SGD、Adam 等)能有效地求解大多數(shù)神經(jīng)網(wǎng)絡(luò)模型。然而,既然是基于梯度,那么就要求模型是可導(dǎo)的,但隨著研究的深入,我們時(shí)常會(huì)有求解不可導(dǎo)模型的需求,典型的例子就是直接優(yōu)化準(zhǔn)確率、F1、BLEU 等評(píng)測(cè)指標(biāo),或者在神經(jīng)網(wǎng)絡(luò)里邊加入了不可導(dǎo)模塊(比如“跳讀”操作)。
▲ Gradient
本文將簡單介紹兩種求解不可導(dǎo)的模型的有效方法:強(qiáng)化學(xué)習(xí)的重要方法之一策略梯度(Policy Gradient),以及干脆不需要梯度的零階優(yōu)化(Zeroth Order Optimization)。表面上來看,這是兩種思路完全不一樣的優(yōu)化方法,但本文將進(jìn)一步證明,在一大類優(yōu)化問題中,其實(shí)兩者基本上是等價(jià)的。
形式描述
首先,我們來形式地定義我們需要解決的問題。以監(jiān)督學(xué)習(xí)為例,訓(xùn)練數(shù)據(jù) ,模型為 , 是待優(yōu)化參數(shù),其維度為 d,假設(shè)模型本身是可導(dǎo)的,其的一般形式為 ,其中 稱為溫度參數(shù),沒有特別注明的情況下默認(rèn) 。
假如真實(shí)標(biāo)簽是 ,預(yù)測(cè)標(biāo)簽是 ,那么單個(gè)樣本的得分記為 ,訓(xùn)練目標(biāo)希望總得分越大越好,即:
看上去挺復(fù)雜的,但事實(shí)上它的含義很直觀清晰:我們想求出參數(shù) ,使得整個(gè)數(shù)據(jù)集的得分 盡可能大,而 ,說明模型預(yù)測(cè)時(shí)輸出的是概率最大的那一個(gè)。說白了,我們希望“預(yù)測(cè)概率最大的那一個(gè) y 就是評(píng)測(cè)得分最高的那一個(gè) y”。
這個(gè)形式對(duì)應(yīng)著相當(dāng)多的機(jī)器學(xué)習(xí)任務(wù),在 NLP 中包括文本分類、序列標(biāo)注、文本生成等,甚至回歸問題也可以對(duì)應(yīng)上去,可以說是很有代表性了。其困難之處就是 這一步無法提供有效的梯度,因此不好直接用基于梯度的優(yōu)化算法優(yōu)化。
策略梯度
策略梯度的想法很直接,既然原始的目標(biāo)(1)沒法求梯度,那換個(gè)跟它強(qiáng)相關(guān)的、可求梯度的目標(biāo)就行了,比如:
2.1 排序不等式
很明顯,上述定義的目標(biāo)并沒有包含 之類的算子,因此它是可導(dǎo)的。那么我們首先想要知道的是上式跟原始目標(biāo)(1)有什么關(guān)系呢?差異又在哪呢?這需要用數(shù)學(xué)中的“排序不等式”來回答:
排序不等式:對(duì)于 以及 ,并假設(shè) 是 的任一排列,那么:
也就是說“同序積和 ≥ 亂序積和 ≥ 倒序積和”。
排序不等式是很經(jīng)典的不等式,網(wǎng)上很容易找到它的證明(一般用數(shù)學(xué)歸納法),這里就不證了。
根據(jù)排序不等式我們可以知道,如果目標(biāo)(2)達(dá)到最大值,那么 與 是同序的,也就是說確實(shí)可以實(shí)現(xiàn)“預(yù)測(cè)概率最大的那一個(gè) y 就是評(píng)測(cè)得分最高的那一個(gè) y” 這個(gè)目標(biāo),但是同時(shí)還實(shí)現(xiàn)了“預(yù)測(cè)概率第二大的那一個(gè)y就是評(píng)測(cè)得分第二高的那一個(gè) y”、“預(yù)測(cè)概率第三大的那一個(gè) y 就是評(píng)測(cè)得分第三高的那一個(gè) y” 等目標(biāo),而這些并不是原始目標(biāo)所必須的。
所以,目標(biāo)(2)跟原始目標(biāo)是強(qiáng)相關(guān)的,但是要求更多一些。
注意到,排序不等式?jīng)]有要求 都是非負(fù)數(shù),所以實(shí)際的打分函數(shù) 有可能是負(fù)數(shù)的。
2.2 采樣估計(jì)梯度
確定目標(biāo)(2)是可行的之后,我們可以求它的梯度:
一般來說,求梯度 并不困難,而 才是主要的困難,因?yàn)樗獙?duì)所有候選類別求和,而實(shí)際上的候選類別數(shù)目可能大到難以承受,相關(guān)討論在之前的《漫談重參數(shù):從正態(tài)分布到 Gumbel Softmax》[1] 也出現(xiàn)過。因此,比較好的辦法是轉(zhuǎn)化為采樣估計(jì)的形式,即:
這樣原則上我們就只需要采樣適當(dāng)數(shù)目的 y 估計(jì)上式了,最后的結(jié)果便稱為“策略梯度”。有了梯度,就可以套用現(xiàn)成的優(yōu)化器來完成優(yōu)化了。
2.3 降低方差
剛才我們說,往 里加上一個(gè)常數(shù),并不會(huì)改變最終的結(jié)果。但是,它有可能改變采樣估算的效率,用統(tǒng)計(jì)的語言來說,就是它能改變采樣的方差。舉個(gè)簡單的例子,[4, 5, 6] 和 [-10, 10, 15],它們的均值都是 5(代表我們要估算的目標(biāo)),但是它們的方差分別為 0.67 和 116.67,也就是后者方差遠(yuǎn)大于前者。
如果我們只從中采樣一個(gè)樣本,那么前者與目標(biāo)的最大誤差也不過是 1,后者最大誤差能達(dá)到 15,最小誤差都有 5,所以雖然理論上最終的均值都是一樣的,但是前者的估算效率要遠(yuǎn)遠(yuǎn)高于后者(采樣更少的樣本,得到更高的估算精度)。
這個(gè)簡單的例子告訴我們要提高估算效率,就要想辦法得到方差更小的估計(jì)量。這時(shí)候我們往 里邊減去一個(gè)常數(shù) b(稱為 baseline,“常數(shù)”是指不依賴于 y,但可以依賴于 x):
最終的結(jié)果(均值)不會(huì)產(chǎn)生變化:
但是它方差有可能變,我們希望最小化方差,根據(jù) 知最小化方差等價(jià)于最小化二階矩:
這只不過是一個(gè)二次函數(shù)最小值問題,解得最優(yōu)的 b 是:
即以 為權(quán)重對(duì) 求加權(quán)期望。但是要獲取每個(gè)候選類別的梯度成本會(huì)比較大,我們通常不考慮這個(gè)權(quán)重,而使用一個(gè)簡化的版本:
結(jié)合式(6),我們可以發(fā)現(xiàn)思想其實(shí)很直觀:就是要從 里邊采樣若干個(gè) y,然后算出 的均值 b,大于這個(gè)均值的執(zhí)行梯度上升(強(qiáng)化效果),小于這個(gè)均值的執(zhí)行梯度下降(削弱效果)。
2.4 一言以蔽之
簡單來說,策略梯度就是在遇到有 操作等不可導(dǎo)目標(biāo)函數(shù)時(shí),換一個(gè)可導(dǎo)的目標(biāo)(2),這時(shí)候用強(qiáng)化的語言來說,y 稱為“策略”, 稱為“決策模型”, 就是“獎(jiǎng)勵(lì)”,然后配合采樣估計(jì)和降低方差技巧,得到原模型的一個(gè)有效的梯度估計(jì),從而完成模型的優(yōu)化。
零階優(yōu)化
零階優(yōu)化泛指所有不需要梯度信息的優(yōu)化方法,而一般情況下它指的是基于參數(shù)采樣和差分思想來估計(jì)參數(shù)更新方向的優(yōu)化算法。
從形式上來看,它是直接在參數(shù)空間中進(jìn)行隨機(jī)采樣,不依賴于任何形式的梯度,因此理論上能求解的目標(biāo)是相當(dāng)廣泛的;不過也正因?yàn)樗苯釉趨?shù)空間中進(jìn)行采樣,只是相當(dāng)于一種更加智能的網(wǎng)格搜索,因此面對(duì)高維參數(shù)空間時(shí)(比如深度學(xué)習(xí)場景),它的優(yōu)化效率會(huì)相當(dāng)?shù)?#xff0c;因此使用場景會(huì)很受限。
不過就算這樣,也不妨礙我們學(xué)習(xí)零階優(yōu)化的思想,畢竟技多不壓身。此外,深度學(xué)習(xí)雖然往往參數(shù)量很大,但是通常來說我們?cè)O(shè)計(jì)的模型大部分模塊都是可導(dǎo)的,不可導(dǎo)的可能只有一小部分,因此也許有可能讓可導(dǎo)部分直接用梯度優(yōu)化器來優(yōu)化,不可導(dǎo)的部分才用零階優(yōu)化,這便是它的應(yīng)用場景之一了,這樣的思想在很多 NAS 的論文中都出現(xiàn)過。
3.1 零階梯度
零階優(yōu)化不需要我們通常意義下所求的梯度,但是它定義了一個(gè)基于采樣和差分的“替代品”,我們暫且稱為“零階梯度”:
對(duì)于標(biāo)量函數(shù) f(x),定義它在 x 處的零階梯度為:
其中 是事先給定的小正數(shù), 則是事先指定的均值為 0、協(xié)方差矩陣為單位矩陣的分布,通常我們會(huì)使用標(biāo)準(zhǔn)正態(tài)分布。
可以看到,只需要從 中采樣若干個(gè)點(diǎn),就可以對(duì)零階梯度進(jìn)行估算,而有了零階梯度之后,我們就可以把它當(dāng)作普通的梯度來套用基于梯度的優(yōu)化器,這便是零階優(yōu)化的基本思想。
特別地,如果 本身是可導(dǎo)的,那么 ,所以當(dāng) 時(shí):
也就是說 等于普通的梯度,所以 確實(shí)是普通梯度的合理推廣之一。
3.2 也有basline
善于推導(dǎo)的讀者可能會(huì)發(fā)現(xiàn),在定義(11)中,由于 的均值為 0,所以 其實(shí)不影響最終結(jié)果,即:
那么 的作用是什么呢?其實(shí)跟前面策略梯度一樣,都是為了降低方差,我們同樣可以引入 b,然后最小化二階矩(等價(jià)于最小化方差):
解得最優(yōu)的 b 為:
實(shí)驗(yàn)的時(shí)候,可以直接用有限個(gè)樣本估計(jì)上式。事實(shí)上,如果 是可導(dǎo)的話,可以用泰勒展開近似完成積分,結(jié)果是 ,從這個(gè)角度看直接取 也是一個(gè)合理的選擇,這就說明了引入 項(xiàng)的必要性與合理性。
3.3 一言以蔽之
零階優(yōu)化方法主要是基于差分來定義了一個(gè)梯度的合理推廣,由于算差分不需要函數(shù)的可導(dǎo)性,因此自然能適用于可導(dǎo)/不可導(dǎo)目標(biāo)的優(yōu)化。
當(dāng)然,由于 u 的維度就是全體參數(shù) 的維度,對(duì)于深度學(xué)習(xí)這樣的參數(shù)量巨大的模型,其實(shí)更新過程中的方差會(huì)很大,不好收斂,所以通常來說零階優(yōu)化只用來優(yōu)化模型的一小部分參數(shù),或者作為輔助優(yōu)化手段(比如“可導(dǎo)目標(biāo)+普通梯度+大學(xué)習(xí)率”與“不可導(dǎo)目標(biāo)+零階梯度+小學(xué)習(xí)率”交替更新)。
對(duì)于直接在高維空間中應(yīng)用零階優(yōu)化方法,也有一定的研究工作(比如Gradientless Descent: High-Dimensional Zeroth-Order Optimization [2] ),但還不算很成功。
此外,之前在《從采樣看優(yōu)化:可導(dǎo)優(yōu)化與不可導(dǎo)優(yōu)化的統(tǒng)一視角》[3] 介紹的統(tǒng)一視角,也可以看作是一種零階優(yōu)化方法,它是對(duì)常見優(yōu)化思路的更統(tǒng)一的推廣(通過它可以導(dǎo)出梯度下降、牛頓法、零階梯度等),但原則上來說,它也存在跟零階梯度一樣的方差大等“通病”,這是零階優(yōu)化方法很難避免的。
貌離神合
看上去,策略梯度和零階優(yōu)化確實(shí)有很多相似之處,比如大家都是需要隨機(jī)采樣來估計(jì)梯度,大家都需要想辦法降低方差,等等。當(dāng)然,不相似之處也能列舉出不少,比如策略梯度是要對(duì)策略空間采樣,而零階優(yōu)化則是對(duì)參數(shù)空間采樣;又比如策略梯度本質(zhì)上還是基于梯度的,而零階優(yōu)化理論上完全不需要梯度。
那么,兩者之間的關(guān)系究竟是怎樣呢?接下來我們將會(huì)證明,對(duì)于本文開頭提出來的優(yōu)化問題(1)來說,兩者基本上是等價(jià)的。證明的思路是求目標(biāo)(1)的零階梯度,經(jīng)過一系列簡化后發(fā)現(xiàn)它基本上就是策略梯度。
4.1 劃分全空間
我們記:
那么根據(jù)式(13),它的零階梯度是:
它可以轉(zhuǎn)化為:
看起來很復(fù)雜,其實(shí)思想很簡單,就是不同的u的預(yù)測(cè)結(jié)果 也不同,我們將預(yù)測(cè)結(jié)果同為y的所有 u 放在一起,記為 ,這時(shí)候全空間 就被劃分為互不相交的子集 了。
前面沒有特別注明積分區(qū)域的積分默認(rèn)是在全空間 進(jìn)行的,劃分空間后,它就等于在各個(gè)劃分的子集 上的積分之和了。
4.2 示性函數(shù)
然后,我們用一個(gè)“示性函數(shù)”技巧,定義:
那么:
回顧 的含義,對(duì)于任意 ,模型 的預(yù)測(cè)結(jié)果就是 y,在示性函數(shù)里邊則輸出 1,那么我們可以發(fā)現(xiàn)實(shí)際上就有:
其中 是 softmax 里邊的溫度參數(shù)(文章開頭已經(jīng)說明)。根據(jù)這個(gè)結(jié)論,我們可以近似地用 代替 ,然后代入上述各個(gè)式子,得到:
4.3 近似求積分
最后,由于 是可導(dǎo)的,因此利用展開 代入上式完成對(duì) u 的積分得:
對(duì)比式(4)可以發(fā)現(xiàn),上式右端正是策略梯度。
所以,看起來差異蠻大的零階梯度,最終指向的方向?qū)嶋H上跟策略梯度是相近的,真可謂貌離神合、殊途同歸了,有種“正確的答案只有一個(gè)”的感覺。這不禁讓筆者想起了列夫·托爾斯泰的名言:
幸福的家庭都是相似的,不幸的家庭各有各的不幸。
參數(shù)的更新方向也是如此。
文末小結(jié)
本文主要介紹了處理不可導(dǎo)的優(yōu)化目標(biāo)的兩種方案:策略梯度和零階優(yōu)化,它們分別是從兩個(gè)不同的角度來定義新的“梯度”來作為參數(shù)的更新方向。
表面上來看兩者走了不同的路徑,但筆者的探討表明,在處理跟策略梯度一樣的優(yōu)化問題時(shí),零階優(yōu)化所給出的更新方向跟策略梯度基本上是等價(jià)的,兩者殊途同歸。此外,本文也可以作為強(qiáng)化學(xué)習(xí)的入門資料供初學(xué)者參考。
參考文獻(xiàn)
[1] https://kexue.fm/archives/6705
[2] https://arxiv.org/abs/1911.06317
[3] https://kexue.fm/archives/7521
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的殊途同归的策略梯度与零阶优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从PageRank到反欺诈与TextRa
- 下一篇: BERT模型蒸馏有哪些方法?