md模型怎么放大縮小 威龍模型有中文網(wǎng)站嗎?
威龍模型有中文網(wǎng)站嗎?想必閣下也是個(gè)模型迷.哈哈 這是官網(wǎng).是英文SGD過程中的噪聲如何幫助避免局部極小值和鞍點(diǎn)?來自 UC Berkeley RISELab 的本科研究員 Noah Golmant
威龍模型有中文網(wǎng)站嗎?
想必閣下也是個(gè)模型迷.哈哈 這是官網(wǎng).是英文
SGD過程中的噪聲如何幫助避免局部極小值和鞍點(diǎn)?
來自 UC Berkeley RISELab 的本科研究員 Noah Golmant 發(fā)表博客,從理論的角度分析了損失函數(shù)的結(jié)構(gòu),并據(jù)此解釋隨機(jī)梯度下降(SGD)中的噪聲如何幫助避免局部極小值和鞍點(diǎn),為設(shè)計(jì)和改良深度學(xué)習(xí)架構(gòu)提供了很有用的參考視角。
當(dāng)我們著手訓(xùn)練一個(gè)很酷的機(jī)器學(xué)習(xí)模型時(shí),最常用的方法是隨機(jī)梯度下降法(SGD)。隨機(jī)梯度下降在高度非凸的損失表面上遠(yuǎn)遠(yuǎn)超越了樸素梯度下降法。這種簡單的爬山法技術(shù)已經(jīng)主導(dǎo)了現(xiàn)代的非凸優(yōu)化。然而,假的局部最小值和鞍點(diǎn)的存在使得分析工作更加復(fù)雜。理解當(dāng)去除經(jīng)典的凸性假設(shè)時(shí),我們關(guān)于隨機(jī)梯度下降(SGD)動(dòng)態(tài)的直覺會(huì)怎樣變化是十分關(guān)鍵的。向非凸環(huán)境的轉(zhuǎn)變催生了對(duì)于像動(dòng)態(tài)系統(tǒng)理論、隨機(jī)微分方程等框架的使用,這為在優(yōu)化解空間中考慮長期動(dòng)態(tài)和短期隨機(jī)性提供了模型。
在這里,我將討論在梯度下降的世界中首先出現(xiàn)的一個(gè)麻煩:噪聲。隨機(jī)梯度下降和樸素梯度下降之間唯一的區(qū)別是:前者使用了梯度的噪聲近似。這個(gè)噪聲結(jié)構(gòu)最終成為了在背后驅(qū)動(dòng)針對(duì)非凸問題的隨機(jī)梯度下降算法進(jìn)行「探索」的動(dòng)力。
mini-batch 噪聲的協(xié)方差結(jié)構(gòu)
介紹一下我們的問題設(shè)定背景。假設(shè)我想要最小化一個(gè)包含 N 個(gè)樣本的有限數(shù)據(jù)集上的損失函數(shù) f:R^n→R。對(duì)于參數(shù) x∈R^n,我們稱第 i 個(gè)樣本上的損失為 f_i(x)。現(xiàn)在,N 很可能是個(gè)很大的數(shù),因此,我們將通過一個(gè)小批量估計(jì)(mini-batch estimate)g_B: 來估計(jì)數(shù)據(jù)集的梯度 g_N:。其中,B?{1,2,…,N} 是一個(gè)大小為 m 的 mini-batch。盡管 g_N 本身就是一個(gè)關(guān)于梯度 ?f(x) 的帶噪聲估計(jì),結(jié)果表明,mini-batch 抽樣可以生成帶有有趣的協(xié)方差結(jié)構(gòu)的估計(jì)。
引理 1 (Chaudhari amp Soatto 定理:):在回置抽樣(有放回的抽樣)中,大小為 m 的 mini-batch 的方差等于 Var(g_B)1/mD(x),其中
該結(jié)果意味著什么呢?在許多優(yōu)化問題中,我們根本的目標(biāo)是最大化一些參數(shù)配置的似然。因此,我們的損失是一個(gè)負(fù)對(duì)數(shù)似然。對(duì)于分類問題來說,這就是一個(gè)交叉熵。在這個(gè)例子中,第一項(xiàng) 是對(duì)于(負(fù))對(duì)數(shù)似然的梯度的協(xié)方差的估計(jì)。這就是觀測到的 Fisher 信息。當(dāng) N 趨近于正無窮時(shí),它就趨向于一個(gè) Fisher 信息矩陣,即相對(duì)熵(KL 散度)的 Hessian 矩陣。但是 KL 散度是一個(gè)與我們想要最小化的交叉熵?fù)p失(負(fù)對(duì)數(shù)似然)相差甚遠(yuǎn)的常數(shù)因子。
因此,mini-batch 噪聲的協(xié)方差與我們損失的 Hessian 矩陣漸進(jìn)相關(guān)。事實(shí)上,當(dāng) x 接近一個(gè)局部最小值時(shí),協(xié)方差就趨向于 Hessian 的縮放版本。
繞道 Fisher 信息
在我們繼續(xù)詳細(xì)的隨機(jī)梯度下降分析之前,讓我們花點(diǎn)時(shí)間考慮 Fisher 信息矩陣 I(x) 和 Hessian 矩陣 ?^2f(x) 之間的關(guān)系。I(x) 是對(duì)數(shù)似然梯度的方差。方差與損失表面的曲率有什么關(guān)系呢?假設(shè)我們處在一個(gè)嚴(yán)格函數(shù) f 的局部最小值,換句話說,I(x?)?^2f(x?) 是正定的。I(x) 引入了一個(gè) x?附近的被稱為「Fisher-Rao metric」的度量指標(biāo): d(x,y)√[(x?y)^TI(x?)(x?y) ]。有趣的是,參數(shù)的 Fisher-Rao 范數(shù)提供了泛化誤差的上界()。這意味著我們可以對(duì)平坦極小值的泛化能力更有信心。
回到這個(gè)故事中來
接下來我們介紹一些關(guān)于隨機(jī)梯度下降動(dòng)態(tài)的有趣猜想。讓我們做一個(gè)類似中心極限定理的假設(shè),并且假設(shè)我們可以將估計(jì)出的 g_B 分解成「真實(shí)」的數(shù)據(jù)集梯度和噪聲項(xiàng):g_Bg_N (1√B)n(x),其中 n(x)~N(0,D(x))。此外,為了簡單起見,假設(shè)我們已經(jīng)接近了極小值,因此 D(x)≈?^2f(x)。n(x) 在指數(shù)參數(shù)中有一個(gè)二次形式的密度ρ(z):
這表明,Hessian 矩陣的特征值在決定被隨機(jī)梯度下降認(rèn)為是「穩(wěn)定」的最小值時(shí)起重要的作用。當(dāng)損失處在一個(gè)非?!讣怃J」(二階導(dǎo)很大)的最小值,并且此處有許多絕對(duì)值大的、正的特征值時(shí),我很可能會(huì)加入一些把損失從樸素梯度下降的吸引域中「推出來」的噪聲。類似地,對(duì)于平坦極小值,損失更有可能「穩(wěn)定下來」。我們可以用下面的技巧做到這一點(diǎn):
引理 2:令 v∈R^n 為一個(gè)均值為 0 并且協(xié)方差為 D 的隨機(jī)向量。那么,E[||v||^2]Tr(D)。
通過使用這一條引理以及馬爾可夫不等式,我們可以看到,當(dāng) Hessian 具有大曲率時(shí),更大擾動(dòng)的可能性越高。我們還可以考慮一個(gè)在局部最小值 x? 周圍的「穩(wěn)定半徑」:對(duì)于給定的 ?∈(0,1),存在一些 r(x?)gt0,使得如果我們的起點(diǎn) x_0 滿足 ||x_0?x?||ltr(x?),第 t 次迭代滿足 ||x_t?x?||ltr(對(duì)于所有的 t≥0)的概率至少為 1??。在這種情況下,我們可以說 x? 是在半徑 r(x?) 內(nèi)隨機(jī)穩(wěn)定的。將這種穩(wěn)定性的概念與我們之前的非正式論證結(jié)合起來,我們得到以下結(jié)論:
定理 1: 一個(gè)嚴(yán)格的局部最小值 x? 的穩(wěn)定性半徑 r(x?) 與 ?^2f(x?) 的譜半徑成反比。
讓我們把這個(gè)結(jié)論和我們所知道的 Fisher 信息結(jié)合起來。如果在隨機(jī)梯度下降的動(dòng)態(tài)下,平坦極小值更加穩(wěn)定,這就意味著隨機(jī)梯度下降隱式地提供了一種正則化的形式。它通過注入各項(xiàng)異性的噪聲使我們擺脫了 Fisher-Rao 范數(shù)所帶來的不利泛化條件。
深度學(xué)習(xí)的啟示:Hessian 矩陣的退化和「wide valleys」
在深度學(xué)習(xí)中,一個(gè)有趣的現(xiàn)象是過度參數(shù)化。我們經(jīng)常有比做示例運(yùn)算時(shí)更多的參數(shù)(dgtgtN)。這時(shí),D(x) 是高度退化的,即它有許多零(或者接近零)的特征值。這意味著損失函數(shù)在很多方向上都是局部不變的。這為這些網(wǎng)絡(luò)描繪了一個(gè)有趣的優(yōu)化解空間中的場景:隨機(jī)梯度下降大部分時(shí)間都在穿越很寬的「峽谷」(wide valleys)。噪聲沿著幾個(gè)有大曲率的方向傳播,這抵消了 g_N 朝著這個(gè)「峽谷」的底部(損失表面的最小值)推進(jìn)的趨勢(shì)。
當(dāng)前關(guān)注點(diǎn):批量大小、學(xué)習(xí)率、泛化性能下降
由于我們?cè)趯?n(x) 加到梯度之前,按照 1/√m 的因子將其進(jìn)行縮放,因此增加了批處理的規(guī)模,降低了小批量估計(jì)的整體方差。這是一個(gè)值得解決的問題,因?yàn)榇蟮呐砍叽缈梢允鼓P陀?xùn)練得更快。它在兩個(gè)重要的方面使得訓(xùn)練更快:訓(xùn)練誤差在更少的梯度更新中易于收斂,并且大的批量尺寸使得我們能利用大規(guī)模數(shù)據(jù)并行的優(yōu)勢(shì)。但是,不使用任何技巧就增大批量尺寸會(huì)導(dǎo)致測試誤差增大。這個(gè)現(xiàn)象被稱為泛化能力下降(generalization gap),并且目前還存在一些為什么會(huì)出現(xiàn)這種情況的假說。一個(gè)流行的解釋是,我們的「探索性噪聲」不再有足夠的力量將我們推出一個(gè)尖銳最小值的吸引域。一種解決辦法是簡單地提高學(xué)習(xí)率,以增加這種噪聲的貢獻(xiàn)。這種縮放規(guī)則非常成功()。
長期關(guān)注點(diǎn):逃離鞍點(diǎn)
雖然泛化能力下降「generalization gap」最近已經(jīng)成為了一個(gè)熱門話題,但之前仍有很多工作研究鞍點(diǎn)的影響。雖然不會(huì)漸進(jìn)收斂到鞍點(diǎn)(),我們?nèi)匀豢赡芨浇A粝喈?dāng)長的一段時(shí)間()。而且盡管大的批量尺寸似乎會(huì)更易于產(chǎn)生更尖銳的最小值,但真正大的批量尺寸會(huì)將我們引導(dǎo)到確定的軌跡上,這個(gè)軌跡被固定在鞍點(diǎn)附近。一項(xiàng)研究()表明,注入足夠大的各項(xiàng)噪聲可以幫助我們逃離鞍點(diǎn)。我敢打賭,如果噪聲有足夠的「放大」能力,小批量的隨機(jī)梯度下降(mini-batch SGD)會(huì)在造成訓(xùn)練困難的維度上提供足夠的噪聲,并且?guī)椭覀兲与x它們。
一旦我們解決了「尖銳的最小值」的問題,鞍點(diǎn)可能是下一個(gè)大規(guī)模優(yōu)化的主要障礙。例如,我在 CIFAR-10 數(shù)據(jù)集上用普通的隨機(jī)梯度下降算法訓(xùn)練了 ResNet34。當(dāng)我將批量尺寸增大到 4096 時(shí),泛化能力下降的現(xiàn)象出現(xiàn)了。在這一點(diǎn)之后(我最高測試了大小為 32K 的批量尺寸,有 50K 個(gè)訓(xùn)練樣本),性能顯著降低:訓(xùn)練誤差和測試誤差都僅僅在少數(shù)幾個(gè) epoch 中比較平穩(wěn),并且網(wǎng)絡(luò)無法收斂到一個(gè)有效解上。以下是這些結(jié)果的初步學(xué)習(xí)曲線(即看起來比較丑、還有待改進(jìn)):
進(jìn)一步的工作
目前提出的大多數(shù)處理尖銳的最小值/鞍點(diǎn)的解決方案都是圍繞(a)注入各向噪聲,或(b)保持特定的「學(xué)習(xí)率和批量尺寸」。我認(rèn)為從長遠(yuǎn)來看,這還不夠。各向噪聲在包含「wide valley」結(jié)構(gòu)的解空間中做的并不好。增加學(xué)習(xí)率也增大了對(duì)梯度的更新,這使得權(quán)重更新得更大。我認(rèn)為正確的方法應(yīng)該是想出一種有效的方法來模擬小批量噪聲的各向異性,這種方法從學(xué)習(xí)率和批處理大小的組合中「解耦」出來。存在能夠使用子采樣梯度信息和 Hessian 向量乘積去做到這一點(diǎn)的方法,我正在進(jìn)行這個(gè)實(shí)驗(yàn)。我很希望聽聽其它的關(guān)于如何解決這個(gè)問題的想法。與此同時(shí),我們還需要做大量的理論工作來更詳細(xì)地理解這種動(dòng)態(tài),特別是在一個(gè)深度學(xué)習(xí)環(huán)境中。