Ранняя остановка на потерю проверки или на точность?


10

В настоящее время я обучаю нейронную сеть, и я не могу решить, какой из них использовать для реализации моих критериев ранней остановки: потеря проверки или метрики, такие как точность / f1score / auc / независимо от того, что вычислено на наборе проверки.

В своем исследовании я натолкнулся на статьи, защищающие обе точки зрения. Керас, по-видимому, по умолчанию потеряет валидацию, но я также натолкнулся на убедительные ответы для противоположного подхода (например, здесь ).

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

Ответы:


6

TLDR; Контролировать потери, а не точность

Я отвечу на свой вопрос, так как думаю, что полученные ответы не достигли цели, и у кого-то может возникнуть такая же проблема в один прекрасный день.

Во-первых, позвольте мне быстро уточнить, что использование ранней остановки совершенно нормально при обучении нейронных сетей (см. Соответствующие разделы в книге Глубокого обучения Гудфеллоу и др., Большинство статей по DL и документацию для обратного вызова keras EarlyStopping).

Теперь, что касается количества для мониторинга: предпочитаю потери точности. Почему? Потери количественно определяют, насколько достоверна модель в отношении прогноза (в основном имеющего значение, близкое к 1 в правильном классе и близкое к 0 в других классах). Точность просто учитывает количество правильных предсказаний. Точно так же любая метрика, использующая жесткие прогнозы, а не вероятности, имеет ту же проблему.

Очевидно, что какие бы метрики вы ни выбрали в конечном итоге, они должны быть рассчитаны на проверочном наборе, а не на обучающем наборе (в противном случае вы полностью упускаете смысл использования EarlyStopping в первую очередь)


Если значения находятся между 0 и 1, cross_entropyпотеря является более предпочтительным кандидатом, чем MSEили MAE. Ознакомьтесь с разделом «Заключение» этой статьи и этой статьей о статистике .
Esmailian

@ Esmailian это не вопрос предпочтений; для задач классификации MSE & MAE просто не подходят.
пустынно

4

На мой взгляд, это субъективно и специфично для проблемы. В качестве метрики вождения вы должны использовать все, что является наиболее важным фактором в вашем уме, поскольку это может сделать ваши решения о том, как изменить модель, более сфокусированным.

Большинство показателей, которые можно вычислить, будут коррелированны / похожи во многих отношениях: например, если вы используете MSE для своей потери, а затем записывает MAPE (средняя средняя процентная ошибка) или простая потеря , они дают вам сопоставимые кривые потерь.L1

Например, если вы будете сообщать оценку F1 в своем отчете / своему боссу и т. Д. (И при условии, что это действительно то, о чем они действительно заботятся), то использование этого показателя может быть наиболее целесообразным. Например, оценка F1 учитывает точность и отзыв, т. Е. Описывает связь между двумя более детальными метриками.

Объединяя эти вещи, вычисление результатов, отличных от нормальных потерь, может быть полезным для обзора и для того, чтобы увидеть, как ваша конечная метрика оптимизируется в ходе итераций обучения. Эти отношения могут дать вам более глубокое понимание проблемы,

Однако, как правило, лучше всего попробовать несколько вариантов, так как оптимизация потери проверки может позволить тренировке работать дольше, что в конечном итоге также может привести к превосходному баллу F1 . Точность и отзыв могут повлиять на некоторые локальные минимумы, производя почти статический результат Ф1 - так что вы прекратили бы тренировки. Если вы оптимизировали чистые потери, вы могли зафиксировать достаточные колебания потерь, чтобы позволить вам тренироваться дольше.


Почему использование потери при проверке позволяет тренироваться дольше, чем использование метрик? Кроме того, вы можете уточнить разницу между этими двумя вариантами? Видите ли вы случай, когда было бы плохой идеей использовать показатель, а не потерю?
Qmeeus

@ id-2205 - смотрите мой отредактированный ответ.
n1k31t4

интересный момент! В настоящее время я использую точность для ранней остановки, но я постараюсь использовать потерю проверки. Я не ожидаю каких-либо изменений в тренировочном процессе! Спасибо за ваш ответ
qmeeus

1

В настоящее время я обучаю нейронную сеть, и я не могу решить, какой из них использовать для реализации моих критериев ранней остановки: потеря проверки или метрики, такие как точность / f1score / auc / независимо от того, что вычислено на наборе проверки.

Если вы тренируетесь в глубокой сети, я настоятельно рекомендую вам не использовать раннюю остановку. В глубоком обучении это не очень привычно. Вместо этого вы можете использовать другие методы, такие как отсев для обобщения. Если вы настаиваете на этом, выбор критерия зависит от вашей задачи. Если у вас есть несбалансированные данные, вы должны использовать F1оценку и оценивать ее по данным перекрестной проверки. Если у вас есть сбалансированные данные, постарайтесь использовать точность данных перекрестной проверки. Другие методы сильно зависят от вашей задачи.

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


2
Я также использую отсев. Тем не менее, я не могу найти причину, по которой ранняя остановка не должна использоваться, хотя ...
qmeeus

Ранняя остановка пытается решить проблемы как обучения, так и обобщения. С другой стороны, выпадающий просто пытается преодолеть проблему обобщения.
СМИ

1
Вы не отвечаете на мой вопрос ... Я не отрицаю тот факт, что отсев полезен и должен использоваться для защиты от переоснащения, я не мог с этим согласиться. Мой вопрос: почему вы говорите, что ранняя остановка не должна использоваться с ANN? (см. ваше первое предложение: если вы тренируетесь в глубокой сети, я настоятельно рекомендую вам не использовать раннюю остановку.)
qmeeus

Вы читали мой последний комментарий? Это точно отвечает на ваш вопрос. Это известная цитата из пр. Нг в своем классе глубокого обучения, второй курс. Последний случай является более легкой задачей из-за отсутствия усилий для одновременного решения множества задач.
СМИ

3
И чтобы найти его и найти правильный набор гиперпараметров, я использую какой-то направленный поиск по сетке с ранним остановом по причинам, которые я объяснил выше. Точка взята, хотя, и как только я выберу окончательную модель и буду тренировать ее, я не буду использовать раннюю остановку. Спасибо за эту интересную дискуссию и за ваш совет
qmeeus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.