中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

南京網(wǎng)站建設(shè)公司關(guān)鍵詞優(yōu)化推廣公司哪家好

南京網(wǎng)站建設(shè)公司,關(guān)鍵詞優(yōu)化推廣公司哪家好,國家企業(yè)信用信息公示系統(tǒng)廣東,網(wǎng)址轉(zhuǎn)換成短鏈接深度學(xué)習(xí)的優(yōu)化算法 優(yōu)化的目標(biāo) 優(yōu)化提供了一種最大程度減少深度學(xué)習(xí)損失函數(shù)的方法,但本質(zhì)上,優(yōu)化和深度學(xué)習(xí)的目標(biāo)不同。 優(yōu)化關(guān)注的是最小化目標(biāo);深度學(xué)習(xí)是在給定有限數(shù)據(jù)量的情況下尋找合適的模型。 優(yōu)化算法 gradient descent&#xf…

深度學(xué)習(xí)的優(yōu)化算法

  1. 優(yōu)化的目標(biāo)

    優(yōu)化提供了一種最大程度減少深度學(xué)習(xí)損失函數(shù)的方法,但本質(zhì)上,優(yōu)化和深度學(xué)習(xí)的目標(biāo)不同。

    優(yōu)化關(guān)注的是最小化目標(biāo);深度學(xué)習(xí)是在給定有限數(shù)據(jù)量的情況下尋找合適的模型。

  2. 優(yōu)化算法

    1. gradient descent(梯度下降)

      考慮一類連續(xù)可微實(shí)值函數(shù)f:R→Rf:\mathbb{R} \rightarrow \mathbb{R}f:RR,利用泰勒展開,可以得到:
      f(x+?)=f(x)+?f′(x)+O(?2)f(x + \epsilon ) = f(x) + \epsilon f'(x) + O(\epsilon ^2) f(x+?)=f(x)+?f(x)+O(?2)
      在一階近似中,f(x+?)f(x + \epsilon )f(x+?) 可通過xxx處的函數(shù)值f(x)f(x)f(x)和一階導(dǎo)數(shù)f′(x)f'(x)f(x)得出。假設(shè)在負(fù)梯度方向上移動(dòng)的?\epsilon?會(huì)減少fff。為了簡化問題,選擇固定步長η>0\eta > 0η>0,然后取?=?ηf′(x)\epsilon = - \eta f'(x)?=?ηf(x),將其帶入泰勒展開式后,得到
      f(x?ηf′(x))=f(x)?ηf′2(x)+O(η2f′2(x))f(x - \eta f'(x)) = f(x) - \eta f'^2(x) + O(\eta^2f'^2(x)) f(x?ηf(x))=f(x)?ηf′2(x)+O(η2f′2(x))
      f′(x)≠0f'(x) \ne 0f(x)=0,則ηf′2(x)>0\eta f'^2(x) > 0ηf′2(x)>0。另外,總是可以找到令η\etaη足夠小使得高階項(xiàng)變的不相關(guān),因此
      f(x?ηf′(x))<f(x)f(x - \eta f'(x)) < f(x) f(x?ηf(x))<f(x)
      這意味著,如果使用
      x←x?ηf′(x)x \leftarrow x - \eta f'(x) xx?ηf(x)
      來迭代x,函數(shù)f(x)f(x)f(x)的值可能會(huì)下降。

      因此,在梯度下降中,首先選用初始值xxxη>0\eta > 0η>0,然后使用它們連續(xù)迭代xxx,直到停止條件達(dá)成。例如:當(dāng)梯度∣f′(x)∣|f'(x)|f(x)的幅度足夠小或迭代次數(shù)達(dá)到某個(gè)值。

      其中,步長η\etaη叫做學(xué)習(xí)率,是超參數(shù),其決定目標(biāo)函數(shù)能否收斂到局部最小值,以及何時(shí)收斂到最小值。

    2. SGD(隨機(jī)梯度下降)

      深度學(xué)習(xí)中,目標(biāo)函數(shù)通常是訓(xùn)練數(shù)據(jù)集中每個(gè)樣本的損失函數(shù)的平均值。

      給定nnn個(gè)樣本,假設(shè)fi(x)f_i(x)fi?(x)是關(guān)于索引iii的訓(xùn)練樣本的損失函數(shù),其中XXX是參數(shù)向量,得到目標(biāo)函數(shù):
      f(X)=1n∑i=1nfi(X)f(X) = \frac{1}{n} \sum_{i=1}^{n} f_i(X) f(X)=n1?i=1n?fi?(X)
      XXX的目標(biāo)函數(shù)的梯度為:
      ?f(X)=1n∑i=1n?fi(X)\nabla f(X) = \frac{1}{n} \sum_{i=1}^{n} \nabla f_i(X) ?f(X)=n1?i=1n??fi?(X)
      如果采用梯度下降法,每個(gè)自變量迭代的計(jì)算代價(jià)為O(n)O(n)O(n),其隨nnn線性增長,因此,當(dāng)訓(xùn)練數(shù)據(jù)集規(guī)模較大時(shí),每次迭代的梯度下降的計(jì)算代價(jià)將更高。

      SGD可降低每次迭代時(shí)的計(jì)算代價(jià)。在隨機(jī)梯度下降的每次迭代中,對數(shù)據(jù)樣本隨機(jī)均勻采樣一個(gè)索引iii,其中i∈{1,...,n}i \in \{ 1,...,n \}i{1,...,n},并計(jì)算梯度?fi(X)\nabla f_i(X)?fi?(X)來更新XXX
      x←x?η?fi(X)x \leftarrow x - \eta \nabla f_i(X) xx?η?fi?(X)
      其中,η\etaη是學(xué)習(xí)率。

      可以發(fā)現(xiàn),每次迭代的計(jì)算代價(jià)從梯度下降的O(n)O(n)O(n)下降到了常數(shù)O(1)O(1)O(1)。

      此外,隨機(jī)梯度?fi(x)\nabla f_i(x)?fi?(x)是對完整梯度?f(x)\nabla f(x)?f(x)的無偏估計(jì)。
      E?fi(X)=1n∑i=1n?fi(X)=?f(X)\mathbb{E} \nabla f_i(X) = \frac{1}{n} \sum_{i=1}^{n} \nabla f_i(X) = \nabla f(X) E?fi?(X)=n1?i=1n??fi?(X)=?f(X)
      這意味著,平均而言,隨機(jī)梯度是對梯度的良好估計(jì)。

    3. minibatch-SGD(小批量隨機(jī)梯度下降)

      處理單個(gè)觀測值需要我們執(zhí)行許多單一矩陣-矢量(甚至矢量-矢量)乘法,這耗費(fèi)很大,而且對應(yīng)深度學(xué)習(xí)框架也要巨大的開銷。這既適用于計(jì)算梯度以更新參數(shù)時(shí),也適用于用神經(jīng)網(wǎng)絡(luò)預(yù)測。既,當(dāng)執(zhí)行w←w?ηtgt\mathbf{w} \leftarrow \mathbf{w} - \eta_t \mathbf{g}_tww?ηt?gt?時(shí),消耗巨大,其中:
      gt=?wf(xt,w).\mathbf{g}_t = \partial_{\mathbf{w}} f(\mathbf{x}_{t}, \mathbf{w}). gt?=?w?f(xt?,w).
      可以通過將其應(yīng)用于一個(gè)小批量觀測值來提高次操作的計(jì)算效率。也就是說,將梯度gtg_tgt?替換為一個(gè)小批量而不是單個(gè)觀測值。
      gt=?w1∣Bt∣∑i∈Btf(xi,w).\mathbf{g}_t = \partial_{\mathbf{w}} \frac{1}{|\mathcal{B}_t|} \sum_{i \in \mathcal{B}_t} f(\mathbf{x}_{i}, \mathbf{w}). gt?=?w?Bt?1?iBt??f(xi?,w).
      分析gt\mathbf{g}_tgt?的統(tǒng)計(jì)屬性的影響:

      1. 梯度的期望保持不變:xt\mathbf{x}_txt?和小批量Bt\mathcal{B}_tBt?的所有元素都是從訓(xùn)練集中隨機(jī)抽出的。
      2. 方差顯著降低:小批量梯度由正在被平均計(jì)算的b:=∣Bt∣b := |\mathcal{B}_t|b:=Bt?個(gè)獨(dú)立梯度組成,其標(biāo)準(zhǔn)差降低了b?12b^{-\frac{1}{2}}b?21?

      實(shí)踐中我們選擇一個(gè)足夠大的小批量,它可以提供良好的計(jì)算效率同時(shí)仍適合GPU的內(nèi)存。

    4. momentum(動(dòng)量法)

      1. 泄露平均值

        在小批量隨機(jī)梯度下降中,定義某次時(shí)間ttt的梯度下降計(jì)算公式:
        gt,t?1=?w1∣Bt∣∑i∈Btf(xi,wt?1)=1∣Bt∣∑i∈Bthi,t?1.\mathbf{g}_{t, t-1} = \partial_{\mathbf{w}} \frac{1}{|\mathcal{B}_t|} \sum_{i \in \mathcal{B}_t} f(\mathbf{x}_{i}, \mathbf{w}_{t-1}) = \frac{1}{|\mathcal{B}_t|} \sum_{i \in \mathcal{B}_t} \mathbf{h}_{i, t-1}. gt,t?1?=?w?Bt?1?iBt??f(xi?,wt?1?)=Bt?1?iBt??hi,t?1?.
        小批量隨機(jī)梯度下降可以作為加速計(jì)算的手段,同時(shí)其也有很好的副作用,即平均梯度減小了方差。
        vt=βvt?1+gt,t?1\mathbf{v}_t = \beta \mathbf{v}_{t-1} + \mathbf{g}_{t, t-1} vt?=βvt?1?+gt,t?1?
        其中,β∈(0,1)\beta \in (0, 1)β(0,1)。這將有效的將瞬間梯度替換為“過去“多個(gè)梯度的平均值。v\mathbf{v}v被稱為動(dòng)量,其累加了過去的梯度。其中,可以vt\mathbf{v}_tvt?擴(kuò)展到
        vt=β2vt?2+βgt?1,t?2+gt,t?1=…,=∑τ=0t?1βτgt?τ,t?τ?1.\begin{aligned} \mathbf{v}_t = \beta^2 \mathbf{v}_{t-2} + \beta \mathbf{g}_{t-1, t-2} + \mathbf{g}_{t, t-1} = \ldots, = \sum_{\tau = 0}^{t-1} \beta^{\tau} \mathbf{g}_{t-\tau, t-\tau-1}. \end{aligned} vt?=β2vt?2?+βgt?1,t?2?+gt,t?1?=,=τ=0t?1?βτgt?τ,t?τ?1?.?
        其中,較大的β\betaβ相當(dāng)于長期平均值,較小的β\betaβ相當(dāng)于梯度只是略有修正。新的梯度替換不在指向模型中下降最陡的方向,而是指向過去梯度的加權(quán)平均值的方向。

        1. 在優(yōu)化問題不佳的情況下(例如函數(shù)某處”很平“,導(dǎo)數(shù)很小),具有動(dòng)量的梯度可以借用之前的梯度來進(jìn)行“加速”。
        2. 其允許我們對隨后的梯度計(jì)算平均值,以獲得更穩(wěn)定的下降方向。
      2. 動(dòng)量法

        對于minibatch-SGD,使用vt\mathbf{v}_tvt?而不是梯度gt\mathbf{g}_tgt?可以生成以下更新等式:
        vt←βvt?1+gt,t?1,xt←xt?1?ηtvt.\begin{aligned} \mathbf{v}_t &\leftarrow \beta \mathbf{v}_{t-1} + \mathbf{g}_{t, t-1}, \\ \mathbf{x}_t &\leftarrow \mathbf{x}_{t-1} - \eta_t \mathbf{v}_t. \end{aligned} vt?xt??βvt?1?+gt,t?1?,xt?1??ηt?vt?.?
        注意,對于β=0\beta = 0β=0,我們恢復(fù)常規(guī)的梯度下降。

      3. 有效樣本權(quán)重

        vt=∑τ=0t?1βτgt?τ,t?τ?1\mathbf{v}_t = \sum_{\tau = 0}^{t-1} \beta^{\tau} \mathbf{g}_{t-\tau, t-\tau-1}vt?=τ=0t?1?βτgt?τ,t?τ?1?。極限條件下,∑τ=0∞βτ=11?β\sum_{\tau=0}^\infty \beta^\tau = \frac{1}{1-\beta}τ=0?βτ=1?β1?。

        即,不同于在梯度下降或者隨機(jī)梯度下降中取步長η\etaη,我們選取步長η1?β\frac{\eta}{1-\beta}1?βη?,同時(shí)處理潛在表現(xiàn)可能會(huì)更好的下降方向。這是集兩種好處于一身的做法。

      4. 小結(jié):
      • 動(dòng)量法用過去梯度的平均值來替換梯度,這大大加快了收斂速度。

      • 對于無噪聲梯度下降和嘈雜隨機(jī)梯度下降,動(dòng)量法都是可取的。

      • 動(dòng)量法可以防止在隨機(jī)梯度下降的優(yōu)化過程停滯的問題。

      • 由于對過去的數(shù)據(jù)進(jìn)行了指數(shù)降權(quán),有效梯度數(shù)為11?β\frac{1}{1-\beta}1?β1?

      • 動(dòng)量法的實(shí)現(xiàn)非常簡單,但它需要我們存儲(chǔ)額外的狀態(tài)向量(動(dòng)量v\mathbf{v}v)。

    5. AdaGrad

      1. 稀疏特征和學(xué)習(xí)率

        需要明確:為了使訓(xùn)練模型獲得良好的準(zhǔn)確性,我們大多希望在訓(xùn)練的過程中降低學(xué)習(xí)率,速度通常為O(t?12)\mathcal{O}(t^{-\frac{1}{2}})O(t?21?)或更低。 對于稀疏特征(即只在偶爾出現(xiàn)的特征)的模型訓(xùn)練,只有在不常見的特征出現(xiàn)時(shí),與其相關(guān)的參數(shù)才會(huì)得到有意義的更新。 鑒于學(xué)習(xí)率下降,我們可能最終會(huì)面臨這樣的情況:常見特征的參數(shù)相當(dāng)迅速地收斂到最佳值,而對于不常見的特征,我們?nèi)匀狈ψ銐虻挠^測以確定其最佳值。 換句話說,學(xué)習(xí)率要么對于常見特征而言降低太慢,要么對于不常見特征而言降低太快。

        解決此問題的一個(gè)方法是記錄我們看到特定特征的次數(shù),然后將其用作調(diào)整學(xué)習(xí)率。 即我們可以使用大小為ηi=η0s(i,t)+c\eta_i = \frac{\eta_0}{\sqrt{s(i, t) + c}}ηi?=s(i,t)+c?η0??的學(xué)習(xí)率,而不是η=η0t+c\eta = \frac{\eta_0}{\sqrt{t + c}}η=t+c?η0??。在這里s(i,t)s(i, t)s(i,t)計(jì)下了我們截至ttt時(shí)觀察到功能iii的次數(shù)。

        AdaGrad算法 通過將粗略的計(jì)數(shù)器s(i,t)s(i, t)s(i,t)替換為先前觀察所得梯度的平方之和來解決這個(gè)問題。它使用s(i,t+1)=s(i,t)+(?if(x))2s(i, t+1) = s(i, t) + \left(\partial_i f(\mathbf{x})\right)^2s(i,t+1)=s(i,t)+(?i?f(x))2來調(diào)整學(xué)習(xí)率。

        這有兩個(gè)好處:

        1. 不再需要決定梯度何時(shí)算足夠大。
        2. 其會(huì)隨梯度的大小自動(dòng)變化。通常對應(yīng)于較大梯度的坐標(biāo)會(huì)顯著縮小,而其他梯度較小的坐標(biāo)則會(huì)得到更平滑的處理。
      2. AdaGrad算法:

        使用變量st\mathbf{s}_tst?來累加過去的梯度方差:
        gt=?wl(yt,f(xt,w)),st=st?1+gt2,wt=wt?1?ηst+??gt.\begin{aligned} \mathbf{g}_t & = \partial_{\mathbf{w}} l(y_t, f(\mathbf{x}_t, \mathbf{w})), \\ \mathbf{s}_t & = \mathbf{s}_{t-1} + \mathbf{g}_t^2, \\ \mathbf{w}_t & = \mathbf{w}_{t-1} - \frac{\eta}{\sqrt{\mathbf{s}_t + \epsilon}} \cdot \mathbf{g}_t. \end{aligned} gt?st?wt??=?w?l(yt?,f(xt?,w)),=st?1?+gt2?,=wt?1??st?+??η??gt?.?
        η\etaη是學(xué)習(xí)率,?\epsilon?是一個(gè)為維持?jǐn)?shù)值穩(wěn)定性而添加的常數(shù),用來確保不會(huì)除以000。最后,初始化s0=0\mathbf{s}_0 = \mathbf{0}s0?=0。

        就像在動(dòng)量法中需要跟蹤一個(gè)輔助變量一樣,在AdaGrad算法中,我們允許每個(gè)坐標(biāo)有單獨(dú)的學(xué)習(xí)率。與SGD算法相比,這并沒有明顯增加AdaGrad的計(jì)算代價(jià),因?yàn)橹饕?jì)算用在l(yt,f(xt,w))l(y_t, f(\mathbf{x}_t, \mathbf{w}))l(yt?,f(xt?,w))及其導(dǎo)數(shù)。

        注意,在st\mathbf{s}_tst?中累加平方梯度意味著st\mathbf{s}_tst?基本上以線性速率增長(由于梯度從最初開始衰減,實(shí)際上比線性慢一些)。這產(chǎn)生了一個(gè)學(xué)習(xí)率O(t?12)\mathcal{O}(t^{-\frac{1}{2}})O(t?21?),但是在單個(gè)坐標(biāo)的層面上進(jìn)行了調(diào)整。對于凸問題,這完全足夠了。然而,在深度學(xué)習(xí)中,我們可能希望更慢地降低學(xué)習(xí)率。這引出了許多AdaGrad算法的變體。

      3. 小結(jié):
        • AdaGrad算法會(huì)在單個(gè)坐標(biāo)層面動(dòng)態(tài)降低學(xué)習(xí)率。

        • AdaGrad算法利用梯度的大小作為調(diào)整進(jìn)度速率的手段:用較小的學(xué)習(xí)率來補(bǔ)償帶有較大梯度的坐標(biāo)。

        • 在深度學(xué)習(xí)問題中,由于內(nèi)存和計(jì)算限制,計(jì)算準(zhǔn)確的二階導(dǎo)數(shù)通常是不可行的。梯度可以作為一個(gè)有效的代理。

        • 如果優(yōu)化問題的結(jié)構(gòu)相當(dāng)不均勻,AdaGrad算法可以幫助緩解扭曲。

        • AdaGrad算法對于稀疏特征特別有效,在此情況下由于不常出現(xiàn)的問題,學(xué)習(xí)率需要更慢地降低。

        • 在深度學(xué)習(xí)問題上,AdaGrad算法有時(shí)在降低學(xué)習(xí)率方面可能過于劇烈。

    6. RMSProp

      1. RMSProp算法

        Adagrad算法的關(guān)鍵問題之一就是學(xué)習(xí)率按預(yù)定時(shí)間表O(t?12)\mathcal{O}(t^{-\frac{1}{2}})O(t?21?)顯著降低。 而且,Adagrad算法將梯度gt\mathbf{g}_tgt?的平方累加成狀態(tài)矢量st=st?1+gt2\mathbf{s}_t = \mathbf{s}_{t-1} + \mathbf{g}_t^2st?=st?1?+gt2?。因此,由于缺乏規(guī)范化,沒有約束力,st\mathbf{s}_tst?持續(xù)增長,幾乎上是在算法收斂時(shí)呈線性遞增。

        解決此問題的一種方法是使用st/t\mathbf{s}_t / tst?/t。對gt\mathbf{g}_tgt?的合理分布來說,它將收斂。遺憾的是,限制行為生效可能需要很長時(shí)間,因?yàn)樵摿鞒逃涀×酥档耐暾壽E。

        另一種方法是按動(dòng)量法中的方式使用泄漏平均值,即st←γst?1+(1?γ)gt2\mathbf{s}_t \leftarrow \gamma \mathbf{s}_{t-1} + (1-\gamma) \mathbf{g}_t^2st?γst?1?+(1?γ)gt2?,其中參數(shù)γ>0\gamma > 0γ>0。保持所有其它部分不變就產(chǎn)生了RMSProp算法。公式:
        st←γst?1+(1?γ)gt2,xt←xt?1?ηst+?⊙gt.\begin{aligned} \mathbf{s}_t & \leftarrow \gamma \mathbf{s}_{t-1} + (1 - \gamma) \mathbf{g}_t^2, \\ \mathbf{x}_t & \leftarrow \mathbf{x}_{t-1} - \frac{\eta}{\sqrt{\mathbf{s}_t + \epsilon}} \odot \mathbf{g}_t. \end{aligned} st?xt??γst?1?+(1?γ)gt2?,xt?1??st?+??η?gt?.?
        常數(shù)?>0\epsilon > 0?>0通常設(shè)置為10?610^{-6}10?6,以確保不會(huì)因除以零或步長過大而受到影響。鑒于這種擴(kuò)展,現(xiàn)在可以自由控制學(xué)習(xí)率η\etaη,而不考慮基于每個(gè)坐標(biāo)應(yīng)用的縮放。就泄漏平均值而言,可以采用與之前在動(dòng)量法中適用的相同推理。

        擴(kuò)展st\mathbf{s}_tst?定義可獲得:
        st=(1?γ)gt2+γst?1=(1?γ)(gt2+γgt?12+γ2gt?2+…,).\begin{aligned} \mathbf{s}_t & = (1 - \gamma) \mathbf{g}_t^2 + \gamma \mathbf{s}_{t-1} \\ & = (1 - \gamma) \left(\mathbf{g}_t^2 + \gamma \mathbf{g}_{t-1}^2 + \gamma^2 \mathbf{g}_{t-2} + \ldots, \right). \end{aligned} st??=(1?γ)gt2?+γst?1?=(1?γ)(gt2?+γgt?12?+γ2gt?2?+,).?
        同之前一樣,使用1+γ+γ2+…,=11?γ1 + \gamma + \gamma^2 + \ldots, = \frac{1}{1-\gamma}1+γ+γ2+,=1?γ1?。因此,權(quán)重總和標(biāo)準(zhǔn)化為111且觀測值的半衰期為γ?1\gamma^{-1}γ?1

      2. 小結(jié)
        • RMSProp算法與Adagrad算法非常相似,因?yàn)閮烧叨际褂锰荻鹊钠椒絹砜s放系數(shù)。
        • RMSProp算法與動(dòng)量法都使用泄漏平均值。但是,RMSProp算法使用該技術(shù)來調(diào)整按系數(shù)順序的預(yù)處理器。
        • 在實(shí)驗(yàn)中,學(xué)習(xí)率需要由實(shí)驗(yàn)者調(diào)度。
        • 系數(shù)γ\gammaγ決定了在調(diào)整每坐標(biāo)比例時(shí)歷史記錄的時(shí)長。
    7. Adadelta

      1. Adadelta算法

        Adadelta是AdaGrad的另一種變體,主要區(qū)別在于其減少了學(xué)習(xí)率適應(yīng)坐標(biāo)的數(shù)量。

        此外,廣義上Adadelta被稱為沒有學(xué)習(xí)率,因?yàn)樗褂米兓勘旧碜鳛槲磥碜兓男?zhǔn)。簡而言之,Adadelta使用兩個(gè)狀態(tài)變量,st\mathbf{s}_tst?用于存儲(chǔ)梯度二階導(dǎo)數(shù)的泄露平均值,Δxt\Delta\mathbf{x}_tΔxt?用于存儲(chǔ)模型本身中參數(shù)變化二階導(dǎo)數(shù)的泄露平均值。

        以下是Adadelta的技術(shù)細(xì)節(jié)。
        首先獲得泄露更新:
        st=ρst?1+(1?ρ)gt2.\begin{aligned} \mathbf{s}_t & = \rho \mathbf{s}_{t-1} + (1 - \rho) \mathbf{g}_t^2. \end{aligned} st??=ρst?1?+(1?ρ)gt2?.?
        與 RMSProp的區(qū)別在于,本算法使用重新縮放的梯度gt′\mathbf{g}_t'gt?執(zhí)行更新,即
        xt=xt?1?gt′.\begin{aligned} \mathbf{x}_t & = \mathbf{x}_{t-1} - \mathbf{g}_t'. \\ \end{aligned} xt??=xt?1??gt?.?
        對于調(diào)整后的梯度gt′\mathbf{g}_t'gt?
        gt′=Δxt?1+?st+?⊙gt,\begin{aligned} \mathbf{g}_t' & = \frac{\sqrt{\Delta\mathbf{x}_{t-1} + \epsilon}}{\sqrt{{\mathbf{s}_t + \epsilon}}} \odot \mathbf{g}_t, \\ \end{aligned} gt??=st?+??Δxt?1?+???gt?,?
        其中Δxt?1\Delta \mathbf{x}_{t-1}Δxt?1?是重新縮放梯度的平方gt′\mathbf{g}_t'gt?的泄漏平均值。首先將Δx0\Delta \mathbf{x}_{0}Δx0?初始化為000,然后在每個(gè)步驟中使用gt′\mathbf{g}_t'gt?更新它,即
        Δxt=ρΔxt?1+(1?ρ)gt′2,\begin{aligned} \Delta \mathbf{x}_t & = \rho \Delta\mathbf{x}_{t-1} + (1 - \rho) {\mathbf{g}_t'}^2, \end{aligned} Δxt??=ρΔxt?1?+(1?ρ)gt?2,?
        ?\epsilon?(例如10?510^{-5}10?5這樣的小值)是為了保持?jǐn)?shù)字穩(wěn)定性而加入的。

      2. 小結(jié)
        • Adadelta沒有學(xué)習(xí)率參數(shù)。相反,它使用參數(shù)本身的變化率來調(diào)整學(xué)習(xí)率。

        • Adadelta需要兩個(gè)狀態(tài)變量來存儲(chǔ)梯度的二階導(dǎo)數(shù)和參數(shù)的變化。

        • Adadelta使用泄漏的平均值來保持對適當(dāng)統(tǒng)計(jì)數(shù)據(jù)的運(yùn)行估計(jì)。

    8. Adam算法

      1. Adam算法:

        Adam算法的關(guān)鍵組成部分之一是:使用指數(shù)加權(quán)移動(dòng)平均值來估算梯度的動(dòng)量和二次矩,即它使用狀態(tài)變量:
        vt←β1vt?1+(1?β1)gt,st←β2st?1+(1?β2)gt2.\begin{aligned} \mathbf{v}_t & \leftarrow \beta_1 \mathbf{v}_{t-1} + (1 - \beta_1) \mathbf{g}_t, \\ \mathbf{s}_t & \leftarrow \beta_2 \mathbf{s}_{t-1} + (1 - \beta_2) \mathbf{g}_t^2. \end{aligned} vt?st??β1?vt?1?+(1?β1?)gt?,β2?st?1?+(1?β2?)gt2?.?
        這里β1\beta_1β1?β2\beta_2β2?是非負(fù)加權(quán)參數(shù)。常將它們設(shè)置為β1=0.9\beta_1 = 0.9β1?=0.9β2=0.999\beta_2 = 0.999β2?=0.999。也就是說,方差估計(jì)的移動(dòng)遠(yuǎn)遠(yuǎn)慢于動(dòng)量估計(jì)的移動(dòng)。注意,如果我們初始化v0=s0=0\mathbf{v}_0 = \mathbf{s}_0 = 0v0?=s0?=0,就會(huì)獲得一個(gè)相當(dāng)大的初始偏差??梢酝ㄟ^使用∑i=0tβi=1?βt1?β\sum_{i=0}^t \beta^i = \frac{1 - \beta^t}{1 - \beta}i=0t?βi=1?β1?βt?來解決這個(gè)問題。

        相應(yīng)地,標(biāo)準(zhǔn)化狀態(tài)變量由下式獲得
        v^t=vt1?β1tand?s^t=st1?β2t.\hat{\mathbf{v}}_t = \frac{\mathbf{v}_t}{1 - \beta_1^t} \text{ and } \hat{\mathbf{s}}_t = \frac{\mathbf{s}_t}{1 - \beta_2^t}. v^t?=1?β1t?vt???and?s^t?=1?β2t?st??.
        有了正確的估計(jì),我們現(xiàn)在可以寫出更新方程。首先,我們以非常類似于RMSProp算法的方式重新縮放梯度以獲得
        gt′=ηv^ts^t+?.\mathbf{g}_t' = \frac{\eta \hat{\mathbf{v}}_t}{\sqrt{\hat{\mathbf{s}}_t} + \epsilon}. gt?=s^t??+?ηv^t??.
        與RMSProp不同,我們的更新使用動(dòng)量v^t\hat{\mathbf{v}}_tv^t?而不是梯度本身。此外,由于使用1s^t+?\frac{1}{\sqrt{\hat{\mathbf{s}}_t} + \epsilon}s^t??+?1?而不是1s^t+?\frac{1}{\sqrt{\hat{\mathbf{s}}_t + \epsilon}}s^t?+??1?進(jìn)行縮放,兩者會(huì)略有差異。前者在實(shí)踐中效果略好一些,因此與RMSProp算法有所區(qū)分。通常,選擇?=10?6\epsilon = 10^{-6}?=10?6,這是為了在數(shù)值穩(wěn)定性和逼真度之間取得良好的平衡。最后,簡單更新:
        xt←xt?1?gt′.\mathbf{x}_t \leftarrow \mathbf{x}_{t-1} - \mathbf{g}_t'. xt?xt?1??gt?.
        回顧Adam算法,其設(shè)計(jì)靈感很清楚:

        首先,動(dòng)量和規(guī)模在狀態(tài)變量中清晰可見,其相當(dāng)獨(dú)特的定義使我們移除偏項(xiàng)(這可以通過稍微不同的初始化和更新條件來修正)。其次,RMSProp算法中兩項(xiàng)的組合都非常簡單。最后,明確的學(xué)習(xí)率η\etaη使我們能夠控制步長來解決收斂問題。

      2. Yogi

        Adam算法也存在一些問題:即使在凸環(huán)境下,當(dāng)st\mathbf{s}_tst?的二次矩估計(jì)值爆炸時(shí),它可能無法收斂。為此,有人為st\mathbf{s}_tst?提出了改進(jìn)的更新和參數(shù)初始化。論文中建議重寫Adam算法更新如下:
        st←st?1+(1?β2)(gt2?st?1).\mathbf{s}_t \leftarrow \mathbf{s}_{t-1} + (1 - \beta_2) \left(\mathbf{g}_t^2 - \mathbf{s}_{t-1}\right). st?st?1?+(1?β2?)(gt2??st?1?).
        每當(dāng)gt2\mathbf{g}_t^2gt2?具有值很大的變量或更新很稀疏時(shí),st\mathbf{s}_tst?可能會(huì)太快地“忘記”過去的值。一個(gè)有效的解決方法是將gt2?st?1\mathbf{g}_t^2 - \mathbf{s}_{t-1}gt2??st?1?替換為gt2⊙sgn(gt2?st?1)\mathbf{g}_t^2 \odot \mathop{\mathrm{sgn}}(\mathbf{g}_t^2 - \mathbf{s}_{t-1})gt2?sgn(gt2??st?1?)。這就是Yogi更新,現(xiàn)在更新的規(guī)模不再取決于偏差的量。
        st←st?1+(1?β2)gt2⊙sgn(gt2?st?1).\mathbf{s}_t \leftarrow \mathbf{s}_{t-1} + (1 - \beta_2) \mathbf{g}_t^2 \odot \mathop{\mathrm{sgn}}(\mathbf{g}_t^2 - \mathbf{s}_{t-1}). st?st?1?+(1?β2?)gt2?sgn(gt2??st?1?).
        論文中,作者還進(jìn)一步建議用更大的初始批量來初始化動(dòng)量,而不僅僅是初始的逐點(diǎn)估計(jì)。

      3. 小結(jié)
        • Adam算法將許多優(yōu)化算法的功能結(jié)合到了相當(dāng)強(qiáng)大的更新規(guī)則中。

        • Adam算法在RMSProp算法基礎(chǔ)上創(chuàng)建的,還在小批量的隨機(jī)梯度上使用EWMA。

        • 在估計(jì)動(dòng)量和二次矩時(shí),Adam算法使用偏差校正來調(diào)整緩慢的啟動(dòng)速度。

        • 對于具有顯著差異的梯度,我們可能會(huì)遇到收斂性問題。我們可以通過使用更大的小批量或者切換到改進(jìn)的估計(jì)值st\mathbf{s}_tst?來修正它們。Yogi提供了這樣的替代方案。

    9. 算法小結(jié)

      1. Gradient Descent: 提供了優(yōu)化模型的一種理論方法。
      2. SGD: 隨機(jī)梯度下降在解決優(yōu)化問題時(shí)比梯度下降更有有效。
      3. Minibatch-SGD:在一個(gè)小批量中使用更大的觀測數(shù)據(jù)集,可以通過向量化提供額外的效率。這是高效的多機(jī)、多GPU和并行處理的關(guān)鍵。
      4. Momentum: 添加一種機(jī)制,用于匯聚過去歷史梯度來加速收斂。
      5. Adagrad: 用過對每個(gè)坐標(biāo)縮放實(shí)現(xiàn)高效的計(jì)算預(yù)處理器。
      6. RMSProp: Adagrad算法的一個(gè)變體,通過學(xué)習(xí)率的調(diào)整來分離每個(gè)坐標(biāo)的縮放。
      7. Adadelta: Adagrad算法的一個(gè)變體,其減少了學(xué)習(xí)率適應(yīng)坐標(biāo)的數(shù)量。廣義上Adadelta被稱為沒有學(xué)習(xí)率。
      8. Adam: 是2、3、4、5和6的集大成者。
http://www.risenshineclean.com/news/8485.html

相關(guān)文章:

  • 做網(wǎng)站需要的電腦配置谷歌seo推廣公司
  • 電子商務(wù)網(wǎng)站建設(shè)與管理相關(guān)文獻(xiàn)網(wǎng)站seo博客
  • 長春小學(xué)網(wǎng)站建設(shè)產(chǎn)品推廣計(jì)劃書怎么寫
  • 一站式網(wǎng)站手機(jī)端怎么做搜索引擎優(yōu)化需要多少錢
  • 在建設(shè)局網(wǎng)站上怎么樣總監(jiān)解鎖seo算法入門教程
  • wordpress 企業(yè) 模板 下載windows優(yōu)化大師卸載
  • 手機(jī)網(wǎng)站制作 尺寸百度銷售推廣
  • 如何用網(wǎng)站做淘寶聯(lián)盟怎么讓關(guān)鍵詞快速上首頁
  • wordpress安裝幻燈片seo價(jià)格是多少
  • 打開一個(gè)網(wǎng)站在建設(shè)中知乎營銷推廣
  • 南京淄博網(wǎng)站建設(shè)方案個(gè)人對網(wǎng)絡(luò)營銷的看法
  • 怎么做網(wǎng)站旺鋪裝修東莞seo推廣機(jī)構(gòu)帖子
  • 現(xiàn)成的手機(jī)網(wǎng)站做APP深圳百度首頁優(yōu)化
  • 西數(shù) 網(wǎng)站建設(shè)文件關(guān)鍵詞搜索工具
  • 網(wǎng)站建設(shè)客戶常問到的問題網(wǎng)站制作流程和方法
  • b2b采購平臺(tái)網(wǎng)站正規(guī)推廣平臺(tái)有哪些
  • 網(wǎng)站開發(fā)技術(shù)服務(wù)合同范本愛站網(wǎng)官網(wǎng)關(guān)鍵詞
  • 如何做產(chǎn)品網(wǎng)站的推廣樂事薯片軟文推廣
  • 唐山模板網(wǎng)站建設(shè)重慶企業(yè)seo
  • 網(wǎng)站建設(shè)與管理課程長沙排名優(yōu)化公司
  • 唐山做網(wǎng)站公司哪家好按效果付費(fèi)的網(wǎng)絡(luò)推廣方式
  • 天津市住房和城鄉(xiāng)建設(shè)委員會(huì)官方網(wǎng)站app推廣方法
  • 聊城專業(yè)做網(wǎng)站網(wǎng)絡(luò)推廣有效果嗎
  • 動(dòng)態(tài)網(wǎng)站建設(shè)流程圖包括哪些內(nèi)容
  • 順德網(wǎng)站建設(shè)策劃做網(wǎng)站多少錢
  • 網(wǎng)站建設(shè)特效大全百度推廣一般要多少錢
  • 深圳企業(yè)網(wǎng)站建設(shè)制作設(shè)計(jì)公司今日新聞國內(nèi)大事件
  • 在線建網(wǎng)站網(wǎng)站推廣聯(lián)盟
  • wordpress會(huì)員上限sem和seo區(qū)別與聯(lián)系
  • 網(wǎng)站建設(shè)中高低端區(qū)別線上宣傳方式