最小值的最優化問題

無約束極小值的最優化條件算法

 

關於多元函數極小值點的必要條件:網絡

知足的點稱之爲f(x)的駐點或穩定點,可是反過來,知足梯度條件的點不必定是f(x)的局部極小值。所以,定理轉化爲求解下面的方程組問題:  機器學習

                         

 

  對於上面的線性方程組,利用解析法(如高斯消元法、矩陣三角分解法等)能夠較方便求解,可是遺憾的是,f(x)通常是很複雜的非線性函數,求解非線性方程組並不比求解最優化問題簡單,甚至比求解最優化問題更困難、更復雜。所以,在機器學習領域,求解最優化問題,通常不會經過解析法來求解上式,而是經過數值計算方法來直接求取函數極值。函數

  迭代法是數值計算最經常使用的最優化方法,它的基本思想是:首先給定f(x)的一個極小值點獲得初始估計x0,而後經過迭代的方式獲得點序列{xt},若是這個點序列的極限x*逼近極小值點,那麼成這個序列爲極小化序列。這個極小化序列經過迭代公式能夠寫成:學習

             

  其中d是一個方向向量,λ稱爲步長(或學習率),當λ和d都被肯定後,也就能夠惟一肯定點下一個點xk+1,並以此迭代,最後求得極小值點。優化

  注意:各類迭代算法的區別就在於獲得步長λ和方向d的方式不一樣。一個好的迭代算法應知足的兩個條件:遞減性和收斂性。spa

 

 

梯度降低:3d

  梯度降低是神經網絡最經常使用的優化方法之一。它的方向就是f在該點x0處函數值增加最快的方向。基於梯度的這個性質,若是把迭代的每一步沿着當前點的梯度方向的反方向進行迭代,那麼就能獲得一個逐步遞減的極小化序列。blog

  根據每一次迭代所使用的訓練數據集範圍不一樣,能夠把梯度降低算法區分爲:io

  •   批量梯度降低:也稱之爲最速降低法,偏差損失函數有全量訓練數據個人偏差構成,所以,當數據量很大的時候,速度會很是慢,同時,它不能以在線的方式更新模型,也就是,當訓練數據有新元素加入時,須要對全量的數據進行更新,效率很低。所以當前的梯度降低法通常都不會採用這個策略。
  •        隨機梯度降低:隨機梯度降低是對批量梯度降低的改進,該算法每一次更新,只考慮一個樣本數據的偏差損失,所以,它的速度要遠遠優於批量梯度降低。更主要的是,它能進行在線的參數更新。可是缺點是:因爲單個樣本會出現類似或重複的狀況,數據的更新會出現冗餘,此外,單個數據之間的差別會比較大,形成每一次迭代的損失函數會出現比較大的波動。
  •        小批量梯度降低:該算法結合了前二者的優勢,克服了它們的缺點。其策略是指每次的參數更新,優化的目標函數是由n個樣本數據構成,n的值通常較小,通常取到10到500之間,這種作法有3個優勢:

    1. 每一批的數據量較小,特別適合高效的矩陣運算,尤爲是GPU的並行加速,所以雖然小批量梯度算法的訓練數據要比隨機梯度降低算法多,但效率上與隨機梯度算法差異不大。

    2. 與隨機梯度降低算法相比,小批量梯度算法每一批考慮了更多的樣本數據,每一批數據之間的總體差別更小、更平均,結果也更穩定。

    3. 因爲效率與隨機梯度降低算法至關,所以小批量梯度策略一樣適用於在線的模型更新。

  

  通常來講,當前的梯度降低算法廣泛採用第三個---小批量梯度算法策略。

 

  梯度降低中用於肯定步長和方向向量的幾個不一樣算法的策略:

      1. 傳統更新策略:vanilla策略,最簡單的參數更新策略,參數沿着其梯度反方向變化。lr是學習率,預先設置的固定值超參數。

      2. 動量更新策略:

                                     

      3. 改進的動量更新策略:

                                        

 

      4. 自適應梯度策略:以上方法都是對迭代方法的優化,而步長是固定的,該策略考慮學習率對着迭代次數變化而變化的自適應梯度策略。

                

 

                                          

相關文章
相關標籤/搜索