Розрахуйте різницю Куллбека-Лейблера на практиці?


15

Я використовую KL Розбіжність в якості запобіжного несходства між 2 і .P Qp.м.f. ПQ

=-P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi))

DКL(П||Q)=i=1Nln(ПiQi)Пi
=-П(Хi)лн(Q(Хi))+П(Хi)лн(П(Хi))

Якщо ми можемо легко обчислити, що P ( X i ) l n ( Q ( X i ) ) = 0 P ( X i ) l n ( P ( X i ) ) = 0

П(Хi)=0
П(Хi)лн(Q(Хi))=0
П(Хi)лн(П(Хi))=0

Але якщо і як обчислитиQ ( X i ) = 0 P ( X i ) l n ( Q ( X i ) )

П(Хi)0
Q(Хi)=0
П(Хi)лн(Q(Хi))

Щоб врятувати всіх інших на деякий час, дивлячись на те, що ви мали на увазі, ви можете змінити на зі знаком "\ ne"П(Хi)!=0П(Хi)0

Крім того, ви маєте на увазі, що для всіх ? У цьому випадку розбіжність KL не визначається, оскільки не є функцією ймовірності (вони повинні дорівнювати 1 над підтримкою). Q(Хi)=0ХiQ

@Matthew Спасибі, виправлено. Я випадково дотримувався звички кодування.
smwikipedia

@Matthew для деяких , не для всіх. Я розглядаю шляхи вирішення на основі і на тому ж наборі результатів і додаю невеликий псевдолік , скажімо 0,001, для результатів, які не з’являються. Це може уникнути нульових імовірностей. Але я не впевнений, чи є якісь побічні ефекти. Q(Хi)=0ХiПQ
smwikipedia

Відповіді:


15

Ти не можеш і ні. Уявіть, що у вас є випадкова величина розподілу ймовірностей Q. Але ваш друг Боб вважає, що результат походить від розподілу ймовірностей P. Він створив оптимальне кодування, яке мінімізує кількість очікуваних бітів, які йому потрібно буде використати, щоб сказати вам результат. Але, оскільки він сконструював кодування з P, а не з Q, його коди будуть довші, ніж потрібно. KL-дивергенція вимірює, наскільки довші будуть коди.

Тепер скажемо, що у нього є монета, і він хоче сказати вам послідовність результатів, які він отримує. Оскільки голова і хвіст однаково вірогідні, він дає їм і 1-бітні коди. 0 для голови, 1 для хвоста. Якщо йому дістанеться хвіст, він може надіслати 1 1 0 1. Тепер, якщо його монета приземлиться на край, він не зможе вам сказати! Жоден код, який він надсилає вам, не працював. У цей момент KL-дивергенція руйнується.

Оскільки KL-дивергенція виходить з ладу, вам доведеться або використовувати інший захід, або інші розподіли ймовірностей. Що ви дійсно повинні робити, залежить від того, що ви хочете. Чому ви порівнюєте розподіли ймовірностей? Звідки беруться ваші ймовірні розподіли, чи оцінюються вони за даними?

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

Спочатку я рекомендую міру симетричної спорідненості. Для цього додатка звучить, що A настільки ж схожий на B, як B схожий на A.

Ви пробували міру подібності косинусу? Він досить поширений в NLP.

Якщо ви хочете дотримуватися KL, одне, що ви можете зробити, - це оцінити ймовірність функції з обох документів, а потім побачити, скільки зайвих біт вам знадобиться в середньому для кожного документа. Тобто (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2


Чудове пояснення, але трохи заплутане: те, як ви описуєте перший абзац, чи не KL (Q || P)?
Юрген

8

На практиці я також зіткнувся з цим питанням. У цьому випадку я виявив, що заміщення значення 0 на дуже невелике число може спричинити проблеми. Залежно від значення, яке ви використовуєте, ви введете "зміщення" у значення KL. Якщо ви використовуєте значення KL для тестування гіпотез чи іншого використання, яке передбачає поріг, то це невелике значення може змістити ваші результати. Я виявив, що найефективнішим способом вирішити це є лише розглянути обчислення KL на послідовному просторі гіпотез X_i, де BOTH P і Q ненульові. По суті, це обмежує домен KL до домену, де визначено обидва, і не дає проблем при використанні KL для тестування гіпотез.


Спасибі. Це цікава пропозиція. В основному, він також намагається базувати P і Q на одному і тому ж наборі результатів. Я спробую це.
smwikipedia

Якщо я обчислюю KL для підмножини даних, де і P, і Q не дорівнюють нулю, чи потрібно повторно нормалізувати P і Q над цим підмножиною? Або просто використовувати початкове значення ймовірності? Я думаю, що повинен. Інакше P і Q все ще не на одній базі.
smwikipedia

Я просто спробував з вашою пропозицією. P розподіляє більше 10К результатів, а Q розподіляє і понад 10К результатів. Але P і Q мають лише 3K результатів. Якщо я використовую лише загальні результати 3K для оцінки різниці між P і Q, я не вважаю це розумним. Тому що ми ігноруємо багато речей. І btw, результат при такому підході сильно відрізняється від того, що я отримую, додавши невелику кількість (або псевдорахунок).
smwikipedia

Додайте трохи контексту, я працюю над експериментом NLP. У мене є кілька категорій документів, і я хочу розповісти, наскільки близька кожна пара категорій пов'язана між собою.
smwikipedia

5

Qi=0iQiQiQП

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

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