歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

發(fā)布時(shí)間:2017-10-09 00:28  回復(fù):0  查看:2784   最后回復(fù):2017-10-09 00:28  

本文為大家分享的主要是機(jī)器學(xué)習(xí)梯度檢驗(yàn)和隨機(jī)的初始參數(shù)相關(guān)內(nèi)容,一起來看看吧,希望對大家學(xué)習(xí)和使用這部分內(nèi)容有所幫助。

  梯度檢驗(yàn)

  寫了這么多篇筆記,我發(fā)現(xiàn)反向傳播算法是目前來說,我了解到最復(fù)雜的算法。

  為了完整地理解算法,我還復(fù)習(xí)了導(dǎo)數(shù)方面的功課,花了不少時(shí)間。

  這個(gè)算法,有太多的細(xì)節(jié),實(shí)現(xiàn)起來非常容易出錯(cuò)。

  有時(shí)候,你使用梯度下降算法進(jìn)行迭代,雖然每次代價(jià)函數(shù) J(θ) 的值都在下降,但最終得到的結(jié)果卻又有很大的誤差,這很可能代碼中依然存在一些問題。

  對于這樣的情況,應(yīng)該怎么處理呢?

  有一個(gè)叫 梯度檢驗(yàn)(Gradient Checking 的方法,可以減少這種錯(cuò)誤的概率。

  那么梯度檢驗(yàn)到底是什么呢?

  我們求的梯度,就是一個(gè)曲線的導(dǎo)數(shù)。

  直觀點(diǎn),我們可以看看下圖這樣一個(gè)二階模型:

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

在這里,導(dǎo)數(shù)就是圖中紅色切線的斜率。

  以切點(diǎn)為中心,自變量分別增減一個(gè)ε,那么代價(jià)函數(shù)對應(yīng)的就是 J(θε) 和 J(θε)

  兩個(gè)點(diǎn)連接得到的綠色直線,其斜率應(yīng)該和紅色切線斜率是相近的:

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

因?yàn)楦鶕?jù)導(dǎo)數(shù)的定義:

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

接近于0的時(shí)候,得到的 f'(x 0 ) 就是導(dǎo)數(shù)。

  所以,當(dāng) ε 無限小的時(shí)候,綠色的直線就是切線。

  當(dāng)然,如果 ε 取值太小的話,計(jì)算時(shí)可能會存在問題。

  一般來說, ε = 10 -4 會比較合適。

  上面所說的是一個(gè)參數(shù)的情況,如果對于很多參數(shù) θ 1 ,θ 2 ,θ 3 ,,θ n ,我們就需要對每個(gè) θ 進(jìn)行計(jì)算:

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

最終我們求得的計(jì)算得到的結(jié)果,應(yīng)該和算法求得的導(dǎo)數(shù)是相近的。

  通過這樣的方法進(jìn)行檢驗(yàn),你對自己的模型就能更有信心。

  由于這個(gè)計(jì)算,不是向量化的計(jì)算,而是數(shù)字化的計(jì)算,在迭代的過程中,會非常慢。

  如果我們經(jīng)過檢查,確認(rèn)實(shí)現(xiàn)的算法沒有問題,那么記得要把梯度檢驗(yàn)(Gradient Checking)關(guān)閉掉,否則我們會極大地影響計(jì)算速度。

  隨機(jī)初始化

  我們對參數(shù) θ 的初始化,一般來說,都是全部設(shè)置為 ,或者全部設(shè)置為 。

  但這對于神經(jīng)網(wǎng)絡(luò)來說,會存在問題。

  因?yàn)閷?shí)現(xiàn)邏輯的關(guān)鍵,就在于參數(shù)的選擇上。

  同樣節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)模型,參數(shù)的不一致,實(shí)現(xiàn)的效果就不一樣,例如 y = x 1 AND x 2 

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

 y = x 1 OR x 2 

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

還記得《神經(jīng)網(wǎng)絡(luò)算法》為了實(shí)現(xiàn)前面將藍(lán)圈和紅叉區(qū)分開來,我們對于 y = x 1 XNOR x 2的實(shí)現(xiàn)么?

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

 如果我們將初始的參數(shù)全部都設(shè)置為 0 或者 ,因?yàn)樘卣魍耆嗤?,參?shù)也完全相同,對于下一個(gè)單元而言,每一個(gè)結(jié)果是一樣的。

  對于每一個(gè)訓(xùn)練數(shù)據(jù),都有:

梯度檢驗(yàn)和隨機(jī)的初始參數(shù)

  這樣的話,得到的結(jié)果同步變化,多個(gè)神經(jīng)單元其實(shí)只是相當(dāng)于一個(gè)神經(jīng)單元。

  這不是我們想要的結(jié)果,所以我們需要設(shè)置隨機(jī)的初始參數(shù)。

 

 

來源:簡書

您還未登錄,請先登錄

熱門帖子

最新帖子

?