Что такое кросс-энтропия?
Я знаю, что есть много объяснений того, что 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
насколько близко предсказанное распределение к истинному распределению? Именно это определяет потеря кросс-энтропии. Использовать это формула:
здесь 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)
относительно параметров в первую очередь.
Итак, чтобы ответить на ваши оригинальные вопросы напрямую:
это только способ чтобы описать функцию потерь?
правильно, кросс-энтропия описывает потерю между двумя вероятностными распределениями. Это одна из многих возможных функций потерь.
затем мы можем использовать, например, алгоритм градиентного спуска, чтобы найти минимальный.
да, функция потери кросс-энтропии может использоваться как часть градиентного спуска.
дальнейшее чтение: один из моих другие ответы связанные с TensorFlow.