国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一文概覽深度學習中的五大正則化方法和七大優化策略

2shou / 2696人閱讀

摘要:近來在深度學習中,卷積神經網絡和循環神經網絡等深度模型在各種復雜的任務中表現十分優秀。機器學習中最常用的正則化方法是對權重施加范數約束。

近來在深度學習中,卷積神經網絡和循環神經網絡等深度模型在各種復雜的任務中表現十分優秀。例如卷積神經網絡(CNN)這種由生物啟發而誕生的網絡,它基于數學的卷積運算而能檢測大量的圖像特征,因此可用于解決多種圖像視覺應用、目標分類和語音識別等問題。

但是,深層網絡架構的學習要求大量數據,對計算能力的要求很高。神經元和參數之間的大量連接需要通過梯度下降及其變體以迭代的方式不斷調整。此外,有些架構可能因為強大的表征力而產生測試數據過擬合等現象。這時我們可以使用正則化和優化技術來解決這兩個問題。

梯度下降是一種優化技術,它通過最小化代價函數的誤差而決定參數的最優值,進而提升網絡的性能。盡管梯度下降是參數優化的自然選擇,但它在處理高度非凸函數和搜索全局最小值時也存在很多局限性。

正則化技術令參數數量多于輸入數據量的網絡避免產生過擬合現象。正則化通過避免訓練完美擬合數據樣本的系數而有助于算法的泛化。為了防止過擬合,增加訓練樣本是一個好的解決方案。此外,還可使用數據增強、L1 正則化、L2 正則化、Dropout、DropConnect 和早停(Early stopping)法等。

增加輸入數據、數據增強、早停、dropout 及其變體是深度神經網絡中常用的調整方法。本論文作為之前文章《徒手實現 CNN:綜述論文詳解卷積網絡的數學本質 》的補充,旨在介紹開發典型卷積神經網絡框架時最常用的正則化和優化策略。

主體論文:Regularization and Optimization strategies in Deep Convolutional Neural Network

論文地址:https://arxiv.org/pdf/1712.04711.pdf

摘要:卷積神經網絡(ConvNet)在一些復雜的機器學習任務中性能表現非常好。ConvNet 架構需要大量數據和參數,因此其學習過程需要消耗大量算力,向全局最小值的收斂過程較慢,容易掉入局部極小值的陷阱導致預測結果不好。在一些案例中,ConvNet 架構與數據產生過擬合,致使架構難以泛化至新樣本。為了解決這些問題,近年來研究者開發了多種正則化和優化策略。此外,研究顯示這些技術能夠大幅提升網絡性能,同時減少算力消耗。使用這些技術的前提是全面了解該技術提升網絡表達能力的理論原理,本論文旨在介紹開發 ConvNet 架構最常用策略的理論概念和數學公式。

正則化技術

正則化技術是保證算法泛化能力的有效工具,因此算法正則化的研究成為機器學習中主要的研究主題 [9] [10]。此外,正則化還是訓練參數數量大于訓練數據集的深度學習模型的關鍵步驟。正則化可以避免算法過擬合,過擬合通常發生在算法學習的輸入數據無法反應真實的分布且存在一些噪聲的情況。過去數年,研究者提出和開發了多種適合機器學習算法的正則化方法,如數據增強、L2 正則化(權重衰減)、L1 正則化、Dropout、Drop Connect、隨機池化和早停等。

除了泛化原因,奧卡姆剃刀原理和貝葉斯估計也都支持著正則化。根據奧卡姆剃刀原理,在所有可能選擇的模型中,能很好解釋已知數據,并且十分簡單的模型才是較好的模型。而從貝葉斯估計的角度來看,正則化項對應于模型的先驗概率。

4.1 數據增強

數據增強是提升算法性能、滿足深度學習模型對大量數據的需求的重要工具。數據增強通過向訓練數據添加轉換或擾動來人工增加訓練數據集。數據增強技術如水平或垂直翻轉圖像、裁剪、色彩變換、擴展和旋轉通常應用在視覺表象和圖像分類中。

4.2 L1 和 L2 正則化

L1 和 L2 正則化是最常用的正則化方法。L1 正則化向目標函數添加正則化項,以減少參數的值總和;而 L2 正則化中,添加正則化項的目的在于減少參數平方的總和。根據之前的研究,L1 正則化中的很多參數向量是稀疏向量,因為很多模型導致參數趨近于 0,因此它常用于特征選擇設置中。機器學習中最常用的正則化方法是對權重施加 L2 范數約束。

標準正則化代價函數如下:

其中正則化項 R(w) 是:

另一種懲罰權重的值總和的方法是 L1 正則化:

L1 正則化在零點不可微,因此權重以趨近于零的常數因子增長。很多神經網絡在權重衰減公式中使用一階步驟來解決非凸 L1 正則化問題 [19]。L1 范數的近似變體是:

另一個正則化方法是混合 L1 和 L2 正則化,即彈性網絡罰項 [20]。

在《深度學習》一書中,參數范數懲罰 L2 正則化能讓深度學習算法「感知」到具有較高方差的輸入 x,因此與輸出目標的協方差較?。ㄏ鄬υ黾臃讲睿┑奶卣鳈嘀貙湛s。而 L1 正則化會因為在方向 i 上 J(w; X, y) 對 J(w; X, y) hat 的貢獻被抵消而使 w_i 的值變為 0(J(w; X, y) hat 為 J(w; X, y) 加上 L1 正則項)。此外,參數的范數正則化也可以作為約束條件。對于 L2 范數來說,權重會被約束在一個 L2 范數的球體中,而對于 L1 范數,權重將被限制在 L1 所確定的范圍內。

4.3 Dropout

Bagging 是通過結合多個模型降低泛化誤差的技術,主要的做法是分別訓練幾個不同的模型,然后讓所有模型表決測試樣例的輸出。而 Dropout 可以被認為是集成了大量深層神經網絡的 Bagging 方法,因此它提供了一種廉價的 Bagging 集成近似方法,能夠訓練和評估值數據數量的神經網絡。

Dropout 指暫時丟棄一部分神經元及其連接。隨機丟棄神經元可以防止過擬合,同時指數級、高效地連接不同網絡架構。神經元被丟棄的概率為 1 ? p,減少神經元之間的共適應。隱藏層通常以 0.5 的概率丟棄神經元。使用完整網絡(每個節點的輸出權重為 p)對所有 2^n 個 dropout 神經元的樣本平均值進行近似計算。Dropout 顯著降低了過擬合,同時通過避免在訓練數據上的訓練節點提高了算法的學習速度。

4.4 Drop Connect

Drop Connect 是另一種減少算法過擬合的正則化策略,是 Dropout 的一般化。在 Drop Connect 的過程中需要將網絡架構權重的一個隨機選擇子集設置為零,取代了在 Dropout 中對每個層隨機選擇激活函數的子集設置為零的做法。由于每個單元接收來自過去層單元的隨機子集的輸入,Drop Connect 和 Dropout 都可以獲得有限的泛化性能 [22]。Drop Connect 和 Dropout 相似的地方在于它涉及在模型中引入稀疏性,不同之處在于它引入的是權重的稀疏性而不是層的輸出向量的稀疏性。

4.5 早停法

早停法可以限制模型最小化代價函數所需的訓練迭代次數。早停法通常用于防止訓練中過度表達的模型泛化性能差。如果迭代次數太少,算法容易欠擬合(方差較小,偏差較大),而迭代次數太多,算法容易過擬合(方差較大,偏差較小)。早停法通過確定迭代次數解決這個問題,不需要對特定值進行手動設置。

優化技術

5.1 動量(Momentum)

隨機梯度下降和小批量梯度下降是機器學習中最常見的優化技術,然而在大規模應用和復雜模型中,算法學習的效率是非常低的。而動量策略旨在加速學習過程,特別是在具有較高曲率的情況下。動量算法利用先前梯度的指數衰減滑動平均值在該方向上進行回退 [26]。該算法引入了變量 v 作為參數在參數空間中持續移動的速度向量,速度一般可以設置為負梯度的指數衰減滑動平均值。對于一個給定需要最小化的代價函數,動量可以表達為:

其中 α 為學習率,γ ∈ (0, 1] 為動量系數,v 是速度向量,θ是保持和速度向量方向相同的參數。一般來說,梯度下降算法下降的方向為局部最速的方向(數學上稱為最速下降法),它的下降方向在每一個下降點一定與對應等高線的切線垂直,因此這也就導致了 GD 算法的鋸齒現象。雖然 SGD 算法收斂較慢,但動量法是令梯度直接指向最優解的策略之一。在實踐中,γ初始設置為 0.5,并在初始學習穩定后增加到 0.9。同樣,α 一般也設置地非常小,因為梯度的量級通常是比較大的。

5.2 Nesterov 加速梯度(NAG)

Nesterov 加速梯度(NAG)和經典動量算法非常相似,它是一種一階優化算法,但在梯度評估方面有所不同。在 NAG 中,梯度的評估是通過速度的實現而完成的。NAG 根據參數進行更新,和動量算法一樣,不過 NAG 的收斂速度更好。在批量梯度下降中,與平滑的凸函數相比,NAG 的收斂速度超出 1/k 到 1/(k^2) [27]。但是,在 SGD 中,NAG 無法提高收斂速度。NAG 的更新如下:

動量系數設置為 0.9。經典的動量算法先計算當前梯度,再轉向更新累積梯度。相反,在 NAG 中,先轉向更新累積梯度,再進行校正。其結果是防止算法速度過快,且增加了反應性(responsiveness)。

5.3 Adagrad

Adagrad 亦稱為自適應梯度(adaptive gradient),允許學習率基于參數進行調整,而不需要在學習過程中人為調整學習率。Adagrad 根據不常用的參數進行較大幅度的學習率更新,根據常用的參數進行較小幅度的學習率更新。因此,Adagrad 成了稀疏數據如圖像識別和 NLP 的天然選擇。然而 Adagrad 的較大問題在于,在某些案例中,學習率變得太小,學習率單調下降使得網絡停止學習過程。在經典的動量算法和 Nesterov 中,加速梯度參數更新是對所有參數進行的,并且學習過程中的學習率保持不變。在 Adagrad 中,每次迭代中每個參數使用的都是不同的學習率。

5.4 AdaDelta

AdaDelta 使用最近歷史梯度值縮放學習率,并且和經典的動量算法相似,累積歷史的更新以加速學習。AdaDelta 可以有效地克服 Adagrad 學習率收斂至零的缺點。AdaDelta 將累積過去平方梯度的范圍限制在固定窗口 w 內,取代了經典動量算法累積所有歷史梯度值的做法。在時間 t 運行的平均值計算 E[g^2](t) 依賴于過去的平均值和當前的梯度值。因此,該平均值計算可以表示為:

其中 γ 和動量項相同。實踐中,該值通常設為 0.9 左右。根據等式 3.13,SGD 更新的等式為:

根據等式 5.6,Adagrad 的更新為:

使用過往的平方梯度 ?替換對角矩陣 G_i,得到

其中分母是梯度的平方根誤差,

用 ?替換先前更新規則中的學習率 α,得到

5.5 RMS prop

RMS prop 類似于 Adadelta 的較早的更新向量,

RMS prop 的更新規則如下:

在 RMS prop 中,學習率除以平方梯度的指數衰減平均值。

5.6 Adam?

1.Adam 優化算法的基本機制

Adam 算法和傳統的隨機梯度下降不同。隨機梯度下降保持單一的學習率(即 alpha)更新所有的權重,學習率在訓練過程中并不會改變。而 Adam 通過計算梯度的一階矩估計和二階矩估計而為不同的參數設計獨立的自適應性學習率。

Adam 算法的提出者描述其為兩種隨機梯度下降擴展式的優點集合,即:

適應性梯度算法(AdaGrad)為每一個參數保留一個學習率以提升在稀疏梯度(即自然語言和計算機視覺問題)上的性能。

均方根傳播(RMSProp)基于權重梯度最近量級的均值為每一個參數適應性地保留學習率。這意味著算法在非穩態和在線問題上有很有優秀的性能。

Adam 算法同時獲得了 AdaGrad 和 RMSProp 算法的優點。Adam 不僅如 RMSProp 算法那樣基于一階矩均值計算適應性參數學習率,它同時還充分利用了梯度的二階矩均值(即有偏方差/uncentered variance)。具體來說,算法計算了梯度的指數移動均值(exponential moving average),超參數 beta1 和 beta2 控制了這些移動均值的衰減率。

移動均值的初始值和 beta1、beta2 值接近于 1(推薦值),因此矩估計的偏差接近于 0。該偏差通過首先計算帶偏差的估計而后計算偏差修正后的估計而得到提升。

2.Adam算法

Adam論文地址:https://arxiv.org/abs/1412.6980

如上算法所述,在確定了參數α、β_1、β_2 和隨機目標函數 f(θ) 之后,我們需要初始化參數向量、一階矩向量、二階矩向量和時間步。然后當參數 θ 沒有收斂時,循環迭代地更新各個部分。即時間步 t 加 1、更新目標函數在該時間步上對參數θ所求的梯度、更新偏差的一階矩估計和二階原始矩估計,再計算偏差修正的一階矩估計和偏差修正的二階矩估計,然后再用以上計算出來的值更新模型的參數θ。

該算法更新梯度的指數移動均值(mt)和平方梯度(vt),而參數 β_1、β_2 ∈ [0, 1) 控制了這些移動均值(moving average)指數衰減率。移動均值本身使用梯度的一階矩(均值)和二階原始矩(有偏方差)進行估計。然而因為這些移動均值初始化為 0 向量,所以矩估計值會偏差向 0,特別是在初始時間步中和衰減率非常小(即β接近于 1)的情況下是這樣的。但好消息是,初始化偏差很容易抵消,因此我們可以得到偏差修正(bias-corrected)的估計 m_t hat 和 v_t hat。

注意算法的效率可以通過改變計算順序而得到提升,例如將偽代碼最后三行循環語句替代為以下兩個:

3. Adam 的更新規則

4. 初始化偏差修正

正如本論文第二部分算法所述,Adam 利用了初始化偏差修正項。本部分將由二階矩估計推導出這一偏差修正項,一階矩估計的推導完全是相似的。首先我們可以求得隨機目標函數 f 的梯度,然后我們希望能使用平方梯度(squared gradient)的指數移動均值和衰減率 β_2 來估計它的二階原始矩(有偏方差)。令 g1, ..., gT 為時間步序列上的梯度,其中每個梯度都服從一個潛在的梯度分布 gt ~ p(gt)。現在我們初始化指數移動均值 v0=0(零向量),而指數移動均值在時間步 t 的更新可表示為: 其中 gt^2 表示 Hadamard 積 gt⊙gt,即對應元素之間的乘積。同樣我們可以將其改寫為在前面所有時間步上只包含梯度和衰減率的函數,即消去 v:?

我們希望知道時間步 t 上指數移動均值的期望值 E[vt] 如何與真實的二階矩 ?相關聯,所以我們可以對這兩個量之間的偏差進行修正。下面我們同時對表達式(1)的左邊和右邊去期望,即如下所示:

如果真實二階矩 E[g^2] 是靜態的(stationary),那么ζ = 0。否則 ζ 可以保留一個很小的值,這是因為我們應該選擇指數衰減率 β1 以令指數移動均值分配很小的權重給梯度。所以初始化均值為零向量就造成了只留下了 (1 ? βt^2 ) 項。我們因此在算法 1 中除以了ζ項以修正初始化偏差。

在稀疏矩陣中,為了獲得一個可靠的二階矩估計,我們需要選擇一個很小的 β2 而在許多梯度上取均值。然而正好是這種小β2 值的情況導致了初始化偏差修正的缺乏,因此也就令初始化步長過大。

5.7 Nadam

Nadam 是 NAG 和 Adam 優化器的結合 [28]。如果過往歷史平方梯度的指數衰減平均值為 v_t,而過往歷史梯度的指數衰減平均值為 m_t,那么經典動量更新規則如下:

我們需要修改動量規則以獲得 Nadam 優化器。因此將上述公式擴展為:

NAG 的修改如下:

可以通過更新梯度 g_t 時(第一次)和更新參數 θ_t+1(第二次)修改 NAG,而不是兩次更新動量。因此動量向量直接更新參數可以表述如下:

為了添加 NAG 到 Adam,需要使用當前的動態向量替換先前的動態向量。因此,通過 m hat 和 m_t 擴展上述公式,Adam 更新規則如下:

利用先前時間步動量向量的偏差修正估計更新 Nadam 優化器的規則,如下:

歡迎加入本站公開興趣群

商業智能與數據分析群

興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識

QQ群:81035754

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/4703.html

相關文章

  • 深度學習與神經網絡全局概覽:核心技術的發展歷程

    摘要:在學習過程中,神經網絡的突觸權重會以一種有序的方式進行修改,從而實現所需的目標。中間單元的數量被稱為網絡所用的片的數量。 隨著神經網絡的進化,許多過去曾被認為不可想象的任務現在也能夠被完成了。圖像識別、語音識別、尋找數據集中的深度關系等任務現在已經變得遠遠更加簡單了。在此向這一領域的杰出的研究者致以真誠的謝意,正是他們的發現和成果幫助我們利用上了神經網絡的真正力量。如果你真正對追求機器學習這...

    Jenny_Tong 評論0 收藏0
  • CNN超參數優可視技巧詳解

    摘要:在計算機視覺領域,對卷積神經網絡簡稱為的研究和應用都取得了顯著的成果。文章討論了在卷積神經網絡中,該如何調整超參數以及可視化卷積層。卷積神經網絡可以完成這項任務。 在深度學習中,有許多不同的深度網絡結構,包括卷積神經網絡(CNN或convnet)、長短期記憶網絡(LSTM)和生成對抗網絡(GAN)等。在計算機視覺領域,對卷積神經網絡(簡稱為CNN)的研究和應用都取得了顯著的成果。CNN網絡最...

    Fundebug 評論0 收藏0
  • 共享相關任務表征,一文讀懂深度神經網絡多任務學習

    摘要:為了使的思想更具體化,現在我們來看一下在深度神經網絡中執行多任務學習的兩種最常用的方法。圖深度神經網絡多任務學習的參數共享共享參數大大降低了過擬合的風險。 目錄1.介紹2.動機3.兩種深度學習 MTL 方法Hard 參數共享Soft 參數共享4.為什么 MTL 有效隱式數據增加注意力機制竊聽表征偏置正則化5.非神經模型中的 MTL塊稀疏正則化學習任務的關系6.最近 MTL 的深度學習研究深度...

    developerworks 評論0 收藏0
  • 訓練神經網絡的最快方法:Adam優算法+超級收斂

    摘要:在實踐中,幾乎總是通過向梯度增加來實現算法,而不是真正改變損失函數。顯然這是兩種不同的方法。那么,權重衰減是不是總比的正則化更好呢我們還沒發現明顯更糟的情況,但無論是遷移學習問題例如斯坦福汽車數據集上的的微調還是 跌宕起伏的 Adam縱觀 Adam 優化器的發展歷程,就像過山車一樣。它于 2014 年在論文 Adam: A Method for Stochastic Optimization...

    kohoh_ 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<