機器學習中學習率的常見問題

2020-12-10 不靠譜的貓

本文旨在解決機器學習中有關學習率的常見問題。

什麼是學習率?它的用途是什麼?

神經網絡計算其輸入的加權和,並通過一個激活函數得到輸出。為了獲得準確的預測,一種稱為梯度下降的學習算法會在從輸出向輸入後退的同時更新權重。

梯度下降優化器通過最小化一個損失函數(L)來估計模型權重在多次迭代中的良好值,這就是學習率發揮作用的地方。它控制模型學習的速度,換句話說,控制權重更新到l最小點的速度。新(更新後)和舊(更新前)權重值之間的關係如下:

學習率是否為負值?

梯度L/w是損失函數遞增方向上的向量。L/w是L遞減方向上的向量。由於η大於0,因此是正值,所以-ηL/w朝L的減小方向向其最小值邁進。如果η為負值,則您正在遠離最小值,這是它正在改變梯度下降的作用,甚至使神經網絡無法學習。如果您考慮一個負學習率值,則必須對上述方程式做一個小更改,以使損失函數保持最小:

學習率的典型值是多少?

學習率的典型值範圍為10 E-6和1。

梯度學習率選擇錯誤的問題是什麼?

達到最小梯度所需的步長直接影響機器學習模型的性能:

小的學習率會消耗大量的時間來收斂,或者由於梯度的消失而無法收斂,即梯度趨近於0。大的學習率使模型有超過最小值的風險,因此它將無法收斂:這就是所謂的爆炸梯度。

梯度消失(左)和梯度爆炸(右)

因此,您的目標是調整學習率,以使梯度下降優化器以最少的步數達到L的最小點。通常,您應該選擇理想的學習率,該速率應足夠小,以便網絡能夠收斂但不會導致梯度消失,還應足夠大,以便可以在合理的時間內訓練模型而不會引起爆炸梯度。

除了對學習率的選擇之外,損失函數的形狀以及對優化器的選擇還決定了收斂速度和是否可以收斂到目標最小值。

錯誤的權重學習率有什麼問題?

當我們的輸入是圖像時,低設置的學習率會導致如下圖所示的噪聲特徵。平滑、乾淨和多樣化的特徵是良好調優學習率的結果。是否適當地設置學習率決定了機器學習模型的預測質量:要麼是進行良好的訓練,要麼是不收斂的網絡。

繪製神經網絡第一層產生的特徵:不正確(左)和正確(右)設置學習率的情況

我們可以事先計算出最佳學習率嗎?

通過理論推導,不可能計算出導致最準確的預測的最佳學習率。為了發現給定數據集上給定模型的最佳學習率值,必須進行觀察和體驗。

我們如何設置學習率?

以下是配置η值所需了解的所有內容。

使用固定學習率:

您確定將在所有學習過程中使用的學習率的值。這裡有兩種可能的方法。第一個很簡單的。它由實踐中常用的常用值組成,即0.1或0.01。第二種方法,您必須尋找適合您的特定問題和神經網絡架構的正確學習率。如前所述,學習率的典型值範圍是10 E-6和1。因此,你粗略地在這個範圍內搜索10的各種階數,為你的學習率找到一個最優的子範圍。然後,您可以在粗略搜索所找到的子範圍內以較小的增量細化搜索。你在實踐中可能看到的一種啟發式方法是在訓練時觀察損失,以找到最佳的學習率。

學習率時間schedule的使用:

與固定學習率不同,此替代方法要求根據schedule在訓練epochs內改變η值。在這裡,您將從較高的學習率開始,然後在模型訓練期間逐漸降低學習率。在學習過程的開始,權重是隨機初始化的,遠遠沒有優化,因此較大的更改就足夠了。隨著學習過程的結束,需要更完善的權重更新。通常每隔幾個epochs減少一次學習Learning step。學習率也可以在固定數量的訓練epochs內衰減,然後對於其餘的訓練epochs保持較小的恆定值。

常見的兩種方案。第一種方案,對於固定數量的訓練epochs,每次損失平穩(即停滯)時,學習率都會降低。第二種方案,降低學習率,直到達到接近0的較小值為止。三種衰減學習率的方法,即階躍衰減、指數衰減和1/t衰減。

在SGD中添加Momentum:

它是在經典的SGD方程中加入一項:

這個附加項考慮了由於Vt-1而帶來的權重更新的歷史,Vt-1是過去梯度的指數移動平均值的累積。這就平滑了SGD的進程,減少了SGD的振蕩,從而加速了收斂。然而,這需要設置新的超參數γ。除了學習率η的挑戰性調整外,還必須考慮動量γ的選擇。γ設置為大於0且小於1的值。其常用值為0.5、0.9和0.99。

自適應學習率的使用:

與上述方法不同,不需要手動調整學習率。根據權重的重要性,優化器可以調整η來執行更大或更小的更新。此外,對於模型中的每個權重值,都確保了一個學習率。Adagrad,Adadelta,RMSProp和Adam是自適應梯度下降變體的例子。您應該知道,沒有哪個算法可以最好地解決所有問題。

學習率配置主要方法概述

學習率的實際經驗法則是什麼?

學習率是機器學習模型所依賴的最重要的超參數。因此,如果您不得不設置一個且只有一個超參數,則必須優先考慮學習率。機器學習模型學習率的調整非常耗時。因此,沒有必要執行網格搜索來找到最佳學習率。為了得到一個成功的模型,找到一個足夠大的學習率使梯度下降法有效收斂就足夠了,但又不能大到永遠不收斂。如果您選擇一種非自適應學習率設置方法,則應注意該模型將具有數百個權重(或者數千個權重),每個權重都有自己的損失曲線。因此,您必須設置一個適合所有的學習率。此外,損失函數在實際中往往不是凸的,而是清晰的u形。他們往往有更複雜的非凸形狀局部最小值。自適應方法極大地簡化了具有挑戰性的學習率配置任務,這使得它們變得更加常用。此外,它的收斂速度通常更快,並且優於通過非自適應方法不正確地調整其學習率的模型。SGD with Momentum,RMSProp和Adam是最常用的算法,因為它們對多種神經網絡架構和問題類型具有魯棒性。

相關焦點

  • 應聘機器學習工程師?這是你需要知道的12個基礎面試問題
    如果想應聘機器學習工程師崗位,你可能會遇到技術面試,這是面試官掂量你對技術的真正理解的時候,所以還是相當重要的。近日,JP Tech 發表了一篇文章,介紹了他們面試新人時可能會提出的 12 個面試問題。問題很基礎,但卻值得一看。這些問題是我在面試 AI 工程師崗位時常問到的問題。
  • 機器學習的智慧財產權問題
    儘管由機器學習驅動的業務越來越受到青睞,但一些公司可能不願意在數據收集和模型構建方面進行必要投資,因為他們擔心競爭對手會竊取勞動果實。一直以來,非實物資產創作方面都有專利或版權之類的智慧財產權保護。但是,在法律領域中,關於智慧財產權如何保護機器學習以及具體涵蓋哪些方面,仍然是一個頗具爭議的問題。本白皮書闡述了機器學習智慧財產權(IP)方面的法律背景和挑戰。
  • 機器學習常見的損失函數以及何時使用它們
    每一個機器學習工程師都應該知道機器學習中這些常見的損失函數以及何時使用它們。在數學優化和決策理論中,損失函數或成本函數將一個或多個變量的值映射為一個實數,該實數直觀地表示與該事件相關的一些「成本」。損失函數是機器學習算法中的一個重要部分,主要用於進行算法對特徵數據集建模效果的評估,衡量算法的性能。損失函數是每個樣本預測值和真實值的差值,而成本函數是所有損失函數的平均值。但是一般兩者語義沒有明顯的區分。 損失函數直接反映了機器學習模型的預測結果。一般而言,損失函數越低,所建立的模型所提供的結果就越好。
  • 常見的機器學習算法,你知道幾個?
    【天極網網絡頻道】誕生於1956年的人工智慧,由於受到智能算法、計算速度、存儲水平等因素的影響,在六十多年的發展過程中經歷了多次高潮和低谷。最近幾年,得益於數據量的上漲、運算力的提升,特別是機器學習新算法的出現,人工智慧迎來了大爆發的時代。
  • 谷歌AutoML鼻祖新作AutoML-Zero:從零開始構建機器學習算法
    上面的圖顯示了我們實驗中的一個例子,可以看到演化算法是如何來一步步解決二分類任務的。首先是個線性模型,沒有任何優化方法,然後逐步發現了 SGD 來進行優化,接著開始加入隨機的學習率,再往後發現了ReLU激活函數,隨機權重初始化,梯度歸一化等等,越來越接近我們手工設計的網絡結構和優化方法。
  • 機器學習中算法與模型的區別
    機器學習中的「算法」是什麼?機器學習中的「算法」是在數據上運行以創建機器學習「模型」的過程。機器學習算法執行「模式識別」。算法從數據中「學習」,或者對數據集進行「擬合」。機器學習算法有很多。
  • 機器學習中的忒修斯之船:那些「愚弄」專家的著名悖論
    對於機器學習模型來說,通過悖論進行推理是一個難以置信的挑戰。當AI試圖重建人類認知時,機器學習模型在訓練數據中遇到自相矛盾的模式,並且返回似乎矛盾的結論是很常見的。數據科學家在訓練新模型時應該意識到這些場景。本文筆者就將介紹一些「臭名昭著」的悖論。
  • 機器學習模型的超參數優化
    引言模型優化是機器學習算法實現中最困難的挑戰之一。機器學習和深度學習理論的所有分支都致力於模型的優化。機器學習中的超參數優化旨在尋找使得機器學習算法在驗證數據集上表現性能最佳的超參數。超參數與一般模型參數不同,超參數是在訓練前提前設置的。
  • 在python中使用SageMaker Debugger進行機器學習模型的開發調試
    這一問題在分布式訓練和在集群上開展大規模實驗時尤其突出,雖然你可以保存工作日誌,但是通過這些工作日誌來定位 Bug 簡直無異於大海撈針。在這篇博客文章中,將討論調試機器學習代碼與傳統軟體的不同之處,以及為什麼調試機器學習代碼要困難得多。
  • Cruise如何使用機器學習來預測不可預測的
    該克魯斯希望從競爭中脫穎而出本身的一種方法是憑藉其成熟的機器學習預測系統,作為克魯斯的高級工程經理,肖恩·哈裡斯,在解釋最近的中後期。儘管許多自動駕駛汽車可以預測常見的動作(例如變道或交通突然停止),但不常見的動作(例如掉頭或行人突然駛入車輛前方)(這些稱為「長尾事件」)更難以準確預測。為了解決這個問題,Cruise對其自動駕駛的雪佛蘭Bolt EV原型進行了記錄,並開始記錄這些不常發生的異常事件。
  • 進化決策樹:當機器學習從生物學中汲取靈感時
    他們以一個出乎意料的方式找到了這個問題的解法:翠鳥。這種鳥的喙部細長,使之在潛入水中捕食時能夠少濺水花。因此,通過模仿這種鳥的形象重新設計列車,工程師不僅解決了最初的問題,而且還將列車的耗電量減少了15%,速度提高了10%。
  • AI學習筆記:人工智慧與機器學習概述 - 計算機java編程
    機器學習:機器學習是指從一系列的原始數據中找到規律,提取人們可以識別的特徵,然後通過學習這些特徵,最終產生一個模型。流程:原始數據-->特徵提取-->模型。機器學習偏向於算法。數據挖掘:綜合運用機器學習和人工智慧技術來解決生產或生活中的問題,是一個過程,一個解決方案。
  • 驚為天人,NumPy手寫全部主流機器學習模型,代碼超3萬行
    最近,來自普林斯頓的一位博士後將 NumPy 實現的所有機器學習模型全部開源,並提供了相應的論文和一些實現的測試效果。項目地址:https://github.com/ddbourgin/numpy-ml根據機器之心的粗略估計,該項目大約有 30 個主要機器學習模型,此外還有 15 個用於預處理和計算的小工具,全部.py 文件數量有 62 個之多。
  • boost 機器學習專題及常見問題 - CSDN
    最近,接觸到一個比較新穎的Boost方法的機器學習庫,覺得很有意思的,號稱通用性很強,所以拿來上手試試,這裡只是初步的學習使用,相關的參考連結放在下面。
  • 清華大學發布首個自動圖機器學習工具包,開源易用可擴展
    而在浩瀚的數據中,有一種數據結構既普遍又複雜,它就是圖(graph)。圖是一種用於描述事物之間關係的結構,其基本構成元素為節點和連接節點的邊。很多不同領域的研究問題都可以很自然地建模成圖機器學習,例如蛋白質建模、物理系統模擬、組合優化等基礎研究;社交媒體分析、推薦系統、虛假新聞檢測等網際網路應用;以及金融風控、知識表徵、交通流量預測、新藥發現等。
  • 蜂鳥數據Trochil:機器學習的原理-構建更好的策略4
    在文獻中,你可以找到也稱為標籤或目標。在訓練過程中,算法學習從預測變量x 1 .. x n預測目標y。學到的「內存」存儲在名為模型的數據結構中,該數據結構特定於算法(不要與基於模型的策略的財務模型相混淆)!)。機器學習模型可以是具有由訓練過程生成的C代碼中的預測規則的函數。也可以是神經網絡的一組連接權重。
  • 機器學習在馬蜂窩酒店聚合中的應用初探
    為了使酒店聚合更加實時、準確、高效,現在馬蜂窩酒店業務中近 80% 的聚合任務都是由機器自動完成。本文將詳細闡述酒店聚合是什麼,以及時下熱門的機器學習技術在酒店聚合中是如何應用的。但也正是因為這個方案太簡單了,問題也同樣明顯,我們來看下面的例子 (圖中數據虛構,僅為方便舉例):相信我們每個人都可以很快判斷出這是兩家不同的酒店。
  • 機器學習模型部署都有哪些坑?劍橋研究者梳理了99篇相關研究
    機器之心報導參與:小舟在生產環境中部署機器學習模型是一個複雜的過程,需要考慮諸多因素,也存在很多挑戰。近日,來自劍橋的研究者梳理了該流程常見的問題。近年來,機器學習在學術研究領域和實際應用領域得到越來越多的關注。但是,在生產系統中部署機器學習模型存在許多問題和擔憂。近日,來自劍橋的研究者做了一項調查,綜述了在各個用例、行業和應用中部署機器學習解決方案的報告,並提取了機器學習部署工作流程各階段需要實際考量的因素。
  • 威斯康辛大學《機器學習導論》2020秋季課程完結,課件、視頻資源已...
    機器之心報導 編輯:蛋醬 對於機器學習領域的初學者來說,這會是很好的入門課程。目前,課程的筆記、PPT 和視頻正在陸續發布中。