Подтвердить что ты не робот

Кросс-энтропийные джунгли

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

  • Двоичная кросс-энтропия
  • Категориальная кросс-энтропия
  • разреженная категориальная кросс-энтропия

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

  • Софтмакс-кросс-энтропия с логинами
  • Разреженная кросс-энтропия Softmax с логинами
  • Сигмовидная кросс-энтропия с логинами

(также возникает вопрос: существуют ли типы кросс-энтропии без логитов?)

Каковы различия и отношения между ними? Каковы типичные приложения для них и каков математический фон? Существуют ли другие типы кросс-энтропии, которые нужно знать?

4b9b3361

Ответ 1

Существует только одна перекрестная (Шеннон) энтропия, определяемая как:

H(P||Q) = - SUM_i P(X=i) log Q(X=i)

При использовании машинного обучения P является фактическим (основополагающим) распределением, а Q является прогнозируемым распределением. Все перечисленные вами функции - это просто вспомогательные функции, которые допускают различные способы представления 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, несмотря на наличие нескольких выходных единиц.