Що таке перехресна ентропія?


93

Я знаю, що існує багато пояснень, що таке перехресна ентропія, але я все ще бентежусь.

Це лише метод опису функції втрат? Чи можемо ми використовувати алгоритм градієнтного спуску, щоб знайти мінімум за допомогою функції втрат?


10
Не підходить для SO. Ось подібне запитання на сестринському сайті datascience
Метрополіс

Відповіді:


231

Перехресна ентропія зазвичай використовується для кількісної оцінки різниці між двома розподілами ймовірностей. Зазвичай "справжній" розподіл (той, який ваш алгоритм машинного навчання намагається зрівняти) виражається в термінах одноразового розподілу.

Наприклад, припустимо, що для конкретного навчального екземпляру мітка є 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.


отже, перехресна ентропія описує втрати за сумою ймовірностей для кожного прикладу X.
теоретик

отже, чи можемо ми замість опису помилки як перехресної ентропії описати помилку як кут між двома векторами (подібність косинусів / кутова відстань) і спробувати мінімізувати кут?
театрал

1
мабуть, це не найкраще рішення, але я просто хотів знати, теоретично, чи зможемо ми cosine (dis)similarityописати помилку через кут, а потім спробувати мінімізувати кут.
теоретик 02

2
@Stephen: Якщо ви подивитесь на приклад, який я навів, 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 , яка насправді є природним журналом; це не має значення.
stackoverflowuser2010

1
@HAr: Для одного гарячого кодування справжньої мітки існує лише один ненульовий клас, про який ми дбаємо. Однак перехресна ентропія може порівнювати будь-які два розподіли ймовірностей; необов’язково, щоб один із них мав гарячі ймовірності.
stackoverflowuser2010

3

Коротше кажучи, перехресна ентропія (СЕ) - це міра того, наскільки віддалене ваше передбачуване значення від справжньої мітки.

Хрестик тут стосується обчислення ентропії між двома або більше ознаками / справжніми мітками (наприклад, 0, 1).

А сам термін ентропія відноситься до випадковості, тому його велике значення означає, що ваш прогноз далекий від реальних міток.

Тож ваги змінюються, щоб зменшити СЕ і, отже, нарешті призводить до зменшення різниці між прогнозуванням та справжніми мітками і, отже, кращою точністю.


1

Додаючи до вищезазначених постів, найпростіша форма перехресної ентропії відома як бінарна перехресна ентропія (використовується як функція втрат для двійкової класифікації, наприклад, з логістичною регресією), тоді як узагальнена версія є категоріально-перехресною ентропією (використовується як функція втрат для багатокласних задач класифікації, наприклад, з нейронними мережами).

Ідея залишається незмінною:

  1. коли обчислена за моделлю (softmax) ймовірність класу стає близькою до 1 для цільової мітки для навчального екземпляра (представленого з одним гарячим кодуванням, наприклад,), відповідні втрати CCE зменшуються до нуля

  2. в іншому випадку вона збільшується, оскільки передбачувана ймовірність, що відповідає цільовому класу, стає меншою.

Наступний малюнок демонструє концепцію (зауважте на малюнку, що BCE стає низьким, коли обидва значення y та p високі або обидва вони низькі одночасно, тобто існує згода):

введіть тут опис зображення

Перехресна ентропія тісно пов’язана з відносною ентропією або KL-дивергенцією, яка обчислює відстань між двома розподілами ймовірностей. Наприклад, між двома дискретними pmfs співвідношення між ними показано на наступному малюнку:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.