Вопрос или проблема
В настоящее время я обучаю нейронную сеть и не могу решить, что использовать для реализации критерия ранней остановки: валидационные потери или такие метрики, как точность/F1-оценка/AUC/и так далее, рассчитанные на валидационном наборе.
В своих исследованиях я наткнулся на статьи, защищающие обе точки зрения. Keras, похоже, по умолчанию использует валидационные потери, но я также встречал убеждающие ответы за противоположный подход (например, здесь).
Есть ли у кого-то советы, когда желательно использовать валидационные потери и когда использовать конкретную метрику?
Вкратце; мониторьте потерю, а не точность
Я отвечу на свой вопрос, так как считаю, что полученные ответы упустили суть, и у кого-то в будущем может возникнуть та же проблема.
Во-первых, позвольте мне быстро пояснить, что использование ранней остановки – это совершенно нормально при обучении нейронных сетей (см. соответствующие разделы в книге Гудфеллоу и др. “Глубокое обучение”, большинство статей по Глубокому Обучению и документацию для callback’а keras’ EarlyStopping).
Теперь, что касается величины, которую нужно отслеживать: предпочитайте потери вместо точности. Почему?
Потеря количественно оценивает, насколько модель уверена в предсказании (по сути, стремится к значению, близкому к 1 в правильном классе и близкому к 0 в других классах). Точность просто учитывает количество правильных предсказаний. Точно так же любые метрики, использующие жесткие предсказания вместо вероятностей, имеют ту же проблему.
Очевидно, какую бы метрику вы ни выбрали, она должна рассчитываться на валидационном наборе, а не на тренировочном (иначе, вы совершенно упустите суть использования ранней остановки).
На мой взгляд, это субъективно и зависит от конкретной задачи. Вы должны использовать тот фактор, который, по вашему мнению, является наиболее важным, как определяющую метрику, так как это может сделать ваш подход к изменению модели более сосредоточенным.
Большинство метрик, которые можно вычислить, будут коррелировать/быть похожими во многих отношениях: например, если вы используете MSE для своей потери, то запись MAPE (средней абсолютной процентной ошибки) или простой $L_1$ потери даст вам сопоставимые кривые потерь.
Например, если в вашем отчете/для вашего начальника и т.д. будет указываться F1-оценка (и если это действительно то, что их интересует), то использование этой метрики может иметь наибольший смысл. F1-оценка, например, принимает во внимание точность и полноту, т.е. описывает отношение между двумя более детализированными метриками.
Соединяя все это вместе, вычисление оценок, отличных от обычных потерь, может быть полезным для обзора и для того, чтобы увидеть, как ваша конечная метрика оптимизируется в процессе тренировочных итераций. Это отношение, возможно, может дать вам более глубокое понимание проблемы.
Обычно лучше попробовать несколько вариантов, так как оптимизация для валидационной потери может позволить тренировке длиться дольше, что в конечном итоге также может привести к более высокой F1-оценке. Точность и полнота могут колебаться вокруг некоторых локальных минимумов, производя почти статическую F1-оценку – поэтому вы остановили бы тренировку. Если бы вы оптимизировали только для потерь, вы могли бы зафиксировать достаточно колебаний в потерях, чтобы позволить вам обучаться дольше.
Обычно функция потерь является лишь суррогатной, поскольку мы не можем напрямую оптимизировать метрику. Если метрика репрезентативна для задачи (лучшая для бизнес-ценности), значение метрики на оценочном наборе данных будет лучше, чем потери на этом наборе данных. Например, если несбалансированность данных является серьезной проблемой, попробуйте PR-кривую.
Как указал n1k31t4, это скорее зависит от задачи, но я хотел бы предложить несколько моментов для рассмотрения:
- Потери предназначены для того, чтобы помочь вашей модели сходиться, тогда как валидационная метрика обычно лучше описывает производительность модели.
- Валидационные метрики более “стабильны”, так как они представляют “бизнес-логику”, а не технический инструмент:
- Потери могут часто изменяться (если, конечно, вы не имеете дело с очень стандартной задачей). Вы можете выбирать разные потери и/или их комбинации. Те же потери могут слегка изменяться в зависимости от того, как они агрегируются, или изменяются связанные с потерями параметры.
- В некоторых необычных случаях потери могут даже динамически изменяться в процессе тренировки.
- Вам нужно будет каждый раз калибровать критерии остановки.
В настоящее время я обучаю нейронную сеть и не могу решить, что использовать для реализации критерия ранней остановки: валидационные потери или такие метрики, как точность/F1-оценка/AUC/и так далее, рассчитанные на валидационном наборе.
Если вы обучаете глубокую сеть, я очень рекомендую не использовать раннюю остановку. В глубоком обучении это не очень принято. Вместо этого вы можете применять другие техники, такие, как drop out, для хорошей обобщаемости. Если вы настаиваете на этом, выбор критерия зависит от вашей задачи. Если у вас несбалансированные данные, вам нужно использовать F1
-оценку и оценивать её на ваших данных кросс-валидации. Если у вас сбалансированные данные, попробуйте использовать точность на ваших данных кросс-валидации. Другие техники сильно зависят от вашей задачи.
Я настоятельно призываю вас найти модель, которая хорошо соответствует вашим данным, и применить drop out после этого. Это самая распространенная вещь, которую используют для глубоких моделей.
.
Ответ или решение
Когда дело касается выбора критерия для реализации ранней остановки при обучении нейронной сети, выбор между валидационной ошибкой и метриками, такими как точность, F1-оценка или AUC, может оказаться критическим для успешной настройки модели. Это решение требует глубокого понимания как теоретических аспектов потери и метрик, так и их применения в практических сценариях.
Теория
Валидационная ошибка (или лосс) обычно используется в качестве критерия для ранней остановки, и не без оснований. В отличие от метрик, таких как точность или F1-оценка, которые просто подсчитывают количество верных предсказаний или учитывают баланс между точностью и полнотой, лосс предоставляет более детализированное представление о доверии модели к своим прогнозам. Лосс оценивает, насколько уверена модель в своих предсказаниях, то есть стремится минимизировать вероятность ошибки относительно истинного класса. Это особенно важно на первых стадиях обучения, когда важнее минимизировать большую вероятность ошибок, чем просто улучшать качество классификации.
Напротив, метрики, такие как точность или F1-оценка, представляют собой "жесткие" метрики, основанные на бинарных решениях (правильно/неправильно), и могут не полностью отражать изменения в уверенности модели.
Примеры
Рассмотрим задачу классификации изображений с использованием нейронной сети. Если вы используете валидационную ошибку в качестве критерия ранней остановки, обучение прекратится, как только модель перестанет значительно снижать ошибку на валидационном наборе. Это может помочь избежать переобучения, поскольку модель не будет чрезмерно подстраиваться под тренировочные данные после достижения приемлемого уровня ошибки.
Если же в качестве критерия используется, например, F1-оценка, модель может прекратить обучение, если улучшения в балансе между точностью и полнотой прекратятся. Это может быть особенно полезно в задачах с несбалансированными данными, где важна не только точность, но и способность модели правильно идентифицировать как большинство, так и меньшинство классов.
Применение
Теперь о том, как выбрать правильный критерий в зависимости от конкретной задачи. Если речь идет о задачах, где критически важна уверенность модели в своих предсказаниях и где возможные ошибки могут иметь серьёзные последствия, предпочтителен выбор валидационной ошибки. Это особенно актуально в сценариях, где потери могут быть несоразмерны неверным классификациям, например, при диагностике заболеваний, где false-positive и false-negative результаты оцениваются по-разному.
С другой стороны, для задач, где важна общая производительность модели на несбалансированных данных, более уместно использовать такие метрики, как F1-оценка или AUC. Например, в задачах выявления редких событий, таких как обнаружение мошенничества или диагностика рассеянных заболеваний, критически важно уметь правильно оценить как точность, так и полноту модели.
В заключение, выбор между валидационной ошибкой и метриками для ранней остановки зависит от многих факторов, включая характеристики данных, цель задачи и ограничения, возникающие в конкретном контексте применения. Важно проводить эксперименты с различными критериями и тщательно анализировать их влияние на общую производительность модели, чтобы принять обоснованное и стратегически верное решение.