選自 arXiv 作者:Ruoyu Sun 參與:魔王、杜偉 神經(jīng)網(wǎng)絡(luò)何時(shí)才算訓(xùn)練成功?成功背后的原因是什么?本文概述了用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法和理論。
深度學(xué)習(xí)優(yōu)化方法都有哪些?其理論依據(jù)是什么?最近,來(lái)自伊利諾伊大學(xué)香檳分校(UIUC)的研究者孫若愚就此主題寫(xiě)了一篇長(zhǎng)達(dá) 60 頁(yè)的綜述論文。
UIUC 助理教授孫若愚(圖源:https://ise./directory/profile/ruoyus) 孫若愚現(xiàn)任 UIUC 助理教授,本科畢業(yè)于北京大學(xué)數(shù)學(xué)系,博士畢業(yè)于美國(guó)明尼蘇達(dá)大學(xué)。其主要研究方向?yàn)閿?shù)據(jù)分析。 - 個(gè)人主頁(yè):https://ise./directory/profile/ruoyus
- 論文地址:https:///pdf/1912.08957.pdf
由于論文篇幅較長(zhǎng),機(jī)器之心選取了部分內(nèi)容進(jìn)行編譯介紹,更多詳情參見(jiàn)原論文。 這篇文章首先討論了梯度爆炸/消失問(wèn)題以及更通用的譜控制問(wèn)題,并討論了一些實(shí)際解決方案,如初始化和歸一化方法;其次,本文綜述了神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中使用的一般優(yōu)化方法,如 SGD、自適應(yīng)梯度方法和分布式方法,還介紹了這些算法的現(xiàn)有理論結(jié)果。最后,本文綜述了關(guān)于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的全局問(wèn)題的研究,包括糟糕的局部極小值上的結(jié)果、模式連接(mode connectivity)、彩票假設(shè)和無(wú)限寬度分析。 引言 本文的主題是了解成功訓(xùn)練神經(jīng)網(wǎng)絡(luò)的實(shí)用要素以及導(dǎo)致模型訓(xùn)練失敗的可能因素。 假設(shè)你回到 1980 年,想使用神經(jīng)網(wǎng)絡(luò)解決圖像分類問(wèn)題。如果從頭開(kāi)始訓(xùn)練,那么你最初的幾次嘗試大概率無(wú)法得到合理的結(jié)果。是哪些本質(zhì)變化使算法奏效了呢?整體來(lái)看,(除了強(qiáng)大的硬件以外)你需要三樣?xùn)|西:恰當(dāng)?shù)纳窠?jīng)網(wǎng)絡(luò)、恰當(dāng)?shù)挠?xùn)練算法和恰當(dāng)?shù)挠?xùn)練 trick。 恰當(dāng)?shù)纳窠?jīng)網(wǎng)絡(luò) 這包括神經(jīng)架構(gòu)和激活函數(shù)。對(duì)于神經(jīng)架構(gòu),你可能想用至少具備 5 個(gè)層和足夠神經(jīng)元的卷積網(wǎng)絡(luò)來(lái)替換全連接網(wǎng)絡(luò)。為了得到更好的性能,你可能想將網(wǎng)絡(luò)寬度增加到 20 甚至 100,并添加跳躍連接。至于激活函數(shù),ReLU 是不錯(cuò)的起點(diǎn),不過(guò) tanh 和 swish 也可以。 恰當(dāng)?shù)挠?xùn)練算法 使用 SGD 并堅(jiān)持到最后是一個(gè)不錯(cuò)的選擇。經(jīng)過(guò)微調(diào)的常量步長(zhǎng)已經(jīng)足夠好,而動(dòng)量和自適應(yīng)步長(zhǎng)還可以提供額外的好處。 恰當(dāng)?shù)挠?xùn)練 trick 恰當(dāng)?shù)某跏蓟瘜?duì)開(kāi)始算法訓(xùn)練非常重要。要想訓(xùn)練一個(gè)超過(guò) 10 層的網(wǎng)絡(luò),通常需要用到兩個(gè)訓(xùn)練 trick:添加歸一化層、添加跳躍連接。 這些設(shè)計(jì)選擇中哪些是必要的?目前我們對(duì)一些設(shè)計(jì)選擇有所了解,包括初始化策略、歸一化方法、跳躍連接、過(guò)參數(shù)化(大寬度)和 SGD,如下圖 1 所示。 本文將優(yōu)化的益處大致分為三部分:控制利普希茨常數(shù)(Lipschitz constant),實(shí)現(xiàn)更快收斂,獲得更好的損失分布(landscape)。但是還有很多難以理解的設(shè)計(jì)選擇,最顯著的當(dāng)屬神經(jīng)架構(gòu)了。 現(xiàn)在我們似乎無(wú)法理解神經(jīng)架構(gòu)這一復(fù)雜系統(tǒng)的每一部分,但目前已有的理解可以提供一些有用的見(jiàn)解。
圖 1:成功訓(xùn)練神經(jīng)網(wǎng)絡(luò)的幾項(xiàng)主要設(shè)計(jì)選擇(已具備理論理解)。它們對(duì)算法收斂的三個(gè)方面產(chǎn)生影響:實(shí)現(xiàn)收斂、實(shí)現(xiàn)更快收斂、獲得更好的全局解。這三項(xiàng)相互關(guān)聯(lián),這里只是大致的分類。注意:存在其他重要的設(shè)計(jì)選擇,尤其是神經(jīng)架構(gòu)。目前我們并未在理論層面理解神經(jīng)架構(gòu),因此本圖未包含該項(xiàng)。這些設(shè)計(jì)選擇還有其他好處,如泛化(本圖同樣未包含該項(xiàng))。 為保持本綜述論文的簡(jiǎn)潔性,本文將主要關(guān)注使用前饋神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)問(wèn)題,不討論更復(fù)雜的公式(如 GAN 和深度強(qiáng)化學(xué)習(xí)),也不涉及更復(fù)雜的架構(gòu)(如 RNN、注意力和膠囊網(wǎng)絡(luò))。在更寬泛的語(yǔ)境中,監(jiān)督學(xué)習(xí)理論至少包含表示、優(yōu)化和泛化,本文專注于優(yōu)化,不過(guò)多討論表示和泛化。 本文的核心目標(biāo)是理解神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(由多個(gè)變量連接構(gòu)成的參數(shù)化)對(duì)優(yōu)化算法設(shè)計(jì)和分析的影響,優(yōu)化算法可以超出監(jiān)督學(xué)習(xí)范式。 本文適合對(duì)神經(jīng)網(wǎng)絡(luò)優(yōu)化的理論理解感興趣的研究者。了解優(yōu)化方法及其基礎(chǔ)理論有助于讀者閱讀本文。關(guān)于深度學(xué)習(xí)優(yōu)化的現(xiàn)有綜述文章針對(duì)的是一般的機(jī)器學(xué)習(xí)從業(yè)者,如 Goodfellow 等人所著《深度學(xué)習(xí)》的第 8 章。這些綜述文章通常不深入討論優(yōu)化的理論層面。而本文將更多地關(guān)注理論結(jié)果,同時(shí)試圖讓無(wú)理論知識(shí)的讀者也能理解。本文盡可能用簡(jiǎn)單的示例詮釋直觀概念,而不是解釋定理的細(xì)節(jié)。 大方向:分解理論 研究理論時(shí),分解是一種有用且常見(jiàn)的元方法。本文首先簡(jiǎn)要綜述優(yōu)化在機(jī)器學(xué)習(xí)中的作用,然后討論如何分解深度學(xué)習(xí)優(yōu)化理論。 表示、優(yōu)化和泛化 監(jiān)督學(xué)習(xí)的目標(biāo)是基于觀測(cè)樣本找出逼近底層函數(shù)的函數(shù)。第一步就是找到能夠表示期望函數(shù)的函數(shù)族(如神經(jīng)網(wǎng)絡(luò));第二步是最小化特定損失函數(shù),進(jìn)而確定函數(shù)的參數(shù);第三步是使用第二步找到的函數(shù)在未見(jiàn)過(guò)的測(cè)試數(shù)據(jù)上執(zhí)行預(yù)測(cè),得到的誤差就是測(cè)試誤差。測(cè)試誤差可被分解為表示誤差、優(yōu)化誤差和泛化誤差,分別對(duì)應(yīng)這三個(gè)步驟導(dǎo)致的誤差。 在機(jī)器學(xué)習(xí)中,「表示」、「優(yōu)化」和「泛化」經(jīng)常被分開(kāi)研究。例如,在研究特定函數(shù)族的表示能力時(shí),我們通常不關(guān)心它們能否很好地解決優(yōu)化問(wèn)題。在研究泛化誤差時(shí),我們通常假設(shè)找到了全局最優(yōu)解。類似地,在研究?jī)?yōu)化屬性時(shí),我們常常不會(huì)明確考慮泛化誤差(不過(guò)有時(shí)會(huì)假設(shè)表示誤差為零)。 優(yōu)化問(wèn)題的分解 深度學(xué)習(xí)優(yōu)化問(wèn)題很復(fù)雜,需要進(jìn)一步分解。優(yōu)化的過(guò)程可以分為三步:第一步是開(kāi)始運(yùn)行算法,使之收斂至合理的解,如駐點(diǎn);第二步是使算法盡快收斂;第三步是確保算法收斂至一個(gè)具備低目標(biāo)值的解(如全局最小值)。還有一個(gè)額外的步驟是獲取優(yōu)秀的測(cè)試準(zhǔn)確率,但這超出了優(yōu)化范疇,這里不過(guò)多討論。 簡(jiǎn)言之,本文將優(yōu)化問(wèn)題劃分為三部分:收斂、收斂速度和全局質(zhì)量。 文章結(jié)構(gòu) 本文第二章介紹了監(jiān)督學(xué)習(xí)范式下,典型神經(jīng)網(wǎng)絡(luò)優(yōu)化問(wèn)題的公式。 第三章介紹了反向傳播,并分析了對(duì)神經(jīng)網(wǎng)絡(luò)梯度下降應(yīng)用經(jīng)典收斂分析的難度。 第四章討論了訓(xùn)練神經(jīng)網(wǎng)絡(luò)的 trick,以及一些底層理論。這些方法依賴于神經(jīng)網(wǎng)絡(luò),打開(kāi)了神經(jīng)網(wǎng)絡(luò)的黑箱。具體而言,這部分討論了梯度爆炸/消失這一主要挑戰(zhàn),以及更一般的譜控制(controlling spectrum)難題,此外,第四章還綜述了主要的解決方案,如初始化和歸一化方法。 第五章討論了通用算法設(shè)計(jì):將神經(jīng)網(wǎng)絡(luò)視作通用非凸優(yōu)化問(wèn)題。具體而言,這部分綜述了使用不同學(xué)習(xí)率的 SGD、自適應(yīng)梯度方法、大規(guī)模分布式訓(xùn)練、二階優(yōu)化方法,以及現(xiàn)有的收斂和迭代復(fù)雜度結(jié)果。 第六章綜述了神經(jīng)網(wǎng)絡(luò)全局優(yōu)化方面的研究,包括全局分布、模型連接、彩票假設(shè)和無(wú)限寬度分析(如神經(jīng)切線核)。
|