1. 程式人生 > >【深度學習筆記】優化演算法( Optimization Algorithm)

【深度學習筆記】優化演算法( Optimization Algorithm)

本文依舊是吳恩達《深度學習工程師》課程的筆記整理與拓展。

一、優化演算法的目的與挑戰

    優化演算法主要是用來加快神經網路的訓練速度,使得目標函式快速收斂。

    優化問題面臨的挑戰有病態解、鞍點、梯度爆炸與梯度消失……具體可見參考文獻【1】241頁到249頁。

    其中深度學習不太可能陷入區域性最優,因為loss函式通常涉及多個維度(w1,w2...)

二、常見的優化演算法

1、基本演算法

  • 小批量梯度下降即各種變體

  1. 批量梯度下降(Batch gradient descent)

  2. 隨機梯度下降(Stochastic gradient descent)

  3. 小批量梯度下降(Mini-batch gradient descent)

     三者關係:

             mini-batch size = m,Batch gradient descent

             mni-batch size = 1,Stochastic gradient descent

    三者各自的特點:

           Batch gradient descent:優化目標函式一次迭代的時間太長

          Stochastic gradient descent:喪失了向量化加速的優勢

          Stochastic gradient descent:可以向量化,而且每次迭代不用遍歷整個資料集

    如何選擇mini-batch size:

          如果是小的訓練集(m<=2000),可以直接使用Batch gradient descent;對於大的訓練集,常見的size有64,128,256,512.另外注意考慮CPU/GPU memory。

    涉及概念Epoch:

           1 epoch即一代就是遍歷整個資料集一次。

  • Momentum梯度下降法(Gradient descent with momentum)

      相對於通常的梯度下降法,該優化演算法採用了dw的指數加權平均數替換原來的dw,使得w更快地指向最優解。

       指數加權平均  Exponentially weighted averages

這裡補充一下指數加權平均的概念。課堂上是以倫敦連續很多天的溫度為例子,\theta _{t}是指第t天的溫度

                                               V_{t} = \beta V _{t-1}+(1-\beta )\theta _{t}

       這裡的指數加權平均Vt大約是\frac{1}{1-\beta }  天的平均溫度

2、自適應學習率演算法

  • RMSprop

       和Momentum演算法一樣,可以消除梯度下降中的擺動並使用更大的學習率。

      

  • Adam

      結合了Momentum和RMSprop兩種演算法,是很常用的優化演算法。

三、如何選擇合適的優化演算法

         一是考慮自己對演算法的熟悉程度, 便於除錯超引數;二是Adam從總體來說是最好的選擇。詳見參考文獻【2】、【3】

四、優化策略

        許多優化技術並非真正的演算法,而是一般化的模板,可以特定地產生演算法,或是併入到很多不同的演算法中。

  • 正則化輸入 Normalizing inputs

正則化輸入可以使得代價函式更圓,從而加快訓練速度。

        實現方法分為兩步:零均值化,歸一化方差。即減去均值除以標準差。

  • 批標準化   Batch Normalization

​​​​​​​       批標準化使得每一層的隱藏單元有著標準的均值和方差(不一定分別為0和1),從而加快訓練速度。

           \gamma \varepsilon這兩個引數是需要學習的引數。更多內容參看論文。

  • 預訓練

               待學習

  • 學習率衰減 Learning rate decay

                                               \alpha =\frac{1}{1+decayrate*epochnum}\alpha _{0}​​​​​​​

      兩個超引數:decayrate、\alpha _{0}