次の離散分布をシミュレートする必要があるとします。
最も明白な方法は、ランダムビットを描画し、それらすべてが(または)に等しいかどうかをチェックすることです。しかし、情報理論は言う
したがって、必要なランダムビットの最小数は、Nが大きくなるにつれて実際に減少します。これはどのように可能ですか?
ビットがランダム性の唯一のソースであるコンピューターで実行していると仮定してください。そのため、偏ったコインを投げるだけではいけません。
次の離散分布をシミュレートする必要があるとします。
最も明白な方法は、ランダムビットを描画し、それらすべてが(または)に等しいかどうかをチェックすることです。しかし、情報理論は言う
したがって、必要なランダムビットの最小数は、Nが大きくなるにつれて実際に減少します。これはどのように可能ですか?
ビットがランダム性の唯一のソースであるコンピューターで実行していると仮定してください。そのため、偏ったコインを投げるだけではいけません。
回答:
素晴らしい質問です 解像度を説明してみましょう。3つの異なるステップが必要です。
最初に注意することは、エントロピーが、必要な最大ビット数ではなく、描画ごとに必要な平均ビット数に重点を置いていることです。
あなたのサンプリング手順を用いて、延伸当たりに必要なランダムビットの最大数であるビットが、必要とされるビットの平均数は、(幾何学的分布の平均2ビットの) - Aがあるからですだけ1ビット(最初のビットが1であることが判明した場合)、必要確率(最初の2ビットが01であることが判明する場合)は、2ビットのみを必要とする確率を必要な確率は3ビットのみです(最初の3ビットが001であることが判明した場合)。
2つ目の注意点は、エントロピーが実際に1回の描画に必要な平均ビット数をキャプチャしないことです。代わりに、エントロピーは、この分布からm iid描画をサンプリングするために必要な償却ビット数をキャプチャします。m個のドローをサンプリングするためにf (m )ビットが必要だとします。エントロピーは、m → ∞としてのf (m )/ mの極限です。
3番目に注意する点は、この分布を使用すると、1回の描画を繰り返しサンプリングするのに必要なビット数より少ないビットで、 iid描画をサンプリングできることです。これを回繰り返すまで、1つのサンプルを描画し(平均でランダムな2ビットを取る)、別のサンプルを描画する(平均でさらに2つのランダムビットを使用する)といったように単純に決定したとします。それには、平均で約ランダムビットが必要です。
しかし、2 mビット未満を使用して描画からサンプリングする方法があることがわかりました。信じがたいですが、本当です!
直感を聞かせてください。ドローのサンプリング結果を書き留めたとしますは本当に大きいです。次に、結果をビット文字列として指定できます。このビットの文字列はほとんどが0で、数個の1が含まれます。特に、平均して約 1になります(それよりも大きい場合も小さい場合もありますが、が十分に大きい場合、通常は数それに近くなります)。1の間のギャップの長さはランダムですが、通常は2 Nの近くの漠然とした場所になります。(簡単にその半分または2倍、またはそれ以上になりますが、その程度です)。もちろん、ビット文字列全体を書き留める代わりに、ギャップの長さのリストを書き留めることで、より簡潔に書き留めることができます。これは、同じ情報をより圧縮された形式で保持します。もっと簡潔に?まあ、通常、各ギャップの長さを表すには約ビットが必要です。約ギャップがあります。したがって、合計で約ビットが必要になります(もう少し大きくても少し小さくてもかまいませんが、が十分に大きければ、通常はそれに近い値になります)。それはずっと短いです文字列。
そして、文字列をこれほど簡潔に書き留める方法があれば、それが文字列の長さに匹敵するランダムなビット数で文字列を生成する方法があることを意味するのであれば、おそらく驚くことではないでしょう。特に、各ギャップの長さをランダムに生成します。これは、と幾何分布からのサンプリングされた、それはおおよそで行うことができる平均ランダムビット(しない)。あなたは必要がありますあなたはおおよそ合計で必要になりますので、IIDは、この幾何分布から描くランダムビット。(これは、小さい定数ファクターより大きい可能性がありますが、大きすぎることはありません。)そして、これはビットよりはるかに小さいことに注意してください。
そこで、我々は、サンプリングすることができます IIDだけ使用して、お使いのディストリビューションから引くランダムビットを(おおよそ)。エントロピーであることを想起。したがって、これは、エントロピーが(おおよそ)になることを期待する必要があることを意味します。上記の計算はおおざっぱで粗雑なため、これは少しずれていますが、エントロピーがそれである理由と、すべてが一貫性があり合理的である理由について直感を与えてくれることを願っています。
あなたはこれを逆に考えることができます:生成の代わりにバイナリエンコーディングの問題を考えてください。シンボルを出力するソースがあると仮定します と 、 。たとえば、、 我々が得る . So (Shannon tells us) there is an uniquely decodable binary encoding , where (data bits), such that we need, on average, about data bits for each original symbol .
(In case you are wondering how such encoding can exists, given that we have only two source symbols, and it seems that we cannot do better that the trivial encoding , , , with one bit per symbol, you need to understand that to approximate the Shannon bound we need to take "extensions" of the source, that is, to code sequences of inputs as a whole. See in particular arithmetic encoding).
Once the above is clear, if we assume we have an invertible mapping , and noticing that, in the Shannon limit must have maximum entropy (1 bit of information per bit of data), i.e., has the statistics of a fair coin, then we have a generation scheme at hand: draw random bits (here has no relation with ) with a fair coin, interpret it as the output of the encoder, and decode from it. In this way, will have the desired probability distribution, and we need (in average) coins to generate each value of .