2.1.5 梯度检验
生活随笔
收集整理的這篇文章主要介紹了
2.1.5 梯度检验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
梯度的數值逼近
當實施反向傳播的時候,有一個測試叫做梯度檢驗,它的作用是保證反向傳播可以正確實施。在寫好反向傳播公式的時候,你沒有辦法保證執行反向傳播的所有細節全部都是正確的。為了實現逐步梯度檢驗,我們先來說一下如何對梯度做數值逼近。
如圖所示,我們只需記住,雙邊檢測誤差更低,精度更高。
那么為什么是平方誤差關系呢,這里用到了泰勒展開式,做差所得,我們先來復習一下泰勒展開式的知識
然后這個公式的推導過程如下:
梯度檢驗
下面我們介紹一下如何用梯度檢驗來檢驗反向傳播實施是否正確。
如圖所示,為了執行梯度檢驗,我們首先要把所有參數轉化成一個巨大的向量數據。
轉換完之后那么現在的問題是dθ,或者說是代價函數J的梯度和代價函數之間有什么關系。而這,就是實施梯度檢驗的過程。英語里通常稱為grad check。
如圖所示,為了執行梯度檢驗,你要做的就是使用循環操作。
我們執行雙邊誤差檢測。由上節課的知識我們應該知道,這個雙邊誤差應該近似于dθ。
那么如何定義兩個向量是否彼此接近呢?我們一般使用二范數來進行度量。最后我們將向量長度做歸一化處理,得到上圖中最下面的公式。如果我們得到的這個誤差在10的負7次方的數量級,那么非常好,如果這個誤差比較大,那么我們就要重新檢驗了。
關于梯度檢驗實現的注記
這里我們談一下在神經網絡中實現梯度檢驗的注意技巧和注意事項
最后的一點說明一下,最好在反復訓練神經網絡之后再進行梯度檢驗。
吳教主深度學習和神經網絡課程總綱
總結
以上是生活随笔為你收集整理的2.1.5 梯度检验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.1.4 对梯度消失和梯度爆炸的近似解
- 下一篇: 2.2.1 mini-batch