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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Stanford UFLDL教程 梯度检验与高级优化

發布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Stanford UFLDL教程 梯度检验与高级优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

梯度檢驗與高級優化

眾所周知,反向傳播算法很難調試得到正確結果,尤其是當實現程序存在很多難于發現的bug時。舉例來說,索引的缺位錯誤(off-by-one error)會導致只有部分層的權重得到訓練,再比如忘記計算偏置項。這些錯誤會使你得到一個看似十分合理的結果(但實際上比正確代碼的結果要差)。因此,但從計算結果上來看,我們很難發現代碼中有什么東西遺漏了。本節中,我們將介紹一種對求導結果進行數值檢驗的方法,該方法可以驗證求導代碼是否正確。另外,使用本節所述求導檢驗方法,可以幫助你提升寫正確代碼的信心。


缺位錯誤(Off-by-one error)舉例說明:比如 循環中循環 次,正確應該是 ,但有時程序員疏忽,會寫成 ,這就是缺位錯誤。


假設我們想要最小化以 為自變量的目標函數。假設 ,則 。在一維的情況下,一次迭代的梯度下降公式是


再假設我們已經用代碼實現了計算 的函數 ,接著我們使用 來實現梯度下降算法。那么我們如何檢驗 的實現是否正確呢?

回憶導數的數學定義:

那么對于任意 值,我們都可以對等式左邊的導數用:

來近似。


實際應用中,我們常將 設為一個很小的常量,比如在 數量級(雖然 的取值范圍可以很大,但是我們不會將它設得太小,比如 ,因為那將導致數值舍入誤差。)


給定一個被認為能計算 的函數,我們可以用下面的數值檢驗公式

計算兩端是否一樣來檢驗函數是否正確。


上式兩端值的接近程度取決于 的具體形式。但是在假定 的情況下,你通常會發現上式左右兩端至少有4位有效數字是一樣的(通常會更多)。


現在,考慮 是一個向量而非一個實數(那么就有個參數要學習得到),并且 。在神經網絡的例子里我們使用 ,可以想象為把參數 組合擴展成一個長向量 。現在我們將求導檢驗方法推廣到一般化,即 是一個向量的情況。

假設我們有一個用于計算 的函數 ;我們想要檢驗 是否輸出正確的求導結果。我們定義 ,其中

是第 個基向量(維度和 相同,在第 行是“”而其他行是“”)。所以, 和 幾乎相同,除了第 行元素增加了 。類似地, 得到的第 行減小了 。然后我們可以對每個 檢查下式是否成立,進而驗證 的正確性:


當用反射傳播算法求解神經網絡時,正確算法實現會得到:


以上結果與反向傳播算法中的最后一段偽代碼一致,都是計算梯度下降。為了驗證梯度下降代碼的正確性,使用上述數值檢驗方法計算 的導數,然后驗證 與 是否能夠給出正確的求導結果。


迄今為止,我們的討論都集中在使用梯度下降法來最小化 。如果你已經實現了一個計算 和 的函數,那么其實還有更精妙的算法來最小化 。舉例來說,可以想象這樣一個算法:它使用梯度下降,并能夠自動調整學習速率 ,以得到合適的步長值,最終使 能夠快速收斂到一個局部最優解。還有更妙的算法:比如可以尋找一個Hessian矩陣的近似,得到最佳步長值,使用該步長值能夠更快地收斂到局部最優(和牛頓法類似)。此類算法的詳細討論已超出了這份講義的范圍,但是L-BFGS算法我們以后會有論述(另一個例子是共軛梯度算法)。你將在編程練習里使用這些算法中的一個。使用這些高級優化算法時,你需要提供關鍵的函數:即對于任一個 ,需要你計算出 和 。之后,這些優化算法會自動調整學習速率/步長值 的大小(并計算Hessian近似矩陣等等)來自動尋找 最小化時 的值。諸如L-BFGS和共軛梯度算法通常比梯度下降法快很多。


中英文對照

off-by-one error 缺位錯誤

bias term 偏置項

numerically checking 數值檢驗

numerical roundoff errors 數值舍入誤差

significant digits 有效數字

unrolling 組合擴展

learning rate 學習速率

Hessian matrix Hessian矩陣

Newton's method 牛頓法

conjugate gradient 共軛梯度

step-size 步長值

from: http://ufldl.stanford.edu/wiki/index.php/%E6%A2%AF%E5%BA%A6%E6%A3%80%E9%AA%8C%E4%B8%8E%E9%AB%98%E7%BA%A7%E4%BC%98%E5%8C%96

總結

以上是生活随笔為你收集整理的Stanford UFLDL教程 梯度检验与高级优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。