Что такое кросс-энтропия?

Я знаю, что есть много объяснений того, что cross-entropy есть, но я все еще в замешательстве.

это только метод для описания функции потерь? Затем, мы можем использовать, например, алгоритм градиентного спуска для поиска минимума. Или это весь процесс, который также включает в себя поиск минимального алгоритма?

1 ответов


Кросс-энтропия обычно используется для количественной оценки разницы между двумя распределениями вероятностей. Обычно "истинное" распределение (то, которое пытается сопоставить ваш алгоритм машинного обучения) выражается в терминах одного горячего распределения.

например, предположим, что для конкретного учебного экземпляра метка B (из возможных меток A, B и C). Таким образом, однократное распределение для этого учебного экземпляра:

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

вы можете интерпретировать выше" истинного " распределения означает, что обучающий экземпляр имеет 0% вероятность быть классом A, 100% вероятность быть классом B и 0% вероятность быть классом C.

теперь предположим, что ваш алгоритм машинного обучения предсказывает следующее распределение вероятности:

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

насколько близко предсказанное распределение к истинному распределению? Именно это определяет потеря кросс-энтропии. Использовать это формула:

Cross entropy loss formula

здесь p(x) - это искомая вероятность, и q(x) фактической вероятности. Сумма на три класса-A, B и C. В этом случае потеря составляет 0.479 :

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

так вот как "неправильно" или "далеко" ваше предсказание от истинного распределения.

перекрестная энтропия - одна из многих возможных функций потерь (еще одна популярная-потеря шарнира SVM). Эти функции потери обычно записывается как J (тета) и может использоваться в рамках градиентного спуска, который представляет собой итерационную структуру перемещения параметров (или коэффициентов) к оптимальным значениям. В приведенном ниже уравнении вы замените J(theta) С H(p, q). Но обратите внимание, что вам нужно вычислить производную от H(p, q) относительно параметров в первую очередь.

gradient descent

Итак, чтобы ответить на ваши оригинальные вопросы напрямую:

это только способ чтобы описать функцию потерь?

правильно, кросс-энтропия описывает потерю между двумя вероятностными распределениями. Это одна из многих возможных функций потерь.

затем мы можем использовать, например, алгоритм градиентного спуска, чтобы найти минимальный.

да, функция потери кросс-энтропии может использоваться как часть градиентного спуска.

дальнейшее чтение: один из моих другие ответы связанные с TensorFlow.