Я знаю, что есть много объяснений того, что такое кросс-энтропия, но я все еще в замешательстве.
Это всего лишь метод описания функции потерь? Можем ли мы использовать алгоритм градиентного спуска, чтобы найти минимум с помощью функции потерь?
machine-learning
cross-entropy
театолог
источник
источник
Ответы:
Кросс-энтропия обычно используется для количественной оценки разницы между двумя распределениями вероятностей. Обычно «истинное» распределение (то, которое пытается сопоставить ваш алгоритм машинного обучения) выражается в терминах горячего распределения.
Например, предположим, что для конкретного обучающего экземпляра истинная метка - B (из возможных меток A, B и C). Таким образом, горячая раздача для этого обучающего экземпляра:
Вы можете интерпретировать приведенное выше истинное распределение как означающее, что обучающий экземпляр имеет 0% вероятность быть классом A, 100% вероятность быть классом B и 0% вероятность быть классом C.
Теперь предположим, что ваш алгоритм машинного обучения предсказывает следующее распределение вероятностей:
Насколько близко прогнозируемое распределение к истинному распределению? Это то, что определяет потеря кросс-энтропии. Используйте эту формулу:
Где
p(x)
истинное распределение вероятностей иq(x)
предсказанное распределение вероятностей. Сумма превышает три класса A, B и C. В этом случае убыток составляет 0,479 :Вот насколько «неверно» или «далеко» ваше предсказание от истинного распределения.
Перекрестная энтропия - одна из многих возможных функций потерь (еще одна популярная функция - потеря шарнира SVM). Эти функции потерь обычно записываются как J (тета) и могут использоваться в рамках градиентного спуска, который представляет собой итерационный алгоритм для перемещения параметров (или коэффициентов) к оптимальным значениям. В приведенном ниже уравнении вы бы заменили
J(theta)
наH(p, q)
. Но обратите внимание, что вам нужноH(p, q)
сначала вычислить производную по параметрам.Итак, чтобы напрямую ответить на ваши исходные вопросы:
Правильная кросс-энтропия описывает потерю между двумя распределениями вероятностей. Это одна из многих возможных функций потерь.
Да, функцию потерь кросс-энтропии можно использовать как часть градиентного спуска.
Дальнейшее чтение: один из моих других ответов, связанных с TensorFlow.
источник
cosine (dis)similarity
для описания ошибки через угол, а затем попытаться минимизировать угол.p(x)
будет список вероятностей истинности для каждого из классов, которые будут[0.0, 1.0, 0.0
. Кроме того,q(x)
список предсказанной вероятности для каждого из классов,[0.228, 0.619, 0.153]
.H(p, q)
тогда- (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))
получается, что составляет 0,479. Обратите внимание, что обычно используетсяnp.log()
функция Python , которая на самом деле представляет собой естественный журнал; это не имеет значения.Короче говоря, кросс-энтропия (CE) - это мера того, насколько далеко ваше предсказанное значение от истинной метки.
Крест здесь относится к вычислению энтропии между двумя или более функциями / истинными метками (например, 0, 1).
И сам термин энтропия относится к случайности, поэтому его большое значение означает, что ваше предсказание далеки от реальных ярлыков.
Таким образом, веса изменяются для уменьшения CE и, таким образом, в конечном итоге приводит к уменьшению разницы между прогнозируемыми и истинными метками и, следовательно, к большей точности.
источник
В дополнение к вышеперечисленным сообщениям, простейшая форма кросс-энтропийной потери известна как бинарная кросс-энтропия (используется как функция потерь для двоичной классификации, например, с логистической регрессией), тогда как обобщенная версия является категориальной кросс-энтропией (используется как функция потерь для задач мультиклассовой классификации, например, с нейронными сетями).
Идея осталась прежней:
когда рассчитанная моделью (softmax) вероятность класса становится близкой к 1 для целевой метки для обучающего экземпляра (представленного с одним горячим кодированием, например), соответствующие потери CCE уменьшаются до нуля
в противном случае он увеличивается по мере того, как прогнозируемая вероятность, соответствующая целевому классу, становится меньше.
Следующий рисунок демонстрирует концепцию (обратите внимание на рисунок, что BCE становится низким, когда оба y и p высокие или оба они одновременно низкие, т. Е. Есть согласие):
Кросс-энтропия тесно связана с относительной энтропией или KL-дивергенцией, которая вычисляет расстояние между двумя распределениями вероятностей. Например, между двумя дискретными PMFS соотношение между ними показано на следующем рисунке:
источник