2017-10-07 75 views
-1

高那裏,梯度下降(在錯誤檢測差)

所以我試圖寫的程序來執行與一個Y輸出和幾個X輸入設置的採樣數據的梯度下降算法。而不是讓用戶根據錯誤設置更新系數的「時代」的數量,以便像對舊錯誤迭代地測試更新的錯誤,並且當差異水平低於某個容差時停止函數(可能由用戶設置)。我是否以正確的方式解決這個問題?如果是的話,可能是用來量化新舊錯誤之間差異的最佳方法?

我正在做這個作爲Python的數據編程課程的一部分。

任何提示讚賞。

感謝

回答

0

我想指出的是:在每次迭代後

訓練誤差通常是不穩定的,當你與小批量梯度下降,或隨機梯度下降或其他算法優化取決於批量大小。 所以你的方法可能會導致早期停止或無限循環。

但是,如果您使用的是批量漸變下降,我認爲您的方法可能有效。

編輯:

隨機GD意味着你在一個時間計算只有一個樣本誤差和梯度,而在批量GD,你計算錯誤和畢業生在訓練集中每個樣本。

BatchGD的缺點是您需要一次又一次地爲整個訓練集計算梯度(想象當您有數百萬訓練樣本時)。

關於你的f值:我認爲你可以卡在鞍點(你的功能是平坦的)。 https://en.wikipedia.org/wiki/Saddle_point

但是,如果你仍然想實現這種方法,我覺得你的「新」的錯誤(或新的F值)應爲10或20步「老」一後。

+0

謝謝你的回答。恐怕我的經驗沒有達到知道隨機指標和批量指標之間的差異。你能否詳細說明。我的訓練數據有兩個變量,一個是變量,我正在考慮使用f值。 – Thomas