Вопрос или проблема
Я обучил 8 моделей на основе одной и той же архитектуры (сверточная нейронная сеть), и каждая использует метод увеличения данных. Точность моделей значительно колеблется, в то время как потеря не колеблется так сильно. В одном случае была разница в 10% в точности, в то время как значение потерь было абсолютно одинаковым. Почему это происходит? Разве оба показателя не должны изменяться?
Вы можете оказаться по ту сторону порога классификации. Помните, что нейронная сеть возвращает вероятности, а не категории. Если ваша предсказанная вероятность переходит с $0.51$ в одной модели на $0.49$ в другой, это небольшое изменение, но если вы установите порог для классификации на $0.5$, модели будут давать разные категории. Если вы измените правильную категорию на неправильную, ваша точность значительно пострадает, хотя функция потерь почти не изменится. Я продемонстрирую это на основе очень распространенной бинарной кросс-энтропии.
$$L(y_{\text{true}}, y_{\text{predicted}}=-y_{\text{true}}\log(y_{\text{predicted}})-(1-y_{\text{true}})\log(1-y_{\text{predicted}})\\
L(1, 0.51)=-1\log(0.51)-0\log(0.49)=0.673\\
L(1, 0.49)=-1\log(0.49)-0\log(0.51)=0.713
$$
Это изменяет потерю всего на $0.04$, но количество неверных классификаций изменилось на $1$!
Это можно считать недостатком показателей производительности, основанных на пороге, таких как точность. Я включу свои обычные ссылки о правильных правилах оценки. (“Правильный” – это технический термин, а не моя оценка.)
https://stats.stackexchange.com/questions/357466/are-unbalanced-datasets-problematic-and-how-does-oversampling-purport-to-he
https://www.fharrell.com/post/class-damage/
https://www.fharrell.com/post/classification/
https://stats.stackexchange.com/a/359936/247274
https://stats.stackexchange.com/questions/464636/proper-scoring-rule-when-there-is-a-decision-to-make-e-g-spam-vs-ham-email
https://twitter.com/f2harrell/status/1062424969366462473?lang=en
https://stats.stackexchange.com/questions/368949/example-when-using-accuracy-as-an-outcome-measure-will-lead-to-a-wrong-conclusio
Ответ или решение
Когда речь идет о классификационных моделях, таких как сверточные нейронные сети (CNN), различия между точностью и значением потерь могут быть неочевидными, но они основаны на принципиальных аспектах работы нейронных сетей и статистических метриках производительности.
Понимание метрик: Потерь и точности
-
Потеря – это функция, отражающая, насколько хорошо модель предсказывает результаты по сравнению с реальными данными. Чаще всего используется функция потерь, такая как кросс-энтропия, для измерения расхождения между истинными метками классов и предсказанными вероятностями.
-
Точность – это доля правильно предсказанных классов из общего числа примеров. Важно заметить, что это бинарная метрика, зависящая от выбранного порога классификации.
Причины различий между потерей и точностью
-
Чувствительность к порогам: Один из основных моментов, который стоит учитывать, заключается в том, что нейронные сети выдают вероятностные значения для каждой категории. Пример: если одна модель предсказывает вероятность 0.51 для положительного класса, а другая – 0.49, то при пороге 0.5 у первой модели наблюдается точное попадание, а у второй – ошибочное. Это приводит к тому, что точность может сильно измениться при минимальных изменениях в вероятностях.
-
Степень уверенности модели: Несмотря на то, что значение потерь может быть схожим (например, 0.673 для 0.51 и 0.713 для 0.49), это не учитывает, насколько уверенно модель уверена в своих предсказаниях. Разница между предсказанной вероятностью 0.51 и 0.49 может выглядеть небольшой, однако изменение одной-единственной категории может значительно увеличить количество неверных классификаций, что отразится на результатах точности.
-
Объективность потерь: Функция потерь, такая как кросс-энтропия, может быть менее чувствительна к небольшим изменениям в вероятностях. Например, если одна модель дает вероятность 0.51, а другая – 0.49, разница в потере может быть незначительной (например, 0.04), несмотря на то что количество неправильно классифицированных экземпляров может варьироваться.
Рекомендации
Для более точной оценки моделей необходимо дополнительно учитывать метрики, которые обеспечивают полное понимание их производительности:
-
Кривая ROC и AUC: Кривая характеристик операционного анализа (ROC) позволяет визуально оценивать производительность модели по всем возможным порогам.
-
F1-меры и другие метрики: Дополнительные метрики, такие как F1-меры, которые представляют собой гармоническое среднее между точностью и полнотой, могут дать более полное понимание производительности модели.
-
Анализ отклонений и ошибок: Необходимо глубже анализировать, в каких случаях модели допускают ошибки, и как подобные случаи распределены по классам.
Заключение
Различия в точности и потере, которые вы наблюдаете в своих моделях, подчеркивают важность понимания статистики и характеристик алгоритмов. Помните о том, что потери могут не всегда отражать качество модели, поэтому стоит использовать более разносторонний подход к оценке ее производительности. Это поможет вам сделать более информированные и стратегически обоснованные решения в будущем, повышая качество ваших моделей и их предсказательную способность.