Крест Энтропия Джунгли

Может кто-нибудь объяснить разницу между всеми этими потерями кросс-энтропии? Керас говорит о

  • Бинарный Крест Энтропия
  • Категориальная перекрестная энтропия
  • Редкая Категориальная Крестовая Энтропия

в то время как тензор потока имеет

  • Кросс Энтропия Софтмакс С Логитсом
  • Кросс Энтропия 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"
Другие вопросы по тегам