Ответ 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.