優化演算法通常只考慮最小化目標函式。其實,任何最大化問題都可以很容易地轉化為最小化問題。
很多優化問題並不存在解析解,而需要使用基於數值方法的優化演算法找到近似解,即數值解。
為了求得最小化目標函式的數值解,我們將通過優化演算法有限次迭代模型引數來盡可能降低損失函式的值。
深度學習模型的目標函式可能有若干區域性最優值。當乙個優化問題的數值解在區域性最優解附近時,由於目標函式有關解的梯度接近或變成零,最終迭代求得的數值解可能只令目標函式區域性最小化而非全域性最小化。
sgd為隨機梯度下降,每一次迭代計算資料集的mini-batch的梯度,然後對引數進行更新。
momentum參考了物理中動量的概念,前幾次的梯度也會參與到當前的計算中,但是前幾輪的梯度疊加在當前計算中會有一定的衰減。
adagard在訓練的過程中可以自動變更學習的速率,設定乙個全域性的學習率,而實際的學習率與以往的引數模和的開方成反比。
adam利用梯度的一階矩估計和二階矩估計動態調整每個引數的學習率,在經過偏置的校正後,每一次迭代後的學習率都有個確定的範圍,使得引數較為平穩。
使用適當的學習率,沿著梯度反方向更新自變數可能降低目標函式值。梯度下降重複這一更新過程直到得到滿足要求的解。學習率過大或過小都有問題。乙個合適的學習率通常是需要通過多次實驗找到的。當訓練資料集的樣本較多時,梯度下降每次迭代的計算開銷較大,因而隨機梯度下降通常更受青睞。
小批量隨機梯度每次隨機均勻取樣乙個小批量的訓練樣本來計算梯度。在實際中,(小批量)隨機梯度下降的學習率可以在迭代過程中自我衰減。通常,小批量隨機梯度在每個迭代週期的耗時介於梯度下降和隨機梯度下降的耗時之間。
動量法使用了指數加權移動平均的思想。它將過去時間步的梯度做了加權平均,且權重按時間步指數衰減。動量法使得相鄰時間步的自變數更新在方向上更加一致。
當兩個變數的梯度值有較大差別時,需要選擇足夠小的學習率使得自變數在梯度值較大的維度上不發散。但這樣會導致自變數在梯度值較小的維度上迭代過慢。動量法依賴指數加權移動平均使得自變數的更新方向更加一致,從而降低發散的可能。本節我們介紹adagrad演算法,它根據自變數在每個維度的梯度值的大小來調整各個維度上的學習率,從而避免統一的學習率難以適應所有維度的問題。
adagrad演算法在迭代過程中不斷調整學習率,並讓目標函式自變數中每個元素都分別擁有自己的學習率。使用adagrad演算法時,自變數中每個元素的學習率在迭代過程中一直在降低(或不變)。
rmsprop演算法和adagrad演算法的不同在於, rmsprop演算法使用了小批量隨機梯度按元素平方的指數加權移動平均來調整學習率。
adadelta演算法沒有學習率超引數,它通過使用有關自變數更新量平⽅的指數加權移動平均的項來替代rmsprop演算法中的學習率。
adam演算法在rmsprop演算法基礎上對小批量隨機梯度也做了指數加權移動平均,
所以adam演算法可以看做是rmsprop演算法與動量法的結合。
adam演算法在rmsprop演算法的基礎上對⼩批量隨機梯度也做了指數加權移動平均。
adam演算法使用了偏差修正。
深度學習之聯邦學習
聯邦學習 federated learning 能夠讓ai演算法借助位於不同站點的資料中獲得經驗。該方法能夠讓多個組織協作開發模型,而且不需要彼此之間直接共享敏感的資料 在多次訓練迭代過程中,共享模型所覆蓋的資料範圍會比任何乙個組織內部擁有的資料都要大得多。難點 不僅僅是資料量的問題,資料集還需要極...
深度學習之遷移學習
遷移學習 transfer learning 是一種機器學習方法,就是把為任務 a 開發的模型作為初始點,重新使用在為任務 b 開發模型的過程中。遷移學習是通過從已學習的相關任務中轉移知識來改進學習的新任務,雖然大多數機器學習演算法都是為了解決單個任務而設計的,但是促進遷移學習的演算法的開發是機器學...
動手學深度學習之深度學習基礎
資料集的形式主要有三種 訓練集測試集 測試資料集不可以用來調參 驗證集 k折交叉驗證 把原始資料分成k組,每次訓練時,使用k 1個子資料集訓練,使用乙個作為驗證,最後通過k次求取訓練誤差和驗證誤差的平均。過擬合 overfitting 模型的訓練誤差遠小於它在測試資料集上的誤差 欠擬合 underf...