Моделювання ймовірності 1 з 2 ^ N з менш ніж N випадковими бітами


31

Скажіть, мені потрібно моделювати такий дискретний розподіл:

P(X=k)={12N,if k=1112N,if k=0

Найбільш очевидний спосіб - намалювати випадкових біт і перевірити, чи всі вони дорівнюють (або ). Однак теорія інформації говоритьN01

S=iPilogPi=12Nlog12N(112N)log(112N)=12Nlog2N+(112N)log2N2N10

Таким чином, мінімальна кількість необхідних випадкових бітів фактично зменшується, коли стає великим. Як це можливо?N

Будь ласка, припустіть, що ми працюємо на комп’ютері, де біти є вашим єдиним джерелом випадковості, тому ви не можете просто скинути упереджену монету.


Це тісно пов'язане з теорією кодування та складністю Колмогорова, якщо ви шукаєте ключові слова, щоб копати глибше. Техніка підрахунку повторюваних прогонів того ж біта, який DW згадує нижче, з'являється багато - ці конспекти лекцій стосуються його, наприклад, people.cs.uchicago.edu/~fortnow/papers/kaikoura.pdf
Брайан Гордон

Відповіді:


28

Ух, чудове запитання! Дозвольте спробувати пояснити резолюцію. Це зробить три чіткі кроки.

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

З вашої вибірки процедури, максимальне число випадкових бітів , необхідних в розіграші N бітів, але середнє число бітів , необхідних на 2 біта (середнє геометричне розподіл з p=1/2 ) - це тому , що є 1/2 ймовірність того, що вам потрібно тільки 1 біт (якщо перший біт виявляється 1), а 1/4 ймовірність того, що вам потрібно тільки 2 біта (якщо перші два біта виявляються 01), A 1/8 ймовірність того, що вам знадобляться лише 3 біти (якщо перші три біти виявляються 001) тощо.

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

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

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

Дозвольте дати вам інтуїцію. Припустимо, ви записали результат вибірки m малюнків, де m дійсно великий. Тоді результат можна вказати як m бітну рядок. Цей m бітовий рядок буде здебільшого 0, з ним декілька 1: зокрема, він в середньому матиме приблизно m/2N 1 (може бути більше або менше, ніж це, але якщо m досить великий, зазвичай це число буде близько до цього). Довжина зазорів між 1-х випадкова, але зазвичай буде десь розпливчасто поблизу 2N(легко може бути вдвічі меншим або вдвічі більшим, але навіть такого порядку). Звичайно, замість того, щоб записати весь m бітовий рядок, ми могли б записати його більш лаконічно, записавши список довжин прогалин - який містить всю ту саму інформацію, у більш стисненому форматі. На скільки ще лаконічніше? Ну, нам зазвичай потрібно близько N біт, щоб представити довжину кожного проміжку; і буде близько m/2N зазорів; тож нам знадобиться загалом близько mN/2N біт (може бути трохи більше, може бути трохи менше, але якщо m досить великий, зазвичай це буде близько до цього). Це набагато коротше, ніж аm -бітна рядок

І якщо є спосіб записати рядок це лаконічно, можливо, це буде не надто дивно, якщо це означає, що існує спосіб генерувати рядок з кількістю випадкових бітів, порівнянних з довжиною рядка. Зокрема, ви випадково генеруєте довжину кожного проміжку; це вибірки з геометричного розподілу з p=1/2N , і що може бути зроблено з приблизно N випадкових бітів в середньому (НЕ 2N ). Вам знадобиться близько m/2N iid черпає з цього геометричного розподілу, тому вам знадобиться загалом приблизно Nm/2Nвипадкові біти. (Це може бути невеликий постійний коефіцієнт, більший, але не надто великий.) І зауважте, що це набагато менше, ніж 2m біт.

Отже, ми можемо відібрати вибірку m iid з вашого розповсюдження, використовуючи лише f(m)Nm/2N випадкових бітів (приблизно). Нагадаємо, що ентропія є limmf(m)/m . Таким чином , це означає , що ви повинні очікувати , що ентропія буде (приблизно) N/2N . Це трохи виключається, оскільки вищевказаний розрахунок був ескізним та грубим - але, сподіваємось, він дає вам певну інтуїцію, чому ентропія є такою, яка вона є, і чому все послідовно та розумно.


Ух, чудова відповідь! Але ви могли б детальніше пояснити, чому вибірки з геометричного розподілу з в середньомузаймаєNбіт? Я знаю, що така випадкова величина матиме середнє значення2N, томудля зберіганняпотрібно в середньомуNбіт, але я припускаю, що це не означає, що ви можете генерувати одну зNбіт. p=12NN2NNN
nalzok

@nalzok, Справедливе запитання! Чи можете ви поставити це як окреме запитання? Я можу побачити, як це зробити, але зараз це трохи безладно. Якщо ви запитаєте, можливо, хтось дійде до відповіді швидше, ніж я можу. Підхід, про який я думаю, схожий на арифметичне кодування. Визначте (де X - геометричний rv), потім генеруйте випадкове число r в інтервалі [ 0 , 1 ) і знайдіть i таким, що q ir < q i + 1qi=Pr[Xi]Xr[0,1)iqir<qi+1. Якщо ви запишете біти бінарного розширення один за одним, зазвичай після запису N + O ( 1 ) біт r , я буду повністю визначений. rN+O(1)ri
DW

1
Отже, ви в основному використовуєте зворотний метод CDF для перетворення рівномірно розподіленої випадкової змінної у довільний розподіл у поєднанні з ідеєю, подібною до двійкового пошуку? Мені потрібно буде проаналізувати кількісну функцію геометричного розподілу, щоб бути впевненим, але цього натяку достатньо. Спасибі!
nalzok

1
@nalzok, ах, так, це приємніший спосіб подумати над цим - прекрасний. Дякую, що ви запропонували це. Так, це я мав на увазі.
DW

2

Ви можете подумати про це назад: розгляньте проблему бінарного кодування замість генерації. Припустимо , що у вас є джерело , яке випромінює символи X{A,B} з p(A)=2N , p(B)=12N . Наприклад, якщо N=3 , отримаємо H(X)0.54356 . Отже, (каже нам Шеннон) існує унікальне декодируване двійкове кодування XY, Де Y{0,1} (біти даних), таким чином, що нам потрібно, в середньому, близько 0.54356 біт даних для кожного вихідного символу X .

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

Після того, як вищесказане зрозуміло, якщо припустити, що ми маємо обернене відображення XnYn , і зауваживши, що в межі Шеннона Yn повинна мати максимальну ентропію (1 біт інформації на біт даних), тобто Yn має статистика справедливої ​​монети, тоді у нас є схема генерації: намалюйте n випадкових біт (тут n не має відношення до N ) з справедливою монетою, інтерпретуйте її як вихід Yn кодера, і декодуйте Xn від це. Таким чином XnH(X)<1X

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