我正在爲隨機梯度下降實現一個通用模塊。這需要參數:訓練數據集,損失(x,y),dw(x,y) - 每個樣本損失和每個樣本的梯度變化。現在什麼應該是足夠通用的隨機梯度下降收斂標準
,爲收斂標準,我已經想到了: -
一)檢查損失函數的dataset.size每10%後,一些窗口
b)檢查的標準平均值在每10-20%的數據集大小之後,權重向量之間的差異
c)穩定訓練集上的錯誤。
d在梯度的符號(同樣,每隔固定的時間間隔之後檢查)改變) -
我注意到這些檢查(檢查等的精度)取決於其他的東西也一樣步長大小,學習速度..並且效果可以從一個訓練問題到另一個不同。
我似乎無法理解,無論在SGD模塊上拋出的訓練集,fx,df/dw如何,都應該是通用停止標準。你們做什麼?另外,對於(d),對於n維矢量,「符號變化」的含義是什麼?因爲,在給定的dw_i,dw_i + 1中,我如何檢測符號的變化,它甚至在2維以上有意義嗎?
P.S.對於非數學/乳膠符號的道歉..still習慣的東西。
謝謝。我理解你提到的所有概念 - 只是想知道,人們在實際通用實施SGD時使用了什麼。 此外,有人建議檢查時代之間的權重向量的變化。根據我的理解,與正常批次版本相比,這可能不是一個很好的優勢。 – Akshay
BTw,你是否在運行樣本之間檢查這個「delta f(x)」?由於梯度(df/dw)矢量的隨機運動,它可能非常不穩定! – Akshay