簡體   English   中英

R中nnet函數的衰減參數的目的?

[英]Purpose of decay parameter in nnet function in R?

我在R中使用nnet函數來訓練我的神經網絡。 我沒有得到nnet中的衰減參數是什么? 這個步長是用於梯度下降方法還是用於克服過度擬合的正則化參數?

這是正規化以避免過度擬合。

文檔(pdf)

decay:體重衰減的參數。 默認值為0。

有關詳細信息,請參閱作者的書“ 現代應用統計與S.第四版” ,第245頁:

確保f平滑的一種方法是限制估計類別,例如,通過使用有限數量的樣條結。 另一種方式是正則化 ,其中擬合標准被改變為

E + λC(f)

對f的'粗糙度'處以罰分C. 權重衰減,特定於神經網絡,使用權重wij的平方和作為懲罰。 ...使用重量衰減似乎既有助於優化過程,又可以避免過度補償 (重點補充)

通過查看源代碼補充blahdiblah的答案我認為參數weights對應於反向傳播的學習速率(通過閱讀手冊我無法理解它是什么)。 查看函數fpass中的文件nnet.c ,第236行:

TotalError += wx * E(Outputs[i], goal[i - FirstOutput]);

這里,在一個非常直觀的命名法中, E對應於bp錯誤,而wx是傳遞給函數的參數,最終對應於標識符Weights[i]

此外,您可以通過在函數VR_dfunc中轉到相同文件的第317~319行確定參數decay確實是它所聲稱的:

for (i = 0; i < Nweights; i++)
    sum1 += Decay[i] * p[i] * p[i];
*fp = TotalError + sum1;

其中p對應於連接的權重,這是權重衰減正則化的確切定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM