Я знаю, що існує багато пояснень, що таке перехресна ентропія, але я все ще бентежусь.
Це лише метод опису функції втрат? Чи можемо ми використовувати алгоритм градієнтного спуску, щоб знайти мінімум за допомогою функції втрат?
Я знаю, що існує багато пояснень, що таке перехресна ентропія, але я все ще бентежусь.
Це лише метод опису функції втрат? Чи можемо ми використовувати алгоритм градієнтного спуску, щоб знайти мінімум за допомогою функції втрат?
Відповіді:
Перехресна ентропія зазвичай використовується для кількісної оцінки різниці між двома розподілами ймовірностей. Зазвичай "справжній" розподіл (той, який ваш алгоритм машинного навчання намагається зрівняти) виражається в термінах одноразового розподілу.
Наприклад, припустимо, що для конкретного навчального екземпляру мітка є 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.
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 , яка насправді є природним журналом; це не має значення.
Коротше кажучи, перехресна ентропія (СЕ) - це міра того, наскільки віддалене ваше передбачуване значення від справжньої мітки.
Хрестик тут стосується обчислення ентропії між двома або більше ознаками / справжніми мітками (наприклад, 0, 1).
А сам термін ентропія відноситься до випадковості, тому його велике значення означає, що ваш прогноз далекий від реальних міток.
Тож ваги змінюються, щоб зменшити СЕ і, отже, нарешті призводить до зменшення різниці між прогнозуванням та справжніми мітками і, отже, кращою точністю.
Додаючи до вищезазначених постів, найпростіша форма перехресної ентропії відома як бінарна перехресна ентропія (використовується як функція втрат для двійкової класифікації, наприклад, з логістичною регресією), тоді як узагальнена версія є категоріально-перехресною ентропією (використовується як функція втрат для багатокласних задач класифікації, наприклад, з нейронними мережами).
Ідея залишається незмінною:
коли обчислена за моделлю (softmax) ймовірність класу стає близькою до 1 для цільової мітки для навчального екземпляра (представленого з одним гарячим кодуванням, наприклад,), відповідні втрати CCE зменшуються до нуля
в іншому випадку вона збільшується, оскільки передбачувана ймовірність, що відповідає цільовому класу, стає меншою.
Наступний малюнок демонструє концепцію (зауважте на малюнку, що BCE стає низьким, коли обидва значення y та p високі або обидва вони низькі одночасно, тобто існує згода):
Перехресна ентропія тісно пов’язана з відносною ентропією або KL-дивергенцією, яка обчислює відстань між двома розподілами ймовірностей. Наприклад, між двома дискретними pmfs співвідношення між ними показано на наступному малюнку: