Ich habe ein neuronales Netzwerk (Feed-Forward Single Layer), mit dem ich versuche, eine umweltbezogene Variable aus zwei Finanzvariablen vorherzusagen (Regression). Ich benutze die "Zug" -Funktion aus dem Caret-Paket.
Ich benutze den nnet()
Algorithmus im Caret-Paket. Ich habe zwei kontinuierliche Prädiktoren und 420 Datenpunkte.
Zum theoretischen Verständnis versuche ich, mein Modell absichtlich zu überarbeiten. Nach meinem Verständnis sollte dies normalerweise mit jedem Datensatz funktionieren , z. B. beim Erhöhen der "Größe" (dh der Anzahl der versteckten Einheiten). Eine drastische Vergrößerung versteckter Einheiten führt jedoch nicht zu einer Überanpassung.
Ist es also falsch anzunehmen, dass Sie jedes neuronale Netzwerk durch Erhöhen der "Größe" überanpassen können? Welche andere Variable könnte stattdessen zu einer Überanpassung führen?
grid <- expand.grid(size = 20
)
control <- trainControl(method = "cv",
number = 10,
verboseIter = TRUE
)
fit <- train(x=train_parametres, y=train_result,
method = "mlp",
metric = "Rsquared",
learnFunc = "Std_Backpropagation",
learnFuncParams = c(0.2, 0.0),
maxit = 1000,
trControl = control,
tuneGrid = grid,
preProcess = c("center", "scale"),
linout = T,
verbose = T,
allowParallel = T
)
quelle
Ich hatte das gleiche Problem, ich behielt keine Regularisierung und optimale Lernrate bei. aber der Lernratenabfall wurde auf Null gesetzt. Sobald ich den Lernratenabfall auf einen Wert wie 0,95 eingestellt habe, hat es funktioniert und die Anzahl der Epochen erhöht
quelle