Крест Энтропия Джунгли
Может кто-нибудь объяснить разницу между всеми этими потерями кросс-энтропии? Керас говорит о
- Бинарный Крест Энтропия
- Категориальная перекрестная энтропия
- Редкая Категориальная Крестовая Энтропия
в то время как тензор потока имеет
- Кросс Энтропия Софтмакс С Логитсом
- Кросс Энтропия Softmax с логитами
- Сигмоидальный крест энтропии с логитами
(также поднимается вопрос: существуют ли типы кросс-энтропии без логитов?)
Каковы различия и отношения между ними? Каковы типичные приложения для них и каково математическое образование? Есть ли другие типы кросс-энтропии, которые нужно знать?
1 ответ
Существует только одна перекрестная (Шеннон) энтропия, определяемая как:
H(P||Q) = - SUM_i P(X=i) log Q(X=i)
Все функции, которые вы перечислили, являются просто вспомогательными функциями, которые принимают различные способы представления P
а также Q
,
Есть в основном 3 основные вещи для рассмотрения:
Есть 2 возможных варианта (двоичная классификация) или более. Если есть только два результата, то
Q(X=1) = 1 - Q(X=0)
таким образом, одно число с плавающей точкой в (0,1) идентифицирует все распределение, поэтому нейронная сеть в двоичной классификации имеет один выход (как и логистическая регрессия). При наличии K>2 возможных результатов необходимо определить K результатов (по одному на каждыйQ(X=...)
)каждый производит правильные вероятности (это означает, что
Q(X=i)>=0
а такжеSUM_i Q(X=i) =1
или один просто производит "счет" и имеет некоторый фиксированный метод преобразования оценки в вероятность. Например, одно действительное число можно "преобразовать в вероятность", взяв сигмоид, а набор действительных чисел можно преобразовать, взяв их softmax и так далее.есть
j
такой, чтоP(X=j)=1
(есть один "истинный класс", цели "жесткие", например "это изображение представляет собой кошку") или существуют "мягкие цели" (например, "мы на 60% уверены, что это кошка, но для 40% это на самом деле собака ").
В зависимости от этих трех аспектов, должны использоваться разные вспомогательные функции:
outcomes what is in Q targets in P
-------------------------------------------------------------------------------
binary CE 2 probability any
categorical CE >2 probability soft
sparse categorical CE >2 probability hard
sigmoid CE with logits 2 score any
softmax CE with logits >2 score soft
sparse softmax CE with logits >2 score hard
В конце концов, можно просто использовать "категориальную кросс-энтропию", так как это математически определено, однако, поскольку такие вещи, как жесткие цели или двоичная классификация, очень популярны - современные библиотеки ML предоставляют эти дополнительные вспомогательные функции, чтобы упростить задачу. В частности, сигмаоид "стопки" и перекрестная энтропия могут быть численно нестабильными, но если известно, что эти две операции применяются вместе - существует численно стабильная их комбинация (которая реализована в TF).
Важно отметить, что если вы применяете неправильную вспомогательную функцию, код обычно будет выполняться, но результаты будут неправильными. Например, если вы примените softmax_* помощник для двоичной классификации с одним выходом, ваша сеть будет всегда выдавать "True" на выходе.
В заключение: этот ответ рассматривает классификацию, он немного отличается, если рассматривать случай с несколькими метками (когда одна точка может иметь несколько меток), так как тогда Ps не суммируются с 1, и следует использовать sigmoid_cross_entropy_with_logits, несмотря на наличие нескольких выходных единиц,
Логиты
Для этого "логиты" можно рассматривать как неактивированные выходы модели.
- В то время как потери Keras всегда принимают "активированный" выход (вы должны применить "сигмоид" или "softmax" перед потерей)
- Tensorflow принимает их с "логитами" или "неактивированными" (не следует применять "сигмоид" или "софтмакс" перед проигрышем)
При проигрыше "с логитами" активация будет применена внутренне. Некоторые функции позволяют выбратьlogits=True
или logits=False
, который сообщит функции, "применять" или "не применять" активации.
Разреженный
- Редкие функции используют целевые данные (истинное значение) как "целочисленные метки": 0, 1, 2, 3, 4...
- Неразреженные функции используют целевые данные как "горячие метки": [1,0,0], [0,1,0], [0,0,1]
Бинарная кроссентропия = сигмовидная кроссентропия
- Тип проблемы:
- одиночный класс (ложь / истина); или
- неисключительный мультикласс (многие классы могут быть правильными)
- Форма вывода модели:
(batch, ..., >=1)
- Активация:
"sigmoid"
Категориальная кроссэнтропия = кроссэнтропия Softmax
- Тип проблемы: эксклюзивные классы (правильным может быть только один класс)
- Форма вывода модели:
(batch, ..., >=2)
- Активация:
"softmax"