Есть ли в Керасе способ перекрестной проверки отслеживаемой метрики раннего останова EarlyStopping(monitor = 'val_acc', patience = 5)
?Перед разрешением обучения перейти к следующей эпохе, может ли модель пройти перекрестную проверку, чтобы получить более надежную оценку ошибки теста?Я обнаружил, что метрика раннего останова, скажем, точность набора проверки, может страдать от высокой дисперсии.Модели с ранней остановкой часто не так хорошо работают с невидимыми данными, и я подозреваю, что это связано с высокой дисперсией, связанной с подходом набора валидации.
Чтобы минимизировать дисперсию в метрике ранней остановки, я быкак k-кратная перекрестная проверка метрики раннего останова, когда модель обучается с эпохи i
до эпохи i + 1
.Я хотел бы взять модель в эпоху i
, разделить тренировочные данные на 10 частей, изучить на 9 частях, оценить ошибку на оставшейся части, повторить, чтобы все 10 частей имели шанс быть набором для проверки,и затем приступайте к обучению в эпоху i + 1
с полными данными тренировки, как обычно.Надеемся, что среднее из 10 оценок ошибок будет более надежной метрикой, которую можно использовать для ранней остановки.
Я пытался написать пользовательскую функцию метрики, включающую перекрестную проверку в k-кратном порядке, но не могузаставить его работать.Есть ли способ перекрестной проверки отслеживаемой метрики раннего останова, возможно, с помощью пользовательской функции внутри модели Keras или цикла вне модели Keras?
Спасибо !!