Вопрос или проблема
Я пытаюсь предсказать вероятность с помощью нейронной сети, но у меня возникают проблемы с тем, чтобы понять, какая функция потерь лучше. Первой мыслью для меня была перекрестная энтропия, но в других ресурсах всегда говорится об этом в контексте задачи бинарной классификации, где метки $\{0, 1\}$, но в моем случае у меня есть фактическая вероятность в качестве цели. Есть ли среди этих опций явно лучшая, или, возможно, все они допустимы с небольшими различиями в крайних областях 0/1?
Предположим, что $x$ — это выход последнего слоя моей модели.
Перекрестная энтропия:
$\text{target} * -\log(\text{sigmoid}(x)) + (1 – \text{target}) * -\log(1 – \text{sigmoid}(x))$
Среднеквадратичная ошибка с сигмоидой:
$(\text{sigmoid}(x) – \text{target})^2$
Среднеквадратичная ошибка с ограничением:
$(x – \text{target})^2$
Когда я использую выходные данные, я ограничиваю значения между $[0, 1]$.
Учитывая, что вы пытаетесь предсказать скалярное значение вероятности, формула перекрестной энтропии, которую вы указали в вопросе, действительна только в том случае, если целевая переменная дискретна. Так что, если ваш вопрос заключается в том, “как предсказать вероятность извлечения подходящей карты из колоды”, это будет вполне приемлемо.
Основное отличие между перекрестной энтропией и среднеквадратичной ошибкой будет заключаться в том, как они наказывают неверные прогнозы. Допустим, при целе 1 предсказание равно 0. В этом случае перекрестная энтропия на самом деле не определена, но по мере приближения предсказания к 0, потеря перекрестной энтропии растет экспоненциально. С другой стороны, ваша среднеквадратичная ошибка будет равна только 1. Какой из них лучше, зависит от вашего применения; если вы хотите избежать больших погрешностей, то кажется, что перекрестная энтропия более уместна, и наоборот.
Второй и третий подход только различаются тем, как они гарантируют, что предсказание находится в пределах [0, 1]: один использует сигмоидную функцию, а другой — ограничение.
Поскольку вы используете нейронную сеть, вам следует избегать использования функции ограничения. Функция ограничения является той же, что и функция идентичности в ограниченном диапазоне, но абсолютно плоской вне его. Таким образом, градиент этой функции равен 1 в пределах диапазона ограничения, но равен 0 вне его. Из-за этого вы, скорее всего, столкнетесь с проблемой “неактивного нейрона” так же, как когда люди говорят о “неактивном ReLU”.
В случае, если область выходной переменной дискретна или непрерывна, а не бинарна, вы также можете рассмотреть KL-дивергенцию в качестве функции потерь для вычисления расстояния между предсказанной вероятностной распределением и целевым, например.
Это также важно, потому что в некоторых реализациях, по соображениям эффективности, перекрестная энтропия принимает только индексы в качестве целевых переменных, а не распределения. Это имеет место в pytorch, например, см. это.
Если цель — это вероятность/коэффициенты (наблюдения ограничены открытым интервалом (0, 1)), регрессия Бета является полезной моделью.
Она описана Феррари и Крибаре-Нето в их статье “Регрессия Бета для моделирования коэффициентов и долей” (2004).
На практике перекрестная энтропия лучше, чем среднеквадратичная ошибка с сигмоидой, потому что потеря перекрестной энтропии выпукла относительно последнего слоя, тогда как среднеквадратичная ошибка с сигмоидой не является таковой. Это означает, что она может “застревать” на локальном минимуме, и в результате изученная вероятность может никогда не достичь целевого значения.
С другой стороны, не тривиально утверждать, что перекрестная энтропия явно лучше, чем среднеквадратичная ошибка с ограничением. На самом деле они выдают одинаковые значения градиента. Вы можете обратиться к обсуждению Использование MSE вместо логарифмической потери в логистической регрессии, где вывод, кажется, состоит в том, что две из них вычислительно аналогичны, но с вероятностной точки зрения перекрестная энтропия более интуитивна и предоставляет более полезные результаты, чем просто выход. Я бы также утверждал, что с моделью нейронной сети выход будет слишком неустойчивым во время экстраполяции, чтобы простое ограничение в диапазон [0, 1] могло дать полезный результат.
Что касается вашей озабоченности тем, что
Мне странно, что потеря перекрестной энтропии при предсказании 0.7, когда цель равна 0.7 (т.е. идеальное предсказание), составляет 0.61
Значение функции потерь не всегда имеет практическое значение. Особенно в вероятностных контекстах значение метрик, таких как перекрестная энтропия и KL-дивергенция, в основном относительное, а не абсолютное, что означает, что они имеют смысл только при сравнении, а не как самостоятельные. Что действительно важно, так это значение градиента, вызванное ими, который имеет решающую роль в оптимизации и обучении модели.
Ответ или решение
Когда вы пытаетесь предсказать вероятность с помощью нейронной сети, выбор функции потерь имеет значительное значение. Давайте рассмотрим ваши предложения и проанализируем каждую из функций потерь.
1. Кросс-энтропия
Кросс-энтропия часто используется в задачах бинарной классификации и хорошо подходит для предсказания вероятностей. Ваша формула для кросс-энтропии:
[
\text{target} -\log(\text{sigmoid}(x)) + (1 – \text{target}) -\log(1 – \text{sigmoid}(x))
]
является типичной для задач, где цель бинарная (т.е. 0 или 1). Однако в вашем случае, когда целевое значение — это действительная вероятность, кросс-энтропия может быть не совсем оптимальным выбором, особенно если вы предсказываете значения в открытом интервале (0, 1). Важно отметить, что значение функции потерь кросс-энтропии может стать бесконечным или неопределенным, если предсказание непосредственно равно 0 или 1, в то время как MSE будет давать более предсказуемые значения.
2. Среднеквадратичная ошибка с сигмоидой
Формула:
[
(\text{sigmoid}(x) – \text{target})^2
]
представляет собой среднеквадратичную ошибку (MSE) применительно к предсказанному значению, преобразованному с помощью сигмоиды. Хотя MSE, как правило, использует менее строгие штрафы за ошибки по сравнению с кросс-энтропией, оно может быть более подходящим, если вы хотите минимизировать среднеквадратичные ошибки между предсказанным и фактическим значением.
3. Среднеквадратичная ошибка с зажатием
Здесь использование:
[
(x – \text{target})^2
]
с учетом зажатия значений в диапазон [0, 1] может быть менее предпочтительным. Применение функции "clamp" может привести к проблемам с градиентом, когда выход за пределами диапазона [0, 1] не будет способствовать обучению модели (ноль градиента вне диапазона). Это может привести к тому, что нейронная сеть не будет обучаться оптимально, аналогично проблеме "dead ReLU".
4. КЛ-дивергенция
Если вам нужно измерить расстояние между предсказанным распределением вероятностей и целевым, то КЛ-дивергенция может быть хорошим выбором. Она может дать вам более глубокое понимание различий между вашим предсказанием вероятностей и фактическими вероятностями.
Предпочтительный метод
На практике кросс-энтропия часто оказывается лучше, чем MSE с сигмоидой, поскольку функция потерь кросс-энтропии является выпуклой в отношении последнего слоя, в то время как MSE с сигмоидой — нет. Это означает, что обучение может зависнуть на локальных минимумах, что мешает вероятности достичь целевого значения.
При этом трудно однозначно утверждать, что кросс-энтропия лучше, чем MSE с зажатием, так как они имеют схожие градиенты. Однако с учетом нестабильности нейронной сети во время экстраполяции, использование простой функции зажатия может не дать полезных результатов.
Заключение
При выборе функции потерь для предсказания вероятностей в нейронной сети, кросс-энтропия показала свою эффективность, особенно когда нужно минимизировать большие ошибки. Однако стоит рассмотреть задачи, которые вы решаете, так как некоторые случаи могут требовать других подходов, например, использование КЛ-дивергенции или даже специализированных моделей, таких как бета-регрессия, для работы с вероятностями. Наконец, важно помнить, что значение функции потерь нельзя рассматривать в абсолютных величинах; большее значение имеет градиент, который она создает, влияя на обучение вашей модели.