Репост из: Время Валеры
Прочитал интересную (и применимую) статью Rethinking Early Stopping: Refine, Then Calibrate.
Часто в курсах по машинному обучению говорят, что ошибку системы можно разложить на bias, variance, noise. На некоторых редких курсах даже учат, как это считать и что с этим делать дальше.
Попробуем посмотреть на эту проблему с другой стороны. В задачах вероятностной классификации loss для proper scoring rules можно разложить на: calibration и refinement.
Калибровка — мы сказали, что вероятность 80%. Сколько из взятых образцов будут принадлежать к классу 1? (Считать это можно через ECE — Expected Calibration Error).
Refinement — насколько хорошо модель разделяет классы. Допустим, модель выдала скор 0.9, все образцы оказались класса 1, а все, что ниже — класса 0. Модель откалибрована так себе, но разделяет классно. Собственно, если бы модель была откалибрована, мы могли бы выбирать отсечку вероятностно через саму вероятность.
Легко представить и обратную ситуацию: модель прекрасно откалибрована, но разделяет плохо. Например, модель, которая всегда предсказывает вероятность 50% для честной монетки, идеально откалибрована, но её разделяющая способность минимальна.
Из чего делаем вывод, что в какой-то момент улучшение функции потерь, из тех что относятся к семейству proper scoring functions, может происходить лишь за счет улучшения калибровки или даже ухудшать разделение, но за счет большого по величине улучшения калибровки выдавать лучший скор.
Это плохо. Калибровку часто можно существенно поправить потом post-hoc методами, поэтому остановка обучения по лоссу на валидации может привести к ситуации, что мы взяли далеко не лучший чекпойнт.
Что делать?
Сохранить несколько чекпойнтов модели.
Откалибровать каждый из них одинаковым методом.
Только после этого сравнивать их по loss.
В таком случае для каждого чекпойнта мы отдельно минимизируем доступную calibration error выбранным post-hoc методом (ссылка на запись вебинара), а разница в loss начинает лучше отражать именно качество разделения классов. Соответственно, мы выбираем модель с лучшей разделяющей способностью, а не ту, которая случайно оказалась лучше откалибрована на данном этапе обучения.
Проверили на датасетах для computer vision и 196 табличных датасетах — так и оказалось, победа.
Может ли это хотя бы частично объяснять эффекты вроде grokking или double descent?
Там мы тоже наблюдаем нетривиальную динамику loss во времени. Возможно, на ранних этапах обучения модель в основном улучшает калибровку, затем временно жертвует ей ради построения более качественной разделяющей поверхности, а потом начинает улучшать уже обе составляющие одновременно.
#ArticleReview
Часто в курсах по машинному обучению говорят, что ошибку системы можно разложить на bias, variance, noise. На некоторых редких курсах даже учат, как это считать и что с этим делать дальше.
Попробуем посмотреть на эту проблему с другой стороны. В задачах вероятностной классификации loss для proper scoring rules можно разложить на: calibration и refinement.
Калибровка — мы сказали, что вероятность 80%. Сколько из взятых образцов будут принадлежать к классу 1? (Считать это можно через ECE — Expected Calibration Error).
Refinement — насколько хорошо модель разделяет классы. Допустим, модель выдала скор 0.9, все образцы оказались класса 1, а все, что ниже — класса 0. Модель откалибрована так себе, но разделяет классно. Собственно, если бы модель была откалибрована, мы могли бы выбирать отсечку вероятностно через саму вероятность.
Легко представить и обратную ситуацию: модель прекрасно откалибрована, но разделяет плохо. Например, модель, которая всегда предсказывает вероятность 50% для честной монетки, идеально откалибрована, но её разделяющая способность минимальна.
Из чего делаем вывод, что в какой-то момент улучшение функции потерь, из тех что относятся к семейству proper scoring functions, может происходить лишь за счет улучшения калибровки или даже ухудшать разделение, но за счет большого по величине улучшения калибровки выдавать лучший скор.
Это плохо. Калибровку часто можно существенно поправить потом post-hoc методами, поэтому остановка обучения по лоссу на валидации может привести к ситуации, что мы взяли далеко не лучший чекпойнт.
Что делать?
Сохранить несколько чекпойнтов модели.
Откалибровать каждый из них одинаковым методом.
Только после этого сравнивать их по loss.
В таком случае для каждого чекпойнта мы отдельно минимизируем доступную calibration error выбранным post-hoc методом (ссылка на запись вебинара), а разница в loss начинает лучше отражать именно качество разделения классов. Соответственно, мы выбираем модель с лучшей разделяющей способностью, а не ту, которая случайно оказалась лучше откалибрована на данном этапе обучения.
Проверили на датасетах для computer vision и 196 табличных датасетах — так и оказалось, победа.
Может ли это хотя бы частично объяснять эффекты вроде grokking или double descent?
Там мы тоже наблюдаем нетривиальную динамику loss во времени. Возможно, на ранних этапах обучения модель в основном улучшает калибровку, затем временно жертвует ей ради построения более качественной разделяющей поверхности, а потом начинает улучшать уже обе составляющие одновременно.
#ArticleReview