แชนนอนเอนโทรปีของ 0.922, 3 ค่าที่แตกต่าง


14

กำหนดสตริงของค่าB C , นอนส์เอนโทรปีในฐานล็อก  2มาถึง0.922 จากสิ่งที่ฉันเข้าใจในฐาน  2 Shannon Entropy ได้ปัดเศษขึ้นเป็นจำนวนบิตขั้นต่ำในไบนารีเพื่อแสดงค่าเดียวAAAAAAAABC20.9222

นำมาจากการแนะนำในหน้าวิกิพีเดียนี้:

https://en.wikipedia.org/wiki/Entropy_%28information_theory%29

ดังนั้นค่าสามค่าสามารถแทนด้วยหนึ่งบิตได้อย่างไร A  อาจเท่ากับ  1 , B  อาจเป็น  0 ; แต่คุณจะเป็นตัวแทนของ  Cอย่างไร?

ขอบคุณล่วงหน้า.

คำตอบ:


16

เอนโทรปีที่คุณคำนวณไม่ได้มีไว้สำหรับสตริงเฉพาะ แต่สำหรับแหล่งที่มาของสัญลักษณ์แบบสุ่มที่สร้างAพร้อมความน่าจะเป็น  810และBและ Cมีความน่าจะเป็น 110อันโดยไม่มีความสัมพันธ์ระหว่างสัญลักษณ์ต่อเนื่อง เอนโทรปีที่คำนวณได้สำหรับการแจกจ่ายนี้0.922หมายความว่าคุณไม่สามารถแสดงสตริงที่สร้างจากการแจกจ่ายนี้โดยเฉลี่ยน้อยกว่า0.922บิตต่อตัวอักษรโดยเฉลี่ย

มันอาจจะค่อนข้างยากในการพัฒนารหัสที่จะบรรลุอัตรานี้ *ตัวอย่างเช่นการเข้ารหัส Huffman จะจัดสรรรหัส0 , 10และ  11ถึงA , Bและ  Cตามลำดับสำหรับค่าเฉลี่ย1.2  บิตต่ออักขระ นั่นค่อนข้างไกลจากเอนโทรปี แต่ก็ยังดีกว่าการเข้ารหัสที่ไร้เดียงสาของสองบิตต่อตัวละคร ความพยายามในการที่ดีกว่าการเข้ารหัสอาจจะใช้ประโยชน์จากความจริงที่ว่าแม้กระทั่งการทำงานของสิบติดต่อกันใด ๆs มีแนวโน้มที่ (น่าจะเป็น0.107 ) มากกว่าเดียว  BA0.107B


*ปรากฎว่ามันไม่ยากที่จะเข้าใกล้เท่าที่คุณต้องการ - ดูคำตอบอื่น ๆ !


18

นี่คือการเข้ารหัสที่เป็นรูปธรรมที่สามารถเป็นตัวแทนของแต่ละสัญลักษณ์โดยเฉลี่ยน้อยกว่า 1 บิต:

ก่อนอื่นแบ่งสตริงอินพุตให้เป็นคู่ของอักขระที่ต่อเนื่องกัน (เช่น AAAAAAAABC กลายเป็น AA | AA | AA | AA | BC) จากนั้นเข้ารหัส AA เป็น 0, AB เป็น 100, AC เป็น 101, BA เป็น 110, CA เป็น 1110, BB เป็น 111100, BC เท่ากับ 111101, CB เป็น 111110, CC เท่ากับ 111111 ฉันไม่ได้พูดว่าเกิดอะไรขึ้นถ้ามีคี่ จำนวนสัญลักษณ์ แต่คุณสามารถเข้ารหัสสัญลักษณ์สุดท้ายโดยใช้การเข้ารหัสโดยพลการบางอย่างมันไม่สำคัญว่าเมื่ออินพุตยาว

นี่คือรหัส Huffman สำหรับการแจกสัญลักษณ์คู่อิสระและสอดคล้องกับการเลือกn=2ในคำตอบของ Yuval nใหญ่กว่าจะนำไปสู่รหัสที่ดียิ่งขึ้น (ใกล้กับเอนโทรปีของแชนนอนในขีด จำกัด

จำนวนเฉลี่ยของบิตต่อคู่สัญลักษณ์สำหรับการเข้ารหัสข้างต้นคือ

8108101+38101103+1108104+41101106=1.92
1.92/2=0.96


13

D{A,B,C}: if XD then Pr[X=A]=4/5 and Pr[X=B]=Pr[X=C]=1/10.

For each n we can construct prefix codes Cn:{A,B,C}n{0,1} such that

limnEX1,,XnD[Cn(X1,,Xn)]n=H(D).

In words, if we encode a large number of independent samples from D, then on average we need H(D)0.922 bits per sample. Intuitively, the reason we can do with less than one bit is that each individual sample is quite likely to be A.

This is the real meaning of entropy, and it shows that computing the "entropy" of a string A8BC is a rather pointless exercise.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.