शैनॉन एन्ट्रॉपी ऑफ़ 0.922, 3 डिस्टिक्ट वैल्यूज़


14

मूल्यों की एक स्ट्रिंग को देखते हुए AAAAAAAABC लॉग आधार में, शैनन Entropy  2 के लिए आता है 0.922 । मैं जो समझता हूं, उसके आधार  2 में शैनन एन्ट्रॉपी राउंडेड है जो कि बाइनरी की न्यूनतम संख्या है, जिसमें से किसी एक मान का प्रतिनिधित्व किया जा सकता है।

इस विकिपीडिया पृष्ठ पर परिचय से लिया गया:

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

तो, एक बिट द्वारा तीन मूल्यों का प्रतिनिधित्व कैसे किया जा सकता है? A1  हो सकता है  , B0  हो सकता है  ; लेकिन आप C प्रतिनिधित्व कैसे कर सकते हैं  ?

पहले ही, आपका बहुत धन्यवाद।

जवाबों:


16

आपके द्वारा गणना की गई एन्ट्रापी वास्तव में विशिष्ट स्ट्रिंग के लिए नहीं है, बल्कि, प्रतीकों के एक यादृच्छिक स्रोत के लिए है जो संभावना 8 के साथ  A बनाता है।810 , औरBऔर Cसंभावना1 केसाथ 110 प्रत्येक, लगातार प्रतीकों के बीच कोई संबंध नहीं है। इस वितरण के लिए गणना की गई एन्ट्रापी,0.922अर्थ है कि आप इस वितरण से उत्पन्न तार का प्रतिनिधित्व नहीं कर सकते हैं, औसतन0.922बिट्स प्रति चरित्रसे कम का उपयोग कर।

एक कोड विकसित करना काफी कठिन हो सकता है जो इस दर को प्राप्त करेगा। * उदाहरण के लिए, हफ़मैन कोडिंग  प्रति वर्ण 1.2 बिट्स के औसत के लिए क्रमशः 0 , 10 और  11 से A , B और  C कोड आवंटित करेगा । यह एंट्रोपी से काफी दूर है, हालांकि अभी भी एक अच्छा सौदा प्रति चरित्र दो बिट्स के अनुभवहीन एन्कोडिंग से बेहतर है। एक बेहतर कोडिंग का कोई भी प्रयास शायद इस तथ्य का फायदा उठाएगा कि एक एकल बी की तुलना में दस ए ए के रन भी अधिक होने की संभावना (संभावना 0.107 ) है  ।1.2A0.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 के रूप में एन्कोड करें। मैंने कहा है कि क्या होता है अगर कोई विषम नहीं है प्रतीकों की संख्या, लेकिन आप बस कुछ मनमाने ढंग से एन्कोडिंग का उपयोग करके अंतिम प्रतीक को एनकोड कर सकते हैं, यह वास्तव में कोई फर्क नहीं पड़ता जब इनपुट लंबा हो।

यह प्रतीकों के स्वतंत्र जोड़े के वितरण के लिए हफ़मैन कोड है, और युवल के उत्तर में n=2 चुनने से मेल खाती है । बड़े n और भी बेहतर कोड (सीमा के अनुसार शैनन एन्ट्रापी की ओर अग्रसर होंगे), जैसा कि उन्होंने उल्लेख किया है।

उपरोक्त एन्कोडिंग के लिए प्रतीक जोड़ी प्रति बिट की औसत संख्या

8108101+38101103+1108104+41101106=1.92
यानी1.92/2=0.96प्रतीक प्रति बिट्स, कि अब तक शैनन से इस तरह के एक सरल एन्कोडिंग के लिए वास्तव में entropy नहीं।


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.

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.