mlpKerasDropout в карете

Я пытался реализовать метод mlpKerasDropout при обучении с использованием пакета caret R.

Мой код, кажется, непрерывно перебирает 10 из 10 эпох и не сходится. Я изучил mlpKerasDropout.R, но изо всех сил пытаюсь понять, как работает эта функция.

У кого-нибудь есть минимальный пример, которым они могут поделиться, как использовать эту функцию?

Большое спасибо,

0 ответов

Для каждой повторной выборки (управляемой trainControl()) выполняется подбор. Это то, что вы видите, когда 10 из 10 эпох непрерывно ездят на велосипеде. Каждый цикл был повторной выборкой / подгонкой. Вы можете изменить количество эпох, используемых при настройке гиперпараметра, установив аргумент epochs в train, который будет передан методу обучения "mlpKerasDropout" через точечные аргументы (...)

Смотрите код для mlpKerasDropout здесь: https://github.com/topepo/caret/blob/master/models/files/mlpKerasDropout.R

По умолчанию аргумент поиска для гиперпараметров установлен на "grid", но вы можете установить его на "random", чтобы он пробовал другие функции активации, отличные от "relu", или предоставлял свою собственную сетку настройки.

Вот пример кода, показывающий использование tuneLength с search='random' и использование ранней остановки, а также аргументов эпох, передаваемых в keras.

tune_model <- train(x, y, 
           method = "mlpKerasDropout",
           preProc = c('center', 'scale', 'spatialSign'),
           trControl = trainControl(search = 'random', classProbs = T, 
              summaryFunction = mnLogLoss, allowParallel = TRUE),
           metric = 'logLoss',
           tuneLength = 20, 
# keras arguments following
validation_split = 0.25,
           callbacks = list(
                keras::callback_early_stopping(monitor = "val_loss", mode = "auto", 
                  patience = 20, restore_best_weights = TRUE)
              ),
            epochs = 500)

Имейте в виду, что вы хотите перестроить свою модель на тренировочные данные после завершения настройки гиперпараметра.

Другие вопросы по тегам