Katakanlah saya perlu mensimulasikan distribusi diskrit berikut:
Cara yang paling jelas adalah menggambar bit acak dan memeriksa apakah semuanya sama dengan (atau ). Namun, kata teori informasi
Jadi jumlah minimum bit acak yang dibutuhkan benar-benar berkurang karena menjadi besar. Bagaimana ini mungkin?
Harap asumsikan bahwa kami menjalankan pada komputer di mana bit adalah satu-satunya sumber keacakan Anda, jadi Anda tidak bisa hanya melemparkan koin bias.
Jawaban:
Wow, pertanyaan bagus! Biarkan saya mencoba menjelaskan resolusi. Itu akan mengambil tiga langkah berbeda.
Hal pertama yang perlu diperhatikan adalah bahwa entropi lebih difokuskan pada jumlah rata - rata bit yang dibutuhkan per undian, bukan jumlah maksimum bit yang dibutuhkan.
Dengan prosedur pengambilan sampel Anda, jumlah maksimum bit acak yang dibutuhkan per imbang adalahN bit, tetapi rata-rata jumlah bit yang diperlukan adalah 2 bit (rata-rata dari distribusi geometris dengan p=1/2 ) - ini karena ada 1/2 probabilitas bahwa Anda hanya perlu 1 bit (jika bit pertama ternyata 1), a 1/4 probabilitas bahwa Anda hanya perlu 2 bit (jika dua bit pertama berubah menjadi 01), seorang 1/8 probabilitas bahwa Anda hanya membutuhkan 3 bit (jika tiga bit pertama berubah menjadi 001), dan seterusnya.
Hal kedua yang perlu diperhatikan adalah bahwa entropi tidak benar-benar menangkap jumlah rata-rata bit yang diperlukan untuk undian tunggal. Sebaliknya, entropi menangkap jumlah bit diamortisasi yang diperlukan untuk sampelm iid menarik dari distribusi ini. Misalkan kita membutuhkan f(m) bit untuk mengambil sampel m ; maka entropi adalah batas f(m)/m sebagai m→∞ .
Hal ketiga untuk dicatat adalah bahwa, dengan distribusi ini, Anda dapat mencicipim iid menarik dengan bit yang lebih sedikit dari yang dibutuhkan untuk berulang kali sampel satu hasil imbang. Misalkan Anda secara naif memutuskan untuk menggambar satu sampel (rata-rata mengambil 2 bit acak), lalu menggambar sampel lain (menggunakan rata-rata 2 bit acak lebih banyak), dan seterusnya, hingga Anda mengulangi ini sebanyak m kali. Itu akan membutuhkan sekitar 2m bit acak rata-rata.
Tapi ternyata ada cara untuk mengambil sampel darim draw menggunakan kurang dari 2m bit. Sulit dipercaya, tapi itu benar!
Biarkan saya memberi Anda intuisi. Misalkan Anda menuliskan hasil penarikan sampelm , di mana m sangat besar. Maka hasilnya dapat ditentukan sebagai string m -bit. Ini m tali-bit akan kebanyakan 0, dengan beberapa 1 di dalamnya: khususnya, rata-rata akan memiliki sekitar m/2N 1 ini (bisa lebih atau kurang dari itu, tetapi jika m cukup besar, biasanya jumlah akan dekat dengan itu). Panjang celah antara 1 adalah acak, tetapi biasanya akan berada di suatu tempat di sekitar 2N (Bisa dengan mudah setengah atau dua kali atau bahkan lebih, tetapi dari urutan besarnya). Tentu saja, alih-alih menuliskan seluruh string m -bit, kita dapat menuliskannya lebih ringkas dengan menuliskan daftar panjang kesenjangan - yang membawa semua informasi yang sama, dalam format yang lebih terkompresi. Seberapa ringkas? Yah, kita biasanya membutuhkan sekitar N bit untuk mewakili panjang setiap celah; dan akan ada sekitar m/2N kesenjangan; jadi kita akan membutuhkan total tentang mN/2N bit (bisa sedikit lebih banyak, bisa sedikit lebih sedikit, tetapi jika m cukup besar, biasanya akan mendekati itu). Itu jauh lebih pendek daripada am -bit string.
Dan jika ada cara untuk menuliskan string ini secara ringkas, mungkin tidak akan terlalu mengejutkan jika itu berarti ada cara untuk menghasilkan string dengan jumlah bit acak yang sebanding dengan panjang string. Terutama, Anda secara acak menghasilkan panjang setiap celah; ini sampel dari distribusi geometris denganp=1/2N , dan yang dapat dilakukan dengan kasar ∼N bit acak rata-rata (tidak2N ). Anda akan membutuhkan sekitarm/2N iid menarik dari distribusi geometrik ini, jadi Anda akan membutuhkan total sekitar∼Nm/2N bit acak. (Ini bisa menjadi faktor konstan kecil yang lebih besar, tetapi tidak terlalu besar.) Dan, perhatikan bahwa ini jauh lebih kecil dari 2m bit.
Jadi, kita dapat mencicipim iid menarik dari distribusi Anda, hanya menggunakan f(m)∼Nm/2N bit acak (kira-kira). Ingat bahwa entropi adalah limm→∞f(m)/m . Jadi ini berarti bahwa Anda harus mengharapkan entropi untuk menjadi (kira-kira)N/2N . Itu sedikit keluar, karena perhitungan di atas tidak jelas dan kasar - tetapi mudah-mudahan itu memberi Anda beberapa intuisi mengapa entropi itu seperti apa adanya, dan mengapa semuanya konsisten dan masuk akal.
sumber
Anda dapat memikirkan ini secara terbalik: pertimbangkan masalah pengkodean biner alih-alih pembuatan. Misalkan Anda memiliki sumber yang memancarkan simbolX∈{A,B} dengan p(A)=2−N , p(B)=1−2−N . Misalnya, jika N=3 , kita mendapatkan H(X)≈0.54356 . Jadi (Shannon memberi tahu kami) ada pengkodean biner yang dapat didekodekan secara unik X → Y , di mana Y ∈ { 0 , 1 }X→Y Y∈{0,1} (bit data), sehingga kita perlu, rata-rata, tentang 0.54356 bit data untuk setiap original simbolX .
(Jika Anda bertanya-tanya bagaimana pengkodean seperti itu bisa ada, mengingat bahwa kami hanya memiliki dua simbol sumber, dan tampaknya kami tidak dapat melakukan yang lebih baik daripada pengkodean sepele,A→0 , B→1 , dengan satu bit per simbol, Anda perlu untuk memahami bahwa untuk memperkirakan batas Shannon, kita perlu mengambil "ekstensi" dari sumber, yaitu, untuk mengurutkan urutan input secara keseluruhan. Lihat dalam pengkodean aritmatika tertentu).
sumber