
這一小節(jié)介紹隨機梯度下降法(stochastic gradient descent)在神經(jīng)網(wǎng)絡中的使用,這里首先回顧了第三講中介紹的線性神經(jīng)網(wǎng)絡的誤差曲面(error surface),如下圖所示。線性神經(jīng)網(wǎng)絡對應的誤差曲面的縱截面如碗裝,橫截面則如一組同心的橢圓。梯度下降法的作用就是不斷調(diào)整參數(shù),使得模型的誤差由“碗沿”降到“碗底”,參數(shù)由橢圓外部移動到橢圓的中心附近。當然,這里說的是只有兩個參數(shù)的情況,參數(shù)更多的情況則更復雜。
下圖給出了梯度方向?qū)μ荻雀淖兇笮〉挠绊憽?
下圖說明了學習步長(learning rate)對損失函數(shù)改變的影響。過大的學習速率會導致損失函數(shù)越來越大,模型距離最優(yōu)解(或次優(yōu)解)越來越遠。
上面是模型在所有的訓練數(shù)據(jù)上做完梯度下降法之后再對參數(shù)進行修正的,這叫做批量梯度下降法(batch gradient descent)。而隨機梯度下降法則是每一次計算某一個訓練數(shù)據(jù)上的梯度或者某一組訓練數(shù)據(jù)(訓練數(shù)據(jù)集的一個很小的子集)的梯度,然后更新參數(shù)。在每一個訓練數(shù)據(jù)上計算梯度然后更新參數(shù)的稱之為在線學習(online learning),在一小組訓練數(shù)據(jù)上計算梯度然后更新參數(shù)的稱之為小批量梯度下降法(mini-batch gradient descent),后者的效果可能比前者好一些。
下圖是對使用mini-batch gradient descent的幾點建議。
A bag of tricks for mini-batch gradient descent
這一小節(jié)介紹使用小批量梯度下降法(mini-batch gradient descent)的一些技巧。下圖是初始化權值參數(shù)的技巧。
下圖介紹的是shifting the inputs,其是指給輸入的每一個分量加上一個常數(shù)值,使不得輸入的平均值為0。(這里的意思應該是給輸入的每一個分量加上一個常數(shù),不同分量的常數(shù)可能不同,使得訓練數(shù)據(jù)集的所有輸入加在一起是個零向量。當然,這是我自己的理解,可能有出入。)下圖給出了一個二維的線性神經(jīng)網(wǎng)絡,且給出了兩組訓練數(shù)據(jù)及其相應向量參數(shù)對應的直線??梢钥吹缴厦娴哪莾蓷l直線夾角很小,二者結(jié)合在一起就會得到一個很狹長的橢圓的error surface,這樣的是我們不喜歡的error surface,不利于快速找到最優(yōu)解或次優(yōu)解。下面我們給輸入的每一個分量都加上一個-100,然后得到的error surface就有一個比較接近圓的形狀,這樣的是我們想要的,便于快速的找到最優(yōu)解或次優(yōu)解。另外這里還提到了對隱匿層神經(jīng)單元的調(diào)整,比較了雙曲正切函數(shù)(hyperbolic tangent function)和邏輯函數(shù)(logistic function),但是這里沒聽明白具體怎么使用。
下圖介紹的是scaling the inputs,該情況針對的是輸入向量的分量取值相差懸殊時,通過給分量乘上一個系數(shù)來使得error surface更接近圓形,從而便于快速找到最優(yōu)解或次優(yōu)解。
一個更thorough的方法是去除輸入向量不同分量之間的相關性(decorrelate the input components),相關的方法很多,這里給出了主成分分析法(PCA, Principal Components Analysis)。在Andrew Ng的課程中詳細介紹過PCA,詳細內(nèi)容請閱讀Machine Learning第八周筆記:K-means和降維
。對于線性模型,PCA實現(xiàn)了降維,從而將橢圓形的error surface轉(zhuǎn)換成了圓形的。
下圖列出了在多層神經(jīng)網(wǎng)絡中經(jīng)常遇到的兩個問題。一個是,當我們以很大的學習步長(learning rate)開始訓練網(wǎng)絡時,隱匿單元的權重往往會取到很大的正數(shù)或很小的負數(shù),而此時這些權重對應的梯度又很小,給我們造成一種模型好像取得了一個局部最小值。另一個是,在分類網(wǎng)絡中,我們經(jīng)常使用平方誤差或者交叉熵誤差,一個好的策略是讓每一個輸出單元的輸出情況和實際上的輸出比例相當(實際上輸出1的比例是多少,那么輸出單元的輸出情況一個就是這樣)。神經(jīng)網(wǎng)絡很快就會發(fā)現(xiàn)這一策略,但需要很長的時間才能一點點的優(yōu)化網(wǎng)絡,看起來就好像模型處于一個局部最小值附近。
下圖提示我們不要太快得減小學習步長(learning rate)。
下面給出四種加快mini-batch learning的方法,前三種我們會在下面一一介紹,最后一種本課程不涉及,感興趣的話請自行搜索。這些方法具有很強的技巧性,需要我們在應用中不斷摸索。
The momentum method
這一小節(jié)詳細介紹動量方法(the momentum method),其應用很廣泛,在full-batch learning和mini-batch learning中都可以使用。下面給出了動量方法的intuition和計算公式。
Using momentum speeds up gradient descent learning because
Directions of consistent change get amplified.
Directions of fluctuations get damped.
Allows using much larger learning rates.
Momentum accumulates consistent components of the gradient and attenuates the fluctuating ones. It also allows us to use bigger learning rate because the learning is now more stable.
標準的動量方法(由Nesterov在1983年提出)是在當前位置計算梯度,然后在累積的更新梯度方向上做一個大的跳躍。下面給出了一種更好地動量方法(由IIya Sutskever在2012年提出),其先在先前累積的梯度方向上做一個大的跳躍,再計算新的梯度并修正錯誤。
下面對兩種方法做了比較,圖中藍色箭頭是做兩次標準動量方法得到的;而圖中棕色箭頭是改進動量方法先做的一次大跳躍得到的,紅色箭頭是修正,綠色箭頭是進行一次改進動量方法得到的。可以看到,改進的比標準的要快很多。
Adaptive learning rates for each connection
這一小節(jié)介紹the separate, adaptive learning rate for each connection(針對網(wǎng)絡中每個連接的自適應學習步長)。其思想是在神經(jīng)網(wǎng)絡的每一個連接處都應該有該連接自己的自適應學習步長,并在我們調(diào)整該連接對應的參數(shù)時調(diào)整自己的學習步長:如果權值參數(shù)修正梯度,那就應該減小步長;反之,應該增大步長。
下圖給出了intuition。我的理解是在多層神經(jīng)網(wǎng)絡中,不同層的梯度通常相差懸殊,最開始的幾層對應的梯度可能比最后幾層權值對應的梯度小幾個數(shù)量級。另外一方面,網(wǎng)絡中每一單元又受其扇入單元的影響,為了修正一個同樣的錯誤,各個單元的“學習步長”應該是不同的。
一個可行的方法是有一個全局的學習步長,然后對每一個權值參數(shù)有一個local gain,用gij表示。初始時gij均取值為1,后每次迭代根據(jù)權值梯度的變化情況作出調(diào)整,具體調(diào)整公式如下圖所示。
下圖列出了幾種提高自適應學習步長性能的幾個技巧。
Rmsprop: Divide the gradient by a running average of its recent magnitude
這一小節(jié)介紹rmsprop算法。在網(wǎng)上找到一個python模塊——climin,一個做優(yōu)化的機器學習包,里面包含了很多優(yōu)化算法。
首先介紹rprop算法。前面我們說過,不同權值參數(shù)的梯度的數(shù)量級可能相差很大,因此很難找到一個全局的學習步長。這時,我們想到了在full-batch learning中僅靠權值梯度的符號來選擇學習步長。rprop算法正是采用這樣的思想:對于網(wǎng)絡中的每一個權值參數(shù),當其對應的前面兩個梯度符號相同時,則增大該權值參數(shù)對應的學習步長;反之,則減小對應的學習步長。并且,rprop算法將每一個權值對應的學習步長限制在百萬分之一到50之間。
下圖解釋了prop算法為什么不能應用于mini-batch learning中。因為prop算法違背了隨機梯度下降的原理:假設有一個在線學習系統(tǒng),初始的學習步長較小,在其上應用prop算法。這里有十組訓練數(shù)據(jù),前九組都使得梯度符號與之前的梯度符號相同,那么學習步長就會增加九次;而第十次得來的梯度符號與之前的相反,那么學習步長就會減小一次。這樣一個過程下來,學習步長會增長很多,如果系統(tǒng)的訓練數(shù)據(jù)集非常之大,那學習步長可能頻繁的來回波動,這樣肯定是不利于學習的。
設想是否存在這樣一種算法,其既能保持rprop算法的健壯性,又能應用在mini-batch learning上呢,rmsprop算法應運而生。rmsprop算法不再孤立地更新學習步長,而是聯(lián)系之前的每一次梯度變化情況,具體如下。rmsprop算法給每一個權值一個變量MeanSquare(w,t)用來記錄第t次更新步長時前t次的梯度平方的平均值,具體計算方法如下圖所示(注意,其中的系數(shù)0.9和0.1只是個例子,具體取值還要看具體情況)。然后再用第t次的梯度除上MeanSquare(w,t)??????????????√得到學習步長的更新比例,根據(jù)此比例去得到新的學習步長。按我的理解,如果當前得到的梯度為負,那學習步長就會減小一點點;如果當前得到的梯度為正,那學習步長就會增大一點點。這里的MeanSquare(w,t)??????????????√是名稱中RMS的由來。數(shù)據(jù)分析師培訓
下圖列出了關于rmsprop算法的一些研究,想了解詳情的話請自行搜索。
最后一張圖是對神經(jīng)網(wǎng)絡學習方法的一個小總結(jié)。
這幾個算法都比較燒腦啊,全是憑大腦推理思考,回頭要好好做實驗。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03