什么是學習率
編輯在機器學習和統計學中,學習率是優化算法中的一個調整參數,它決定了每次迭代的步驟大小,同時向損失函數的最小值移動。由于它影響到新獲得的信息在多大程度上覆蓋了舊信息,它比喻為機器學習模型的學習速度。在自適應控制文獻中,學習率通常被稱為增益。在設置學習率時,需要在收斂率和過沖之間進行權衡。雖然下降方向通常由損失函數的梯度決定,但學習率決定了在這個方向上邁出多大的一步。過高的學習率會使學習跳過最小值,但過低的學習率要么需要太長的時間來收斂,要么卡在一個不理想的局部最小值。為了實現更快的收斂,防止振蕩和陷入不理想的局部最小值,學習率在訓練過程中通常是根據學習率計劃或通過使用自適應學習率來改變的。學習率及其調整也可以因參數而異,在這種情況下,它是一個對角矩陣,可以解釋為牛頓方法中Hessian矩陣的近似值。學習率與準牛頓方法和相關優化算法中的非精確線搜索確定的步長有關。在進行直線搜索時,小批量子采樣(MBSS)會影響損失函數的特性,學習率需要沿著這個函數來解決。靜態MBSS保持沿搜索方向的小批量固定,導致沿搜索方向的損失函數平滑。動態MBSS在每次函數評估時都會更新小批,導致沿搜索方向的損失函數是點狀不連續的。適應性地解決靜態MBSS損失函數的學習率的線路搜索包括拋物線近似線路(PAL)搜索。適應性地解決動態MBSS損失函數的學習率的線路搜索包括概率線路搜索、僅梯度線路搜索(GOLS)和二次逼近。
學習率時間表
編輯初始率可以保留為系統默認值,也可以使用一系列技術來選擇。學習率計劃在學習過程中改變學習率,最常見的是在epochs/iterations之間改變。這主要是通過兩個參數完成的:衰減和動量。有許多不同的學習率計劃,但最常見的是基于時間、基于步驟和指數的。衰減的作用是將學習穩定在一個好的位置,避免振蕩,這種情況可能出現在過高的恒定學習率使學習在一個最小值上來回跳動,它由一個超參數控制。動量類似于一個從山上滾下來的球;我們希望球能在山上的最低點(對應于最低的誤差)安家。當誤差成本梯度長期朝向同一方向時,動量既能加快學習速度(增加學習率),也能通過"滾過"小顛簸來避免局部最小值。動量是由一個類似于球的質量的超參數控制的,必須手動選擇--太高了,球會滾過我們希望找到的最小值,太低了,它將無法實現其目的。
考慮動量的公式比衰減的公式更復雜,但最常見的是內置于深度學習庫中,如Keras。基于時間的學習計劃會根據前一個時間迭代的學習率來改變學習率。考慮到衰減的因素,學習率的數學公式是。基于步驟的學習時間表根據一些預先定義的步驟改變學習率。衰減應用公式在此定義為。{displaystyler}是每次下降時學習率應該變化的程度(0.5相當于減半),r對應于下降率,或者說下降率的頻率(10對應于每10次迭代的下降)。下限函數({displaystylelfloordotsrfloor})在這里,對于所有小于1的值,它的輸入值都會下降到0。指數學習計劃與基于步驟的學習計劃類似,但我們使用的不是步驟,而是遞減的指數函數。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/175750/