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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1. Mini-batch 梯度下降
    • 2. 理解 mini-batch 梯度下降
    • 3. 指數(shù)加權(quán)平均數(shù)
    • 4. 理解指數(shù)加權(quán)平均數(shù)
    • 5. 指數(shù)加權(quán)平均的偏差修正
    • 6. 動(dòng)量Momentum梯度下降法
    • 7. RMSprop
    • 8. Adam 優(yōu)化算法
    • 9. 學(xué)習(xí)率衰減
    • 10. 局部最優(yōu)的問題
    • 作業(yè)

參考:
吳恩達(dá)視頻課
深度學(xué)習(xí)筆記

1. Mini-batch 梯度下降

在巨大的數(shù)據(jù)集上進(jìn)行訓(xùn)練,速度非常慢,如何提高效率?

前面我們學(xué)過向量化可以較快的處理整個(gè)訓(xùn)練集的數(shù)據(jù),如果樣本非常的大,在進(jìn)行下一次梯度下降之前,你必須完成前一次的梯度下降。如果我們能先處理一部分?jǐn)?shù)據(jù),算法速度會更快。

  • 把訓(xùn)練集分割為小一點(diǎn)的子集(稱之 mini-batch)訓(xùn)練

batch 梯度下降法:指的就是前面講的梯度下降法,可以同時(shí)處理整個(gè) 訓(xùn)練集
mini-batch:每次處理的是單個(gè)的 mini-batch 訓(xùn)練子集

2. 理解 mini-batch 梯度下降


mini-batch 梯度下降,每次迭代后 cost 不一定是下降的,因?yàn)槊看蔚荚谟?xùn)練不同的樣本子集,但總體趨勢應(yīng)該是下降的

mini-batch 的 size 大小:

  • 大小 = m,就是batch梯度下降法
  • 大小 = 1,就是隨機(jī)梯度下降

3. 指數(shù)加權(quán)平均數(shù)


假設(shè),v0=0,vt=β?vt?1+(1?β)?θtv_0 = 0, v_t = \beta*v_{t-1}+(1-\beta)*\theta_tv0?=0,vt?=β?vt?1?+(1?β)?θt?
選取不同的 β\betaβ 值,得到相應(yīng)的氣溫曲線

4. 理解指數(shù)加權(quán)平均數(shù)

假如 β=0.9,t=100\beta = 0.9,t=100β=0.9t=100,將上面的帶進(jìn)去求 v100v_{100}v100?

v100=0.1θ100+0.9(0.1θ99+0.9(0.1θ98+0.9v97))0v100=0.1θ100+0.1×0.9θ99+0.1×(0.9)2θ98+0.1×(0.9)3θ97+0.1×(0.9)4θ96+…\begin{array}{l}v_{100}=0.1 \theta_{100}+0.9\left(0.1 \theta_{99}+0.9\left(0.1 \theta_{98}+0.9 v_{97}\right)\right)_{0} \\ \\ v_{100}=0.1 \theta_{100}+0.1 \times 0.9 \theta_{99}+0.1 \times(0.9)^{2} \theta_{98}+0.1 \times(0.9)^{3} \theta_{97}+0.1 \times(0.9)^{4} \theta_{96}+\ldots\end{array}v100?=0.1θ100?+0.9(0.1θ99?+0.9(0.1θ98?+0.9v97?))0?v100?=0.1θ100?+0.1×0.9θ99?+0.1×(0.9)2θ98?+0.1×(0.9)3θ97?+0.1×(0.9)4θ96?+?

好處:代碼簡單,占用內(nèi)存極少

vθ=0,vt:=β?vθ+(1?β)?θtv_\theta = 0, v_t := \beta*v_\theta+(1-\beta)*\theta_tvθ?=0,vt?:=β?vθ?+(1?β)?θt?
當(dāng)然,它并不是最好、最精準(zhǔn)的計(jì)算平均數(shù)的方法

5. 指數(shù)加權(quán)平均的偏差修正

6. 動(dòng)量Momentum梯度下降法

思想:計(jì)算梯度的指數(shù)加權(quán)平均數(shù),利用該梯度更新權(quán)重


上圖情況下,標(biāo)準(zhǔn)的梯度下降會上下波動(dòng),且要使用較小的學(xué)習(xí)率,否則會偏離更遠(yuǎn)。

如果我們使用過去梯度的加權(quán)平均,縱向的就抵消了一些,橫向的疊加了一些,可以更平滑的快速找向最優(yōu)點(diǎn)

vdW=βvdW+(1?β)dWvdb=βvdb+(1?β)dbv_{d W}=\beta v_{d W}+(1-\beta) d W\\ v_{d b}=\beta v_{d b}+(1-\beta) d bvdW?=βvdW?+(1?β)dWvdb?=βvdb?+(1?β)db
W:=W?α?vdWb:=b?α?vdbW:=W-\alpha* v_{d W} \\ b:=b-\alpha* v_{d b}W:=W?α?vdW?b:=b?α?vdb?

  • 超參數(shù)有 α\alphaαβ=0.9\beta = 0.9β=0.9β\betaβ 經(jīng)常取 0.9)
  • 如果想偏差修正,vdW,vdbv_{d W},v_{d b}vdW?,vdb? 還要除以 1?βt1-\beta^t1?βt,實(shí)際上人們不這么做,10次迭代之后,偏差就基本很小了

動(dòng)量梯度下降法,并不是對所有情況都有效,它對碗狀的優(yōu)化效果較好

7. RMSprop

全稱是 root mean square prop 算法,它也可以加速梯度下降

微分平方的加權(quán)平均數(shù):
SdW=βSdW+(1?β)(dW)2Sdb=βSdb+(1?β)(db)2S_{d W}=\beta S_{d W}+(1-\beta) (d W)^{2}\\ S_{d b}=\beta S_{d b}+(1-\beta) (d b)^{2}SdW?=βSdW?+(1?β)(dW)2Sdb?=βSdb?+(1?β)(db)2

W:=W?α?dWSdW+Eb:=b?α?dbSdb+EW:=W-\alpha* \frac{d W}{\sqrt{S_{d W}}+\mathcal{E}}\\ \\ \text{ }\\ \quad b:=b-\alpha* \frac{d b}{\sqrt{S_{d b}}+\mathcal{E}}W:=W?α?SdW??+EdW??b:=b?α?Sdb??+Edb?
E=1e?8\mathcal{E} = 1e^{-8}E=1e?8 保證分母不為 0

RMSpropMomentum 有很相似的一點(diǎn),可以消除梯度下降和mini-batch梯度下降中的擺動(dòng),并允許你使用一個(gè)更大的學(xué)習(xí)率,從而加快你的算法學(xué)習(xí)速度。

8. Adam 優(yōu)化算法

Adam (Adaptive Moment Estimation) 優(yōu)化算法基本上就是將 Momentum 和 RMSprop 結(jié)合在一起

  • 初始化:vdW=0,SdW=0,vdb=0,Sdb=0v_{d W}=0, S_{d W}=0, v_{d b}=0, S_{d b}=0vdW?=0,SdW?=0,vdb?=0,Sdb?=0
  • t 次迭代
    Momentum
    vdW=β1vdW+(1?β1)dWv_{d W}=\beta_{1} v_{d W}+\left(1-\beta_{1}\right) d WvdW?=β1?vdW?+(1?β1?)dW
    vdb=β1vdb+(1?β1)dbv_{d b}=\beta_{1} v_{d b}+\left(1-\beta_{1}\right) d bvdb?=β1?vdb?+(1?β1?)db
    RMSprop
    SdW=β2SdW+(1?β2)(dW)2S_{d W}=\beta_{2} S_{d W}+\left(1-\beta_{2}\right)(d W)^{2}SdW?=β2?SdW?+(1?β2?)(dW)2
    Sdb=β2Sdb+(1?β2)(db)2S_{d b}=\beta_{2} S_{d b}+\left(1-\beta_{2}\right)(d b)^{2}Sdb?=β2?Sdb?+(1?β2?)(db)2
    偏差修正
    vdWcorrected?=vdW1?β1tv_{d W}^{\text {corrected }}=\frac{v_{d W}}{1-\beta_{1}^{t}}vdWcorrected??=1?β1t?vdW??
    vdbcorrected?=vdb1?β1tv_{d b}^{\text {corrected }}=\frac{v_{d b}}{1-\beta_{1}^{t}}vdbcorrected??=1?β1t?vdb??
    SdWcorrected?=SdW1?β2tS_{d W}^{\text {corrected }}=\frac{S_{d W}}{1-\beta_{2}^{t}}SdWcorrected??=1?β2t?SdW??
    Sdbcorrected?=Sdb1?β2tS_{d b}^{\text {corrected }}=\frac{S_{d b}}{1-\beta_{2}^{t}}Sdbcorrected??=1?β2t?Sdb??
    更新權(quán)重
    W:=W?α?vdWcorrected?SdWcorrected?+εW:=W- \alpha*\frac{ v_{d W}^{\text {corrected }}}{\sqrt{S_{d W}^{\text {corrected }}}+\varepsilon}W:=W?α?SdWcorrected???+εvdWcorrected???
    \quad
    b:=b?α?vdbcorreted?Sdbcorrected?+εb:=b- \alpha*\frac{v_{\mathrm{db}}^{\text {correted }}}{\sqrt{S_{\mathrm{db}}^{\text {corrected }}}+\varepsilon}b:=b?α?Sdbcorrected???+εvdbcorreted???

Adam算法結(jié)合了 Momentum 和 RMSprop 梯度下降法,并且是一種極其常用的學(xué)習(xí)算法
其被證明能有效適用于不同神經(jīng)網(wǎng)絡(luò),適用于廣泛的結(jié)構(gòu)

超參數(shù):

  • 學(xué)習(xí)率 α\alphaα
  • β1=0.9\beta_1 = 0.9β1?=0.9,常用
  • β2=0.999\beta_2 = 0.999β2?=0.999,作者推薦
  • ε=1e?8\varepsilon = 1e^{-8}ε=1e?8

9. 學(xué)習(xí)率衰減


慢慢減少 學(xué)習(xí)率 的本質(zhì)在于,在學(xué)習(xí)初期,使用較大的步伐,開始收斂的時(shí)候,用小一些的學(xué)習(xí)率能讓步伐小一些

  • 對不同的 mini-batch 進(jìn)行訓(xùn)練,一次稱之為 epoch
    α=11+decayRate?epochNum?α0\alpha = \frac{1}{1+decayRate*epochNum}*\alpha_0α=1+decayRate?epochNum1??α0?

還有些其他的方法:
α=0.95epochNumα0α=kepochNumα0α=ktα0,t為mini-batch的數(shù)字\alpha = 0.95^{epochNum}\alpha_0\\ \alpha = \frac{k}{\sqrt {epochNum}}\alpha_0\\ \alpha = \frac{k}{\sqrt t}\alpha_0,t為 \text{mini-batch}的數(shù)字α=0.95epochNumα0?α=epochNum?k?α0?α=t?k?α0?tmini-batch數(shù)
還有離散下降學(xué)習(xí)率,即 不是每步都下調(diào)學(xué)習(xí)率

10. 局部最優(yōu)的問題


高維度空間中,我們不太可能遇見(概率很低)如上圖所示的局部最優(yōu)點(diǎn),因?yàn)樾枰@么多的維度方向上都梯度為 0(概率很低)

所以更有可能遇到的是鞍點(diǎn)

基本不會遇見局部最優(yōu)問題,可能遇見的是平穩(wěn)段減緩了學(xué)習(xí)速度,該區(qū)域梯度接近于 0 ,要很長時(shí)間才能走出去。Momentum 或 RMSprop,Adam 能夠加快速度,讓你盡早 走出平穩(wěn)段。

作業(yè)

02.改善深層神經(jīng)網(wǎng)絡(luò):超參數(shù)調(diào)試、正則化以及優(yōu)化 W2.優(yōu)化算法(作業(yè):優(yōu)化方法)


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!

總結(jié)

以上是生活随笔為你收集整理的02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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