自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在機器學習項目中該如何選擇優(yōu)化器

人工智能 機器學習
幾種流行的優(yōu)化器的介紹以及優(yōu)缺點分析,并給出了選擇優(yōu)化器的幾點指南。本文概述了計算機視覺、自然語言處理和機器學習中常用的優(yōu)化器。此外,你會找到一個基于三個問題的指導方針,以幫助你的下一個機器學習項目選擇正確的優(yōu)化器。

 導讀

幾種流行的優(yōu)化器的介紹以及優(yōu)缺點分析,并給出了選擇優(yōu)化器的幾點指南。

[[338162]]

本文概述了計算機視覺、自然語言處理和機器學習中常用的優(yōu)化器。此外,你會找到一個基于三個問題的指導方針,以幫助你的下一個機器學習項目選擇正確的優(yōu)化器。

  1. 找一份相關的研究論文,開始使用相同的優(yōu)化器。
  2. 參考表1并將數(shù)據(jù)集的屬性與不同優(yōu)化器的優(yōu)缺點進行比較。
  3. 根據(jù)可用的資源調(diào)整你的選擇。

介紹

為你的機器學習項目選擇一個好的優(yōu)化器是非常困難的。熱門的深度學習庫,如PyTorch或TensorFlow,提供了廣泛的優(yōu)化器的選擇,不同的優(yōu)化器,每個都有自己的優(yōu)缺點。然而,選擇錯誤的優(yōu)化器可能會對你的機器學習模型的性能產(chǎn)生重大的負面影響,這使得優(yōu)化器在構建、測試和部署機器學習模型的過程中成為一個關鍵的設計選擇。

 

在機器學習項目中該如何選擇優(yōu)化器

 

根據(jù)優(yōu)化器的不同,模型的性能可能會有很大的不同。

選擇優(yōu)化器的問題在于,由于no-free-lunch定理,沒有一個單一的優(yōu)化器可以在所有場景中超越其他的。事實上,優(yōu)化器的性能高度依賴于設置。所以,中心問題是:

哪個優(yōu)化器比較適合我的項目的特點?

下面的內(nèi)容給出了回答上述問題的一個指南。它由兩個主要段落組成:在第一部分,我將向你快速介紹最常用的優(yōu)化器。在第二部分中,我將為你提供一個三步計劃來為你的項目選擇比較好的優(yōu)化器。

一些最常用的優(yōu)化器

在深度學習中,幾乎所有流行的優(yōu)化器都基于梯度下降。這意味著他們反復估計給定的損失函數(shù)L的斜率,并將參數(shù)向相反的方向移動(因此向下爬升到一個假設的全局最小值)。這種優(yōu)化器最簡單的例子可能是隨機梯度下降(或SGD),自20世紀50年代以來一直使用。在2010年代,自適應梯度的使用,如AdaGrad或Adam已經(jīng)變得越來越流行了。然而,最近的趨勢表明,部分研究界重新使用SGD而不是自適應梯度方法。此外,當前深度學習的挑戰(zhàn)帶來了新的SGD變體,如LARS或LAMB。例如,谷歌研究在其最新論文中使用LARS訓練了一個強大的自監(jiān)督模型。

下面的部分將介紹比較流行的優(yōu)化器。如果你已經(jīng)熟悉了這些概念,請轉到“如何選擇正確的優(yōu)化器”部分。

我們將使用以下符號:用w表示參數(shù),用g表示模型的梯度,α為每個優(yōu)化器的全局學習率,t為時間步長。

Stochastic Gradient Descent (SGD)

 

在機器學習項目中該如何選擇優(yōu)化器

 

Stochastic Gradient Descent (SGD)的更新規(guī)則

在SGD中,優(yōu)化器基于一個小batch估計最陡下降的方向,并在這個方向前進一步。由于步長是固定的,SGD會很快陷入平坦區(qū)或陷入局部極小值。

SGD with Momentum

 

在機器學習項目中該如何選擇優(yōu)化器

 

帶動量的SGD的更新規(guī)則

其中β < 1,使用了動量,SGD可以在持續(xù)的方向上進行加速(這就是為什么也被叫做“重球方法”)。這個加速可以幫助模型擺脫平坦區(qū),使它更不容易陷入局部最小值。

AdaGrad

 

在機器學習項目中該如何選擇優(yōu)化器

 

AdaGrad的更新規(guī)則

AdaGrad是首個成功的利用自適應學習率的方法之一(因此得名)。AdaGrad根據(jù)梯度的平方和的倒數(shù)的平方根來衡量每個參數(shù)的學習速率。這個過程將稀疏梯度方向上的梯度放大,從而允許在這些方向上執(zhí)行更大的步驟。其結果是:AdaGrad在具有稀疏特征的場景中收斂速度更快。

RMSprop

 

在機器學習項目中該如何選擇優(yōu)化器

 

RMSprop的更新規(guī)則

RMSprop是一個未發(fā)布的優(yōu)化器,在過去幾年中被過度使用。這個想法與AdaGrad相似,但是梯度的重新縮放不那么激進:梯度的平方的總和被梯度平方的移動平均值所取代。RMSprop通常與動量一起使用,可以理解為Rprop對mini-batch設置的適應。

Adam

 

在機器學習項目中該如何選擇優(yōu)化器

 

Adam的更新規(guī)則

Adam將AdaGrad,RMSprop和動量法結合在一起。步長方向由梯度的移動平均值決定,步長約為全局步長的上界。此外,梯度的每個維度都被重新縮放,類似于RMSprop。Adam和RMSprop(或AdaGrad)之間的一個關鍵區(qū)別是,矩估計m和v被糾正為偏向于零。Adam以通過少量的超參數(shù)調(diào)優(yōu)就能獲得良好性能而聞名。

LARS

 

在機器學習項目中該如何選擇優(yōu)化器

 

LARS的更新規(guī)則

LARS是使用動量的SGD的一種擴展,具有適應每層學習率的能力。它最近引起了研究界的注意。原因是由于可用數(shù)據(jù)量的穩(wěn)步增長,機器學習模型的分布式訓練已經(jīng)流行起來。其結果是批大小開始增長。然而,這導致了訓練中的不穩(wěn)定。Yang等人認為,這些不穩(wěn)定性源于某些層的梯度范數(shù)和權重范數(shù)之間的不平衡。因此,他們提出了一個優(yōu)化器,該優(yōu)化器基于一個“trust”參數(shù)η < 1和該層的梯度的范數(shù)的倒數(shù),對每一層的學習率進行縮放。

如何選擇正確的優(yōu)化器?

如上所述,為你的機器學習問題選擇正確的優(yōu)化器是困難的。更具體地說,沒有一勞永逸的解決方案,必須根據(jù)手頭的特定問題仔細選擇優(yōu)化器。在下一節(jié)中,我將提出在決定使用某個優(yōu)化器之前應該問自己的三個問題。

與你的數(shù)據(jù)集和任務類似的state-of-the-art的結果是什么?使用過了哪些優(yōu)化器,為什么?

如果你正在使用新的機器學習方法,可能會有一篇或多篇涵蓋類似問題或處理類似數(shù)據(jù)的可靠論文。通常,論文的作者已經(jīng)做了廣泛的交叉驗證,并且只報告了最成功的配置。試著理解他們選擇優(yōu)化器的原因。

舉例: 假設你想訓練生成對抗性網(wǎng)絡(GAN)來對一組圖像執(zhí)行超分辨率。在一些研究之后,你偶然發(fā)現(xiàn)了一篇論文:”Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network,” ,其中研究人員使用Adam優(yōu)化器來解決完全相同的問題。Wilson等人認為,訓練GANs并不等于解決最優(yōu)化問題,Adam可能非常適合這樣的場景。因此,在這種情況下,Adam是優(yōu)化器的一個很好的選擇。

你的數(shù)據(jù)集是否具有某些優(yōu)化器的優(yōu)勢?如果有,是哪些,如何利用這些優(yōu)勢?

表1顯示了不同優(yōu)化器及其優(yōu)缺點的概述。嘗試找到與數(shù)據(jù)集的特征、訓練設置和目標相匹配的優(yōu)化器。

某些優(yōu)化器在具有稀疏特征的數(shù)據(jù)上表現(xiàn)得非常好,而另一些優(yōu)化器在將模型應用于之前未見過的數(shù)據(jù)時可能表現(xiàn)得更好。一些優(yōu)化器在大batch中工作得很好,而另一些優(yōu)化器可以收斂到很陡峭的極小值但是泛化效果不好。

 

在機器學習項目中該如何選擇優(yōu)化器

 

表1:流行的優(yōu)化器的總結,突出它們的優(yōu)點和缺點。state memory列表示優(yōu)化器所需的字節(jié)數(shù) —— 除了梯度所需的內(nèi)存之外。其中,n為機器學習模型的參數(shù)個數(shù)。例如,沒有動量的SGD只需要內(nèi)存來存儲梯度,而有動量的SGD也需要存儲梯度的移動平均值。

例子:對于你當前工作的項目,你必須將用戶反饋分為積極反饋和消極反饋。你考慮使用bag-of-words作為機器學習模型的輸入特征。由于這些特征可能非常稀疏,你決定使用自適應梯度的方法。但是你想用哪一種呢?考慮表1,你看到看到AdaGrad具有自適應梯度方法中最少的可調(diào)參數(shù)??吹侥愕捻椖坑邢薜臅r間表,你選擇了AdaGrad作為優(yōu)化器。

你的項目所具有資源是什么?

項目中可用的資源也會影響選擇哪個優(yōu)化器。計算限制或內(nèi)存約束,以及項目的時間表可以縮小可行選擇的范圍。再次查看表1,你可以看到不同的內(nèi)存需求和每個優(yōu)化器的可調(diào)參數(shù)數(shù)量。此信息可以幫助你評估你的設置是否支持優(yōu)化器所需的資源。

例子:你在做一個項目,在該項目中,你想在家用計算機上的圖像數(shù)據(jù)集上訓練一個自監(jiān)督模型(例如SimCLR)。對于SimCLR這樣的模型,性能隨著batch size大小的增加而增加。因此,你希望盡可能地節(jié)省內(nèi)存,以便能夠進行大batch的訓練。你選擇一個簡單的不帶動量的隨機梯度下降作為你的優(yōu)化器,因為與其他優(yōu)化器相比,它需要最少的額外內(nèi)存來存儲狀態(tài)。

總結

嘗試所有可能的優(yōu)化器來為自己的項目找到最好的那一個并不總是可能的。在這篇博客文章中,我概述了比較流行的優(yōu)化器的更新規(guī)則、優(yōu)缺點和需求。此外,我列出了三個問題來指導你做出明智的決定,即機器學習項目應該使用哪個優(yōu)化器。

作為一個經(jīng)驗法則:如果你有資源找到一個好的學習率策略,帶動量的SGD是一個可靠的選擇。如果你需要快速的結果而不需要大量的超參數(shù)調(diào)優(yōu),請使用自適應梯度方法。

責任編輯:華軒 來源: 今日頭條
相關推薦

2024-11-25 16:15:14

2023-02-24 15:10:46

機器學習數(shù)據(jù)集

2020-04-15 10:50:19

編程語言工具技術

2021-06-29 13:54:01

物聯(lián)網(wǎng)平臺物聯(lián)網(wǎng)IOT

2021-08-27 14:03:41

存儲NVMe陣列陣列供應商

2024-07-08 13:11:53

2017-11-14 06:10:15

機器學習編程語言數(shù)據(jù)科學

2021-11-10 13:45:10

NVMe存儲陣列磁盤陣列

2020-02-19 09:45:45

云平臺云計算

2017-07-26 17:25:22

機器學習SparkAPI

2021-03-29 23:12:51

機器學習人工智能游戲

2018-08-05 06:48:34

2012-01-18 11:25:36

服務器優(yōu)化

2021-05-10 16:41:19

機器學習人工智能IT

2022-04-29 21:46:36

云計算云平臺云服務

2019-12-26 10:30:50

云計算公共云私有云

2022-01-05 15:50:09

數(shù)據(jù)分析工具數(shù)據(jù)分析數(shù)據(jù)

2021-10-09 12:08:23

Facebook編譯器機器學習

2024-05-23 16:48:42

機器學習算法人工智能

2014-11-24 17:48:09

綜合布線單模多模
點贊
收藏

51CTO技術棧公眾號