2020-5-25 吳恩達-改善深層NN-w1 深度學習的實用層面(1.12 梯度的數值逼近(使用雙邊誤差)--實現梯度檢驗需要)

1.視頻網站:mooc慕課https://mooc.study.163.com/university/deeplearning_ai#/c
2.詳細筆記網站(中文):http://www.ai-start.com/dl2017/
3.github課件+作業+答案:https://github.com/stormstone/deeplearning.ai

1.12 梯度的數值逼近 Numerical approximation of gradients

在實施反向傳播backprop時,有一個測試叫做梯度檢驗,它的作用是確保backprop正確實施。因爲有時候你雖然寫下了反向傳播方程式,卻不能100%確定執行backprop的所有細節都是正確的。

梯度檢驗就是爲了驗證我們的梯度下降算法是否正確,當驗證正確後,進行訓練時
記得關閉它!

爲了逐漸實現梯度檢驗,本節課我們首先說說如何計算梯度的數值逼近。下節課,我們將討論如何在backprop中執行梯度檢驗,以確保backprop正確實施。
在這裏插入圖片描述

觀察上圖。
這是f(θ)=θ3f(\theta)=\theta^3函數。橫軸上有3個座標,θϵ=0.99\theta-\epsilon=0.99,θ=1\theta=1θ+ϵ=1.01\theta+\epsilon=1.01ϵ=0.01\epsilon=0.01

1\ 雙邊誤差
在這裏插入圖片描述

按照上圖,更準確的梯度預估,我們會利用圖中大三角形的高和寬(藍色線)的比值,這樣更接近於的θ\theta導數。(逼近誤差小)

這個大三角形同時考慮(包含)了兩個綠色小三角形。所以我們得到的不是一個單邊公差(one sided difference,即 θ\thetaθ+ϵ\theta+\epsilon 之間誤差)而是一個雙邊公差(即 θϵ\theta - \epsilonθ+ϵ\theta+\epsilon 之間誤差)。
在這裏插入圖片描述

觀察上圖中綠色三角形

  • 高,f(θ+ϵ)f(θϵ)f(\theta+\epsilon) - f(\theta-\epsilon)
  • 寬,2ϵ2\epsilon

因爲f(θ)=θ3f(\theta)=\theta^3,所以高寬比值f(θ+ϵ)f(θϵ)2ϵ=(1.01)3(0.99)320.01=3.0001\frac {f(\theta+\epsilon) - f(\theta-\epsilon)}{2\epsilon}=\frac{(1.01)^3-(0.99)^3}{2*0.01}=3.0001

f(θ)f(\theta)導數g(θ)=3θ2g(\theta)=3\theta^2,當θ=1\theta=1時候,g(θ)=3g(\theta)=3

可以發現高寬比值f(θ+ϵ)f(θϵ)2ϵ\frac {f(\theta+\epsilon) - f(\theta-\epsilon)}{2\epsilon}非常接近導數g(θ)g(\theta)逼近誤差approximation error爲0.0001。

2\ 單邊誤差
在這裏插入圖片描述

我們可以看一下,如果只用f(θ+ϵ)f(\theta+\epsilon)f(θ)f(\theta)之間的小三角形的高寬比來預估θ\theta導數,f(θ+ϵ)f(θ)ϵ=(1.01)3(1)30.01=3.0301\frac {f(\theta+\epsilon) - f(\theta)}{\epsilon}=\frac{(1.01)^3-(1)^3}{0.01}=3.0301

此時逼近誤差爲0.0301,比雙邊誤差要大,證明使用雙邊誤差的方法更逼近導數

在微積分中,f(θ)=θ3f(\theta)=\theta^3導數的正式定義是
f(θ)=limϵ0f(θ+ϵ)f(θϵ)2ϵf'(\theta)=\lim_{\epsilon \to 0} \frac {f(\theta+\epsilon) - f(\theta-\epsilon)}{2\epsilon}

對於一個非零的ϵ\epsilon,它的逼近誤差可以寫成O(ϵ2)O(\epsilon^2),其實是一些常量乘以ϵ2\epsilon^2,常量有時是1。

如果使用逼近誤差O(ϵ)O(\epsilon),當ϵ<1\epsilon<1時候 ,ϵ\epsilonϵ2\epsilon^2大很多。

在執行梯度檢驗時,我們使用雙邊誤差,即f(θ+ϵ)f(θϵ)2ϵ\frac {f(\theta+\epsilon) - f(\theta-\epsilon)}{2\epsilon},而不使用單邊誤差,因爲它不夠準確。

本節講了如何使用雙邊誤差來判斷函數g(θ)g(\theta)是否正確實現了函數f的偏導,下節我們可以使用這個方法來檢驗反向傳播是否得以正確實施。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章