2014-10-17 50 views
3

任何人都可以給出一個在pybrain中實現正則化技術的示例代碼? 我試圖防止在我的數據過度擬合,目前正在尋找像早期停止等方法來這樣做。 謝謝!如何在pybrain中實現正則化

回答

0

有一個重量衰減變量,它是在pybrain L2正則化。除此之外,我會實施早期停止作爲體重衰減期的組合。

下面是你如何指定重量衰減。

trainer = RPropMinusTrainer(net, dataset=trndata, verbose=True, weightdecay=0.01) 
0

以下是不是 L1/L2正則化。但它可以用來防止過早配合。

trainer文檔,

trainUntilConvergence(數據集=無,maxEpochs =無,冗長=無, continueEpochs = 10,validationProportion = 0.25)

列車數據集上,直到它的模塊收斂。

返回模塊的參數給出了最小驗證 錯誤。

如果未給出數據集,則使用初始化練馬師 期間傳遞的數據集。 validationProportion是用於驗證數據集的 數據集的比率。

如果給出了maxEpochs,那麼最多可以訓練許多時代。每次 驗證錯誤達到​​最小值,請嘗試continueEpochs時代以找到更好的 。

如果您使用的是默認參數,則您已經啓用了75:25的分割作爲訓練vs驗證數據集。驗證數據集用於預先停止。

0

正則化意味着改變成本函數。 PyBrain中的用戶選擇會影響成本函數 - 例如,通過選擇圖層是線性還是S形 - 但成本函數本身看起來並不直接暴露。

然而,elsewhere on StackOverflow,有人聲稱L2規範化是可以通過weightdecay參數。 (L2範數將每個座標中差異的平方相加,而L1範數將它們的正絕對差相加。)

相關問題