當您建置反向傳播時 您會發現有一種測試稱為
梯度檢查可以 真的幫助您確認
您的反向傳播建置 是正確的
因為有時候您寫了所有這些 方程式您並不能 100% 確定
您是否弄對所有細節 當您建置反向傳播時
為了要建立梯度檢查
讓我們先來談如何用 數值趨近來計算梯度
在下一段影片 我們會談到如何建置
梯度檢查來確定 反向傳播的建置是正確的
讓我們拿一個函數 f 這裡重新畫一次, 記得這個
f of θ 等於 θ 三次方， 讓我們開始一些 θ 的值
假設 θ 等於 1
現在與其將 θ 往右微調 加上 ε
我們要同時往右微調跟
往左微調得到 θ 減 ε 跟 θ 加 ε
所以這是 1, 這是 1.01, 這是 0.99
ε 跟之前一樣 0.01
實際上與其用這個小三角形來
計算高度除以寬度 您可以得到更加的梯度估計
如果您在這一點 f of θ - ε 跟這一點
您取而代之計算這個高度 除以這個大三角形的寬度
為了技術上的原因, 我不去深入談到 這個高度除以這個
大的綠色三角形的寬度會給您 比較好的在 θ 的導數估計
您自己也可以看到 用右上角的這個三角形
就像您有兩個三角形
一個在右上 一個在左下
而您有點像將兩個同時考慮
用這個大一點的三角形
所以與其用一邊的差異 您用了雙邊的差異
所以讓我們來做一些數學
這一點是 f(θ + ε)
這一點是 f(θ - ε)
所以這裡大綠色三角形的高是 f(θ + ε)
減去 f(θ - ε)
而寬度，這裡是一個 ε, 這是兩個 ε
所以這個大綠色三角形個寬是 2ε
所以高度除以寬度是 首先是高度
也就是 f(θ + ε) 減去 f(θ - ε) 除以寬度
也就是 2ε 我們寫在這裡
這希望靠近於 g of θ
所以代入這個值 記得 f of θ 是 θ 三次方
所以這個是 θ + ε 是 1.01
所以我取它的三次方減去 0.99的三次方 除以 2 乘 0.01
歡迎暫停影片 用計算機練習算一下
您應該會得到 3.0001
而從前面的投影片中 我們看到了 g of θ
是 3 θ 平方 而 θ 等於 1
這兩個數字實際上 非常接近
近似誤差是 0.0001
而在前面的投影片中 我們取單邊
的差異為 θ 跟 θ + ε, 我們得到 3.0301
近似誤差為 0.03 而不是 0.0001
所以這種雙邊差異的方式
來近似您要找的導數 是非常接近 3
所以這給您比較多的信心 來確定 g of θ
或許是正確的建置 f 的導數
當您使用這種方式來作 梯度檢查跟反向傳播
這實際上會跑得兩倍慢 相對於您只使用單邊差異
實際上在實作中我覺得 用這種方式是值得的因為
這比較精確
再來一點可以選讀的理論
如果您比較熟悉微積分 實際上
如果您不懂我將要說的也沒關係
但實際上導數的正規定義是
對於很小的 ε 是 f(θ + ε) 減去 f(θ- ε)
除以 2ε
而正規的導數定義是在這個
右邊公式的極限值當 ε 趨近於 0
而極限的定義 是您學過的如果您
上過微積分課 我不會在這裡談到
而實際上對於一個 非 0 的 ε 值
您可以證明這個 趨近值的誤差是在
ε 平方等級的 記得 ε 是非常小的數
所以如果 ε 是 0.01 那這裡 ε 平方會是 0.0001
這個大 O 的意思是 誤差實際上是一個常數乘上這個項目
但這的確正是我們個近似誤差
所以這個大 O 常數剛好為 1
而相對的如果 我們使用這個公式, 另一個公式
那誤差會是 ε 等級
再次, 當 ε 是小於 1 的數字時, 那 ε 確實
比ε 平方大多了 這是為什麼這裡確實
比較不像左邊這個公式 那麼精確
這也是為什麼當作梯度檢查時 我們會使用雙邊差異
當您計算 f(θ + ε) 減去 f(θ - ε) 然後
除以 2ε, 而不用一邊的差異 因為他比較不精確
如果您不懂我最後這些意見, 這裡的東西
不用擔心
這是對於那些比較熟悉微積分
跟數值近似的人談的
但重點是雙邊差異公式 是比較精確的
這也是我們將在梯度檢查時 使用的公式, 在下一段影片中
所以您看到如何使用雙邊差異
您可以數值驗證是否 有人給您的一個函數 g, g of θ
是正確的 f 函數的導數
讓我們看如何使用這個來驗證
是否您的反向傳播建置是正確或者
也許有錯誤您需要去挑出來