一、梯度檢測:
對於函數而言通常有兩種計算梯度的方式:
1.數值梯度 (numberical gradient)
2.解析梯度 (analytic gradient )
數值梯度計算通常為:
更為常見的是:
h是一個很小的數,在實際當中通常為1e-5
假設數值梯度為ƒ’a 解析梯度為ƒ’n ,則數值梯度和解析梯度的誤差relative error:
relative error >1e-2 通常情況梯度是錯誤的
1e-4 < relative error < 1e-2 並不是很好
relative error < 1e-4 對於有拐點的函數是ok的,但是如果沒有拐點(如tanh nonlinearities and softmax),1e-4 太高了
relative error 或者更小最好
警告:建議使用雙精度來進行梯度檢測
有拐點的函數例如 ReLU(max(0,x)) 或者SVM loss
h並不是越小越好,h太小容易出現精度問題,h通常在1e-4到 1e-6
正則化容易將改變原先的梯度,最好是先進行梯度計算,然后在正則化梯度計算
梯度下降檢測時不要進行dropout