深度學(xué)習(xí)基礎(chǔ)與實踐 課件 2.3.5最優(yōu)化算法_第1頁
深度學(xué)習(xí)基礎(chǔ)與實踐 課件 2.3.5最優(yōu)化算法_第2頁
深度學(xué)習(xí)基礎(chǔ)與實踐 課件 2.3.5最優(yōu)化算法_第3頁
深度學(xué)習(xí)基礎(chǔ)與實踐 課件 2.3.5最優(yōu)化算法_第4頁
深度學(xué)習(xí)基礎(chǔ)與實踐 課件 2.3.5最優(yōu)化算法_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

最優(yōu)化算法(上)最優(yōu)化算法01最優(yōu)化算法與深度學(xué)習(xí)的關(guān)系訓(xùn)練?個復(fù)雜的深度學(xué)習(xí)模型可能需要數(shù)小時、數(shù)?,

甚?數(shù)周時間,最優(yōu)化算法的表現(xiàn)直接影響模型的訓(xùn)練效率和模型參數(shù)的準(zhǔn)確程度;理解各種最優(yōu)化算法的原理以及其中超參數(shù)的意義將有助于更有針對性地調(diào)參,從而使深度學(xué)習(xí)模型表現(xiàn)更好。在?個深度學(xué)習(xí)問題中,我們通常會預(yù)先定義?個?標(biāo)函數(shù)或者代價函數(shù)。有了?標(biāo)函數(shù)以后,我們就可以使用最優(yōu)化算法試圖將其最小化。任何最大化沒有他問題都可以很容易地轉(zhuǎn)化為最小化問題,

只需令?標(biāo)函數(shù)的相反數(shù)為新的目標(biāo)函數(shù)即可。最優(yōu)化算法01最優(yōu)化在深度學(xué)習(xí)中的挑戰(zhàn)最優(yōu)化為深度學(xué)習(xí)提供了最小化損失函數(shù)的方法。本質(zhì)上,最優(yōu)化與深度學(xué)習(xí)的目標(biāo)是有區(qū)別的。由于最優(yōu)化算法的?標(biāo)函數(shù)通常是?個基于訓(xùn)練數(shù)據(jù)集的損失函數(shù),最優(yōu)化的?標(biāo)在于降低訓(xùn)練誤差。而深度學(xué)習(xí)的目標(biāo)在于降低泛化誤差。為了降低泛化誤差,除了使用最優(yōu)化算法降低訓(xùn)練誤差以外,還需要注意應(yīng)對過擬合。最優(yōu)化在深度學(xué)習(xí)中有很多挑戰(zhàn):局部最小值、鞍點等。最優(yōu)化算法最優(yōu)化的挑戰(zhàn)

--

局部最?值對于目標(biāo)函數(shù)f(x),如果f(x)在x上的值比在x鄰近的其他點的值更小,那么f(x)可能是?個局部最小值。如果f(x)在x上的值是?標(biāo)函數(shù)在整個定義域上的最小值,那么f(x)是全局最小值。舉個例子,給定函數(shù):?? ?? =??

?

cos ??

?

?? ,?1.0≤??≤

2.0可以大致找出該函數(shù)的局部最小值和全局最小值的位置。需要注意的是,圖中箭頭所指示的只是大致位置。當(dāng)?個最優(yōu)化問題的數(shù)值解在局部最優(yōu)解附近時,由于目標(biāo)函數(shù)有關(guān)解的梯度接近或變成零,最終迭代求得的數(shù)值解可能只令目標(biāo)函數(shù)局部最小化而非全局最小化。01圖片來源:《動手深度學(xué)習(xí)》最優(yōu)化算法最優(yōu)化的挑戰(zhàn)

鞍點鞍點(saddle

point)附近也可能造成梯度接近或變成零。舉個例子,給定函數(shù):?? ?? =

??3繪圖即可找出該函數(shù)的鞍點位置。再舉個定義在二維空間的函數(shù)的例子,例如:?? ??,

?? =??2?

??2該函數(shù)也存在鞍點位置。也許你已經(jīng)發(fā)現(xiàn)了,該函數(shù)看起來像?個馬鞍,而鞍點恰好是馬鞍上可坐區(qū)域的中心。01圖片來源:《動手深度學(xué)習(xí)》常見的最優(yōu)化算法02最優(yōu)化問題解決辦法最優(yōu)化算法的目標(biāo):跳出局部極值點或鞍點,尋找全局最小值;使訓(xùn)練過程更加穩(wěn)定,更加容易收斂。針對不同的任務(wù),采用的目標(biāo)函數(shù)不一樣。比如對于回歸預(yù)測模型,有L1正則化和L2正則化,對應(yīng)的優(yōu)化算法也不同。下面,我們介紹幾種常用的最優(yōu)化方法。02常見的最優(yōu)化算法參數(shù)更新率批量梯度下降算法批量梯度下降算法是梯度下降算法最原始的形式,通過批次所有樣本的損失函數(shù),來計算模型參數(shù)的更新值。梯度下降算法的原理:代價函數(shù)

關(guān)于參數(shù)

的梯度將是目標(biāo)函數(shù)上升最快的方向。而要最小化代價函數(shù),只需要將參數(shù)沿著梯度相反的方向前進(jìn)一個步長,就可以實現(xiàn)目標(biāo)函數(shù)的下降。02常見的最優(yōu)化算法批量梯度下降算法參數(shù)更新率批量梯度下降的優(yōu)點:1)一次迭代是對所有樣本進(jìn)行計算,此時利用矩陣進(jìn)行操作,實現(xiàn)了并行。2)由全數(shù)據(jù)集確定的方向能夠更好地代表樣本總體,從而更準(zhǔn)確地朝向極值所在的方向。當(dāng)目標(biāo)函數(shù)為凸函數(shù)時,一定能夠得到全局最優(yōu)。批量梯度下降的缺點:1)當(dāng)樣本數(shù)目很大時,每迭代一步都需要對所有樣本計算,訓(xùn)練過程會很慢。2)當(dāng)目標(biāo)函數(shù)不為凸函數(shù)時,可能陷入局部最優(yōu)。最優(yōu)化算法(下)02常見的最優(yōu)化算法隨機(jī)梯度下降算法隨機(jī)梯度下降利用單個樣本計算損失函數(shù),直接用反向傳播算法更新模型參數(shù)。

隨機(jī)梯度下降的優(yōu)點:(1)在學(xué)習(xí)過程中加入了噪聲,提高了泛化誤差。(2)由于不是在全部訓(xùn)練數(shù)據(jù)上的損失函數(shù),而是在每輪迭代中,隨機(jī)優(yōu)化某一條訓(xùn)練數(shù)據(jù)上的損失函數(shù),這樣每一輪參數(shù)的更新速度大大加快。

隨機(jī)梯度下降的缺點:(1)不能在一個樣本中使用矩陣計算,不能并行操作,學(xué)習(xí)過程變得很慢。(2)單個樣本并不能代表全體樣本的趨勢。在pytorch中,隨機(jī)梯度下降算法的類名稱為torch.optim.SGD。

02常見的最優(yōu)化算法小批量梯度下降算法(平均隨機(jī)梯度下降算法)小批量梯度下降,是對批量梯度下降以及隨機(jī)梯度下降的一個折中辦法。隨機(jī)梯度下降算法中模型參數(shù)的更新方向不穩(wěn)定和,我們常采用平均隨機(jī)梯度下降算法。其計算梯度不同的是,不是每得一個梯度就更新一次參數(shù),而是得到幾個梯度后,對其求平均,然后確定參數(shù)的更新值。批量梯度下降算法隨機(jī)梯度下降算法小批量梯度下降算法更新方向穩(wěn)定不穩(wěn)定相對穩(wěn)定梯度更新所需樣本全部樣本單個樣本小批量(自定義)能否并行可以不可以可以02牛頓梯度下降算法常見的最優(yōu)化算法圖片來源:https:///p/e426c3eca226?? ?? ?

?? ??0 +(??

?

??0)??′ ??0求

?? ?? =0根據(jù)泰勒公式的數(shù)值解將??

??

=0??′0代入得??(??0)?? ???0?

??因為凸函數(shù)的優(yōu)化問題,就是求導(dǎo)數(shù)為0的位置。我們將上述f(x)用f(x)的導(dǎo)數(shù)代替,就可以快速求出f(x)的導(dǎo)數(shù)為0的點。牛頓梯度下降算法要優(yōu)于最速梯度下降算法,但是它需要計算海森矩陣(Hessian

matrix)。02常見的最優(yōu)化算法動量梯度下降算法引入動量的梯度下降算法中,參數(shù)的更新量不僅與梯度有關(guān),還與原來的更新量有關(guān)。也就是在原來的更新表達(dá)式中加入了上一次更新與其權(quán)重的乘積項。從而促使參數(shù)更新更穩(wěn)定地向最優(yōu)點方向移動。????+1=???????

??????(????)????+1=????

+

????+1式中v為參數(shù)的更新量,t為迭代的次數(shù),θ為模型參數(shù),f為目標(biāo)函數(shù),?為梯度,α和μ都為常量。02常見的最優(yōu)化算法Nesterov動量梯度下降算法然而,引入動量的梯度下降算法也存在缺陷,那就是在低曲率的地方,也就是梯度很小的地方,更新量主要表現(xiàn)為原來的更新量,不懂得轉(zhuǎn)彎。為克服上述問題,常采用1983年Nesterov提出的方法,常稱為Nesterov動量。與經(jīng)典動量方法不同的是,它先調(diào)整梯度的方向,再改變大小,從而避免了低曲率的地方,更新方向不容易更改的問題。????+1=?????????????(????+

??????)????+1=????

+

????+1式中v為參數(shù)的更新量,t為迭代的次數(shù),θ為模型參數(shù),f為目標(biāo)函數(shù),?為梯度,α和μ都為常量。02常見的最優(yōu)化算法ADAGRAD自適應(yīng)學(xué)習(xí)率算法學(xué)習(xí)率的設(shè)置是一個兩難選擇:其值過高可能導(dǎo)致在接近極值附近來回振蕩,而不收斂;過低又可能引起在接近極值時,更新量趨近0,從而導(dǎo)致學(xué)習(xí)速度慢?;谏鲜鱿敕ǎ绹又荽髮W(xué)John

Duchi等2011年提出ADAGRAD。在pytorch中,該方法的類名稱為torch.optim.Adagrad。式中v為參數(shù)的更新量,t為迭代的次數(shù),θ為模型參數(shù),f為目標(biāo)函數(shù),?為梯度,α為學(xué)習(xí)率。02常見的最優(yōu)化算法ADADELTA自適應(yīng)學(xué)習(xí)率算法ADAGRAD方法隨著迭代次數(shù)增加,導(dǎo)致分母的累計值越來越大,經(jīng)過多次迭代后最終趨近于0而停止參數(shù)更新。為克服上述問題,為此,2012年,紐約大學(xué)的Matthew

D.

Zeiler提出了自適應(yīng)學(xué)習(xí)率方法ADADELTA。在pytorch中,該方法的類名稱為torch.optim.Adadelta式中分母為前W次梯度的平方的平均值的平方根,分子為前W次更新值的平方的平均值的平方根

。常見的最優(yōu)化算法02圖片來源:https://www.cnblogs.com/tornadomeet/p/3430312.html最優(yōu)化算法

DropConnectDropOut與DropConnect的區(qū)別:DropConnect與Dropout不同的地方是在訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型過程中,它不是隨機(jī)的將隱層節(jié)點的輸出變成0,而是將節(jié)點中的每個與其相連的輸入權(quán)值變成0。(DropOut是針對輸出時變?yōu)?,而DropConnect是針對輸入時變化)常見的最優(yōu)化算法02停止標(biāo)準(zhǔn)有三種第二類停止標(biāo)準(zhǔn):當(dāng)泛化損失和進(jìn)程(如迭代次數(shù))的商大于指定的值時就停止。最優(yōu)化算法

早停法(Early

Stopping)在訓(xùn)練的過程中,如果迭代次數(shù)太少,算法容易欠擬合,而迭代次數(shù)太多,算法容易過擬合。早停法可以限制模型最小化代價函數(shù)所需的訓(xùn)練迭代次數(shù)。早停法通常用于防止訓(xùn)練中過度表達(dá)的模型泛化性能差。第一類停止標(biāo)準(zhǔn):當(dāng)泛化損失超過一定的閾值時,停止訓(xùn)練。第三類停止標(biāo)準(zhǔn):完全依賴于泛化錯誤的變化,即當(dāng)泛化錯誤在連續(xù)S個周期內(nèi)增長的時候停

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論