成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

神經網絡的奧秘之優化器的妙用

開發 開發工具
本文作者 Piotr Skalski 撰寫了一系列文章介紹神經網絡的奧秘,本文就是其中一篇,介紹了神經網絡訓練過程中的常見優化策略,并進行了分析和對比,包括梯度下降、小批量梯度下降、動量梯度下降、RMSProp、Adam 等。

之前的文章介紹了,我可以只使用 Numpy 來創建神經網絡。這項挑戰性工作極大地加深了我對神經網絡內部運行流程的理解,還使我意識到影響神經網表現的因素有很多。精選的網絡架構、合理的超參數,甚至準確的參數初始化,都是其中一部分。本文將關注能夠顯著影響學習過程速度與預測準確率的決策──優化策略的選擇。本文挑選了一些常用優化器,研究其內在工作機制并進行對比。

[[250426]]

注:由于我想覆蓋的學習材料范圍太大,因此文中未列出任何代碼段。不過,大家可以在 GitHub 上找到所有用于創建可視化的代碼。此外,我還準備了一些 notebook,幫助大家更好地理解本文所討論的問題。

代碼地址: https://github.com/SkalskiP/ILearnDeepLearning.py

優化

優化是不斷搜索參數以最小化或***化目標函數的過程。我們通常使用間接優化方法訓練機器學習模型,選擇一個評價指標(如準確率、精度或召回率)表明模型求解給定問題的優良程度。但是,我們一直在優化不同的成本函數 J(θ),希望最小化成本函數以改善評價指標。毫無疑問,成本函數的選擇通常與需要解決的具體問題相關。本質上,這種「有意設計」表明我們與理想解決方案有多遠。正如大家所知,這個問題相當復雜,可以再另寫一篇主題文章。

沿途陷阱

結果證明,尋找非凸成本函數最小值通常不太容易,本文應用高級優化策略去定位最小值。如果你學過微積分,就一定知道局部極小值──優化器極易落入的***陷阱之一。對于那些還不了解局部極小值之美的讀者,我只能說局部極小值是給定區域內函數取最小值的點集。如上圖左半部分所示,優化器定位的點并非是全局***解。

而「鞍點」問題則被人們認為更具挑戰性。當成本函數值幾乎不再變化時,就會形成平原(plateau),如上圖右半部分所示。在這些點上,任何方向的梯度都幾乎為零,使得函數無法逃離該區域。

有時候,尤其是在多層網絡中,我們必須處理成本函數的陡峭區域。陡峭區域中的梯度增長迅速(也就是梯度爆炸)會引起大步躍遷,通常會破壞先前的優化結果。不過,該問題可以通過梯度裁剪輕松解決。

梯度下降

在學習高級算法前,我們先來了解一些基本策略。最直接有效的方法之一是向函數上當前點對應梯度的反方向前進,公式如下:

超參數 α 表示學習率,代表算法每次迭代過程的前進步長。學習率的選擇一定程度上代表了學習速度與結果準確率之間的權衡。選擇步長過小不利于算法求解,且增加迭代次數。反之,選擇步長過大則很難發現最小值。具體過程見圖 2,圖中展示了不穩定的迭代過程。而選擇合適步長后,模型幾乎立即發現最小點。

圖 2

圖 2. 大、小學習率條件下梯度下降過程的可視化。為了易于觀察,圖中僅展示了*** 10 步的可視化情況。

此外,該算法很容易受鞍點問題的影響。因為后續迭代過程的步長與計算得到的梯度成比例,所以我們無法擺脫 plateau。

最重要的是,算法由于每次迭代過程中都需要使用整個訓練集而變得低效。這意味著,在每個 epoch 中我們都必須考慮所有樣本,以確保執行下輪優化。對于只有幾千個樣本的訓練集來說,這也許不是問題。但是,擁有數百萬樣本的神經網絡才能表現***?;诖?,每次迭代都使用全部數據集令人難以想象,既浪費時間又占用內存。上述原因致使純粹的梯度下降無法應用于大部分情況。

小批量梯度下降

 梯度下降與小批量梯度下降對比圖。

圖 3. 梯度下降與小批量梯度下降對比圖。

我們首先嘗試解決上一節提到的***一個問題──低效性。盡量向量化通過單次處理多個訓練樣本來加速計算,但在使用百萬量級的數據集時優化過程還是需要花費很長時間。此處,我們試用一個簡單的方法──將完整數據集切分成許多小批量以完成后續訓練。小批量梯度下降的可視化動圖見圖 3。假設左圖的等高線象征需要優化的成本函數。如圖所示,由于新算法的待處理數據較少,它能夠快速完成優化。我們再看看兩個模型的移動軌跡對比。當噪音較少時,梯度下降采取較少步和相對較大的步長。另一方面,小批量梯度下降前進更頻繁,但由于數據集的多樣性,噪聲更多。甚至可能在某次迭代過程中,算法移動的方向與預計方向相反。不過,小批量梯度下降通常一直朝向最小值移動。

圖 4. 將數據集劃分為多個批量。

大家肯定想知道如何選擇批量大小?以深度學習為例,批量大小通常不是絕對的,應參照具體情況。如果批量與整體數據集大小相等,那它就與普通梯度下降無異。另一方面,如果批量為 1,那么算法每次迭代僅適用數據集中的 1 個樣本,這也失去了向量化的意義,該方法有時被稱為隨機梯度下降。實際情況下,我們通常會選擇中間值──64 至 512 個樣本。

指數加權平均

指數加權平均應用廣泛,如統計學、經濟學,甚至深度學習。即便給定點的梯度為 0,指數加權平均仍能持續優化,所以許多高級神經網絡優化算法都采用此概念。

圖 5. 不同 β值的指數加權平均(EWA)圖示。

指數加權平均本質上是對之前的數值求平均值,避免局部波動,關注整體趨勢。指數加權平均的計算公式如上所示,其中參數 β 控制待平均的數的范圍。后續迭代過程中,算法將使用 1/(1 - β) 個樣本。β 值越大,平均的樣本數越多,圖像越平滑。另一方面,圖像緩慢右移是因為,平均時間范圍較長會使指數加權平均適應新趨勢較慢。如圖 5 所示,股票實際收盤價與另外 4 條曲線展示了不同 β 值條件下的指數加權平均值。

動量梯度下降

動量梯度下降利用指數加權平均,來避免成本函數的梯度趨近于零的問題。簡單說,允許算法獲得動量,這樣即使局部梯度為零,算法基于先前的計算值仍可以繼續前進。所以,動量梯度下降幾乎始終優于純梯度下降。

如以往一樣,我們使用反向傳播計算網絡各層的 dW 和 db 值。然而,這次我們沒有直接使用計算梯度來更新神經網絡參數,我們首先計算 VdW 和 Vdb 的中間值。然后在梯度下降中使用 VdW 和 Vdb。值得注意的是,實現該方法需要記錄迭代過程中的指數加權平均值。大家可以在 Github 中看到全部過程。

圖 6. 動量梯度下降。

我們嘗試想象下指數加權平均對模型行為的影響,再想象下成本函數的等高線。上圖對比展示了標準梯度下降與動量梯度下降。我們可以看到成本函數圖的形態使得優化非常緩慢。以股市價格為例,使用指數加權平均使得算法專注于未來走勢而非噪聲。最小值分量被放大,振蕩分量逐漸消失。此外,如果后續更新過程中所得梯度指向類似方向,則學習率將增加,進而實現更快收斂并減少振蕩。然而,動量梯度下降的不足之處在于,每當臨近最小點,動量就會增加。如果動量增加過大,算法將無法停在正確位置。

RMSProp

RMSProp(Root Mean Squared Propagation)是另一種改善梯度下降性能的策略,是最常用的優化器。該算法也使用指數加權平均。而且,它具備自適應性──其允許單獨調整模型各參數的學習率。后續參數值基于為特定參數計算的之前梯度值。

運用圖 6 及上述公式,大家來思考下該策略背后的邏輯。顧名思義,每次迭代我們都要計算特定參數的成本函數的導數平方。此外,使用指數加權平均對近期迭代獲取值求平均。最終,在更新網絡參數之前,相應的梯度除以平方和的平方根。這表示梯度越大,參數學習率下降越快;梯度越小,參數學習率下降越慢。該算法用這種方式減少振蕩,避免支配信號而產生的噪聲。為了避免遇到零數相除的情況(數值穩定性),我們給分母添加了極小值 ɛ。

必須承認,在本篇文章的寫作過程中,我有兩次異常興奮的時刻──本文所提及優化器的快速革新讓我震驚不已。***次是當我發現標準梯度下降和小批量梯度下降訓練時間的差異。第二次就是現在,比較 RMSprop 與我知道的所有優化器。然而,RMSprop 也有缺點。由于每次迭代過程中公式的分母都會變大,學習率會逐漸變小,最終可能會使模型完全停止。

圖 7. 優化器對比。

Adam

***,我再說說 ADAM。與 RMSProp 類似,ADAM 應用廣泛且表現不俗。它利用了 RMSProp 的***優點,且與動量優化思想相結合,形成快速高效的優化策略。上圖展示了本文討論的幾類優化器在處理函數困難部分的優化過程。Adam 的優異表現一目了然。

不幸的是,隨著優化方法有效性的提高,計算復雜度也會增加。上面列了 10 個描述優化過程單次迭代的矩陣公式。我知道那些數學基礎薄弱的讀者情緒肯定不高。但是不要擔心,它們并不是什么新內容。這里的公式和前文給出的動量梯度下降和 RMSProp 一樣。不過這里我們需要一次性運用這兩個策略的思路。

總結

希望本文能夠深入淺出地解釋所有難點。在這篇文章的寫作過程中,我明白了選擇合適優化器的重要性。理解上述算法才能自如地運用優化器,理解每個超參數如何改變整個模型的性能。

原文鏈接:

https://towardsdatascience.com/how-to-train-neural-network-faster-with-optimizers-d297730b3713

【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄加強對神經網絡內部運行流程的理解有助于研
相關推薦

2022-04-07 09:01:52

神經網絡人工智能

2020-08-03 11:43:01

神經網絡優化機器學習

2021-12-28 08:48:54

PyTorch神經網絡人工智能

2020-08-06 10:11:13

神經網絡機器學習算法

2018-07-03 16:10:04

神經網絡生物神經網絡人工神經網絡

2025-02-25 14:13:31

2017-05-23 18:54:18

深度學習人工智能

2020-03-25 09:48:10

AI芯片神經網絡

2023-06-18 23:00:39

神經網絡損失函數隨機變量

2019-04-19 08:18:37

神經網絡數據圖形

2025-03-05 08:00:00

2018-03-22 13:34:59

TensorFlow神經網絡

2022-09-26 00:00:00

神經網絡激活函數sigmoid

2017-03-21 08:52:20

神經網絡聲譽

2017-11-30 18:05:18

2023-11-14 16:29:14

深度學習

2021-01-18 14:38:53

神經網絡人工智能神經元

2010-08-26 10:45:33

死鎖SQL Server

2020-04-29 12:40:35

AI 神經網絡 DeepMind

2025-02-19 15:12:17

神經網絡PyTorch大模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费成人午夜 | 欧美一区二区成人 | 99精品久久久国产一区二区三 | 操视频网站 | 欧美精品网 | 久久国产精品无码网站 | 精品不卡 | 免费一区| 欧美日韩高清免费 | 亚洲国产精品久久久 | 成人在线视频一区 | 麻豆久久久久久久久久 | 久久福利电影 | 成人午夜视频在线观看 | 日韩国产精品一区二区三区 | 欧美三级视频 | 视频二区在线观看 | 超碰成人免费观看 | 亚洲欧美一区二区三区视频 | 国产精品mv在线观看 | 高清av在线 | 一区二区三区av | 成人久久久 | 在线观看www视频 | 日韩综合一区 | 欧美日韩亚洲一区 | 欧美精品一区二区三区在线播放 | 亚洲精品国产综合区久久久久久久 | 亚洲精品大全 | 日本久草 | 日韩一二区在线 | 成人欧美一区二区三区1314 | 国产一级片在线观看视频 | 国产91久久久久久久免费 | 91精品久久久久久久99 | 欧美在线一区二区三区四区 | 欧美一页| 国产激情一区二区三区 | 精品一区在线免费观看 | 久久精品国产免费 | 久久久久久久久久久久亚洲 |