Кросс-энтропия всегда больше энтропии? - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь понять, как кросс-энтропия используется для определения потерь в задачах классификации.

Я довольно озадачен утверждением в Википедии, что Крестовая энтропия всегда больше, чем энтропия.Я придумал очень простое распределение p (действительное распределение) и q (предполагаемое распределение) и рассчитал перекрестную энтропию и энтропию.И обнаружили, что перекрестная энтропия в этом случае меньше энтропии.

import numpy as np 
p = [0.5, 0.2, 0.2, 0.1]
q_1 = [0.4, 0.2, 0.2, 0.2]
q = [0.4, 0.2, 0.2, 0.2]
def cross_entropy(p, q):
  return np.sum(-1*np.multiply(p, np.log(q)))
# Get cross entropy
print(cross_entropy(p, q))
# Get entropy 
print(cross_entropy(q_1, q))

Что пошло не так?


Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Вместо этого попробуйте эту кросс-энтропию: print(cross_entropy(q, p))

Кросс-энтропия не является симметричной в своих аргументах.Вы можете найти формулу здесь: https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
в разделе Мотивация , связывающая кросс-энтропию, энтропию и дивергенцию KL (которая всегда неотрицательна).

В основном высравнили H (P, Q) и H (Q), когда вы должны были сравнить:

  • H (Q, P) и H (Q)
  • H (P, Q) и H (P)

При этом вы действительно увидите, что:

  • H (Q, P) - H (Q)> = 0
  • H (P, Q) - H (P)> = 0

Как прямой ответ на ваш вопрос: всегда ли кросс-энтропия больше энтропии?
Ответ положительный, еслиВы сравниваете правильную перекрестную энтропию с правильной энтропией.

0 голосов
/ 18 октября 2018

(Не могу комментировать, поэтому я добавлю это как ответ)

Привет,

Да перекрестная энтропия всегда больше энтропии .

Загляните в этот пост, чтобы узнать больше: https://rdipietro.github.io/friendly-intro-to-cross-entropy-loss/#cross-entropy

Чтобы ответить на другой вопрос: «Что пошло не так?»

В вашей формуле есть небольшая ошибка:

np.sum(-1*np.multiply(p, np.log(q)))

Формула для расчета кросс-энтропии должна быть обратной к q:

np.sum(-1*np.multiply(p, np.log(1/q)))

Надеюсь, это поможет!:)

...