日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DL3 - optimization algorithms

發(fā)布時(shí)間:2024/1/8 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DL3 - optimization algorithms 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

title: DL3 - 加快神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度的優(yōu)化算法
date: 2019-08-17 02:40:57
tags: deeplearning
categories: deeplearning

Welcome to MyBlog!

本文所以截圖以及文字均來(lái)自于:Coursera

1 小批量梯度下降算法(mini-batch gradient descent)

首先將你的訓(xùn)練集拆分成更小的 微小的訓(xùn)練集 即小批量訓(xùn)練集(mini-batch) 比如說(shuō)每一個(gè)微型訓(xùn)練集只有1000個(gè)訓(xùn)練樣例 也就是說(shuō) 取x1至x1000作為第一個(gè)微訓(xùn)練集 也叫做小批量訓(xùn)練集 然后取接下來(lái)的1000個(gè)樣例 x1001至x2000這1000個(gè)樣例 依次繼續(xù)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-6i3VgsjS-1610775595598)(https://i.loli.net/2019/08/28/57gxIMFENLkJWv9.png)]

將mini-batch極端的設(shè)置為m,就得到了批量梯度下降

極端地設(shè)置為1,就得到了隨機(jī)梯度下降

兩種方法的區(qū)別:批量梯度下降算法可能從這里開(kāi)始 它的噪聲相對(duì)小些 每一步相對(duì)大些 并且最終可以達(dá)到最小值 而相對(duì)的 隨機(jī)梯度下降算法 讓我們選一個(gè)不同的點(diǎn) 假使從這里開(kāi)始 這時(shí)對(duì)于每一次迭代你就在一個(gè)樣本上做梯度下降 大多數(shù)時(shí)候你可以達(dá)到全局最小值 但是有時(shí)候也可能因?yàn)槟辰M數(shù)據(jù)不太好 把你指向一個(gè)錯(cuò)誤的方向 因此隨機(jī)梯度算法的噪聲會(huì)非常大 一般來(lái)說(shuō)它會(huì)沿著正確的方向 但是有事也會(huì)指向錯(cuò)誤的方向 而且隨機(jī)梯度下降算法 最后也不會(huì)收斂到一個(gè)點(diǎn) 它一般會(huì)在最低點(diǎn)附近擺動(dòng) 但是不會(huì)達(dá)到并且停在那里 實(shí)際上 mini-batch的大小一般會(huì)在這2個(gè)極端之間

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-6m4QwgoX-1610775595599)(https://i.loli.net/2019/08/28/YQXVuR8HgA4lrd3.png)]

2 指數(shù)加權(quán)(滑動(dòng))平均

beta*V_(t-1)加上 之前使用的是0.1 現(xiàn)在把它換成(1-beta)*theta_t 之前beta=0.9 出于我們之后會(huì)講的某些原因 當(dāng)你計(jì)算這個(gè)公式的時(shí)候 你可以認(rèn)為V_t近似于 1/(1-beta)天溫度的平均 舉例來(lái)說(shuō) 當(dāng)beta=0.9的時(shí)候 你可以認(rèn)為它是前10天的氣溫平均值

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-PWzzACD4-1610775595600)(https://i.loli.net/2019/08/28/Y1HuTEiq6vUFjPl.png)]

3 偏差修正

它能夠幫助你更好地計(jì)算平均值

工作原理:用vt/1-βt代替vt(t是下標(biāo))

在機(jī)器學(xué)習(xí)中 多數(shù)的指數(shù)加權(quán)平均運(yùn)算 并不會(huì)使用偏差修正 因?yàn)榇蠖鄶?shù)人更愿意在初始階段 用一個(gè)稍帶偏差的值進(jìn)行運(yùn)算 不過(guò) 如果在初始階段就開(kāi)始考慮偏差 指數(shù)加權(quán)移動(dòng)均指仍處于預(yù)熱階段 偏差修正可以幫你盡早做出更好的估計(jì)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-SuX0Q2Ng-1610775595601)(https://i.loli.net/2019/08/28/9IXPFviqufD4YoS.png)]

4 動(dòng)量梯度下降算法

它幾乎總會(huì)比標(biāo)準(zhǔn)的梯度下降算法更快 一言以蔽之 算法的主要思想是 計(jì)算梯度的指數(shù)加權(quán)平均 然后使用這個(gè)梯度來(lái)更新權(quán)重

可以減少震蕩,原因:如果把這些梯度平均一下 你會(huì)發(fā)現(xiàn)這些震蕩 在縱軸上的平均值趨近于0 所以 在垂直方向上 你會(huì)希望減慢速度 正數(shù)和負(fù)數(shù)在計(jì)算平均時(shí)相互抵消了 平均值接近于0 然而在水平方向上 所有導(dǎo)數(shù)都指向水平方向的右邊 所以水平方向的平均值仍然較大 因此在數(shù)次迭代之后 你會(huì)發(fā)現(xiàn)動(dòng)量梯度下降算法的每一步 在垂直方向上的振蕩非常小 且在水平方向上運(yùn)動(dòng)得更快 這會(huì)讓你的算法選擇更加直接的路徑 或者說(shuō)減弱了前往最小值的路徑上的振蕩

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-gNCN0hA1-1610775595603)(https://i.loli.net/2019/08/28/akwGWuSgt32xMIj.png)]

5 RMSprop 均方根傳遞(root mean square prop)

你希望減慢b方向的學(xué)習(xí) 也就是垂直方向 同時(shí)加速或至少不減慢水平方向的學(xué)習(xí) 這就是RMSprop算法要做的

現(xiàn)在我們來(lái)理解一下它的工作原理 記得在水平方向上 即例子中W的方向上 我們希望學(xué)習(xí)速率較快 而在垂直方向上 即例子中b的方向上 我們希望降低垂直方向上的振蕩 對(duì)于S_dW和S_db這兩項(xiàng) 我們希望S_dW相對(duì)較小 因此這里除以的是一個(gè)較小的數(shù) 而S_db相對(duì)較大 因此這里除以的是一個(gè)較大的數(shù) 這樣就可以減緩垂直方向上的更新

另一個(gè)收效是 你可以使用更大的學(xué)習(xí)率alpha 學(xué)習(xí)得更快 而不用擔(dān)心在垂直方向上發(fā)散

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-iRweA9WM-1610775595605)(https://i.loli.net/2019/08/28/azu2tUcdsJ9qBn7.png)]

6 Adam優(yōu)化算法(自適應(yīng)矩估計(jì)Adaptive Moment Estimation)

Adam優(yōu)化算法本質(zhì)上是將 動(dòng)量算法和RMSprop結(jié)合起來(lái):在動(dòng)量梯度下降算法抵消部分震蕩的前提下,利用了rms梯度下降算法降低震蕩

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-iVZCCQ6T-1610775595606)(https://i.loli.net/2019/08/28/3LOcsl7n4fFihtW.png)]
t表示迭代次數(shù)

超參數(shù)的選擇

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-6ervWB1u-1610775595607)(https://i.loli.net/2019/08/28/cqlDBOVoQ5GRgWa.png)]

7 學(xué)習(xí)率衰減 learning rate decay

如果你想使用學(xué)習(xí)率衰減 你可以嘗試 不同的超參數(shù)組合 包括α0 以及這個(gè)衰減率的超參數(shù) 然后去嘗試尋找一個(gè)效果好的數(shù)值

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-TuFiT57x-1610775595608)(https://i.loli.net/2019/08/28/18qR9I4vEFDBTMr.png)]

7.1 其他學(xué)習(xí)率衰減的方法

k表示常數(shù)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-JLTHlD0d-1610775595609)(https://i.loli.net/2019/08/28/tCSQj5FnGyJoNTO.png)]

8 局部最優(yōu)點(diǎn),鞍點(diǎn)

對(duì)于一個(gè)高維空間的函數(shù) 如果梯度為零 則在每個(gè)方向上 它可能是凸函數(shù) 或者是凹函數(shù) 假設(shè)在一個(gè) 2萬(wàn)維的空間中 如果一個(gè)點(diǎn)要成為局部最優(yōu) 則需要在所有的2萬(wàn)個(gè)方向上都像這樣 因此這件事發(fā)生的概率非常低 大概2的負(fù)2萬(wàn)次方 你更有可能遇到的情況是
某些方向的曲線像這樣向上彎曲 同時(shí)另一些方向的曲線則向下彎曲 并非所有曲線都向上彎曲 這就是為什么在高維空間中 你更有可能碰到一個(gè)像右圖這樣的鞍點(diǎn) 而不是局部最優(yōu)

8.1 停滯區(qū)

實(shí)際上是停滯區(qū)(Plateaus) 停滯區(qū)指的是 導(dǎo)數(shù)長(zhǎng)時(shí)間接近于零的一段區(qū)域 如果你在這里 那么梯度下降會(huì)沿著這個(gè)曲面向下移動(dòng) 然而因?yàn)樘荻葹榱慊蚪咏诹?曲面很平 你會(huì)花費(fèi)很長(zhǎng)的時(shí)間 緩慢地在停滯區(qū)里找到這個(gè)點(diǎn) 然后因?yàn)樽髠?cè)或右側(cè)的隨機(jī)擾動(dòng),你的算法終于能夠離開(kāi)這個(gè)停滯區(qū) 它一直沿著這個(gè)很長(zhǎng)的坡往下走, 直到抵達(dá)此處, 離開(kāi)這個(gè)停滯區(qū)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-L6sPtDKC-1610775595610)(https://i.loli.net/2019/08/28/R3zsKiFMrCyvdu2.png)]

首先 實(shí)際上你不太可能陷入糟糕的局部最優(yōu)點(diǎn) 只要你訓(xùn)練的是一個(gè)較大的神經(jīng)網(wǎng)絡(luò) 有很多參數(shù) 代價(jià)函數(shù)J定義在一個(gè)相對(duì)高維的空間上

其次 停滯區(qū)是個(gè)問(wèn)題, 它會(huì)讓學(xué)習(xí)過(guò)程變得相當(dāng)慢 這也是像動(dòng)量(Momentum)算法
或RmsProp算法 或Adam算法能改善你的學(xué)習(xí)算法的地方

總結(jié)

以上是生活随笔為你收集整理的DL3 - optimization algorithms的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。