8

エントロピー式についての私の理解では、データを表すために必要な最小ビット数を計算するために使用されるということです。通常、定義するときは別の言い方をしますが、以前の理解は私が今まで頼っていたものです。

これが私の問題です。100 個の「1」の後に 100 個の「0」が続くシーケンスがあるとします = 200 ビット。アルファベットは {0,1}、エントロピーの底は 2 です。シンボル "0" の確率は 0.5、"1" は 0.5 です。したがって、エントロピーは 1 または 1 ビットで 1 ビットを表します。

ただし、100 / 1 / 100 / 0 のようなものでランレングス エンコードすることができます。出力するビット数の後にビットが続きます。データよりも小さい表現を持っているようです。特に、100 をはるかに大きな数に増やした場合。

私が使用している: http://en.wikipedia.org/wiki/Information_entropy現時点での参照として。どこで私は間違えましたか?シンボルに割り当てられた確率ですか?私はそれが間違っているとは思わない。それとも、圧縮とエントロピーの関係を間違えたのでしょうか? 他に何か?

ありがとう。

編集

いくつかの回答に続いて、私のフォローアップは次のとおりです。メッセージの特定のインスタンスにエントロピー式を適用して、その情報コンテンツを見つけようとしますか? メッセージ「aaab」を取り上げて、エントロピーが ~0.811 であると言うのは有効でしょうか? はいの場合、エントロピー式を使用して 1 と 0 が n 回繰り返される 1...10....0 のエントロピーは何ですか。答えは1ですか?

はい、入力シンボルのランダム変数を作成し、メッセージに基づいて確率質量関数を推測していることを理解しています。私が確認しようとしているのは、エントロピー式がメッセージ内のシンボルの位置を考慮していないということです。

4

4 に答える 4

7

それとも、圧縮とエントロピーの関係を間違えたのでしょうか?

あなたはかなり近いですが、この最後の質問は間違いがどこにあったかです. 何かを元の表現よりも小さい形式に圧縮できる場合は、元の表現に少なくともある程度の冗長性があったことを意味します。メッセージの各ビットは、実際には 1 ビットの情報を伝えていませんでした。

冗長データはメッセージの情報コンテンツに寄与しないため、エントロピーも増加しません。たとえば、値「0」のみを返す「ランダム ビット ジェネレータ」を想像してみてください。これでは何の情報も伝わりません!(実際には、1 種類のシンボルのみで構成されるバイナリ メッセージは、エントロピー式でゼロによる除算が必要になるため、未定義の量の情報が伝達されます。)

対照的に、多数のランダムなコイン投げをシミュレートした場合、このメッセージのサイズを大幅に縮小することは非常に困難です。各ビットは、1 ビットに近いエントロピーに寄与します。

データを圧縮すると、その冗長性が抽出されます。引き換えに、このデータを圧縮および解凍する方法を知っているスキームを考案する必要があるため、1 回限りのエントロピーの代償を支払う必要があります。それ自体が何らかの情報を必要とします。

ただし、100 / 1 / 100 / 0 のようなものでランレングス エンコードすることができます。出力するビット数の後にビットが続きます。データよりも小さい表現を持っているようです。特に、100 をはるかに大きな数に増やした場合。

要約すると、データのエンコードをのデータよりも小さくするスキームを考案できるという事実は、重要なことを示しています。つまり、元のデータにはほとんど情報が含まれていなかったということです。


参考文献

いくつかの例を使用して任意の数字列のエントロピーを正確に計算する方法など、これのより完全な処理については、この短いホワイトペーパーを確認してください。

于 2009-03-16T16:37:49.037 に答える
6

コルモゴロフ複雑度を見てみましょう

情報を失わずに文字列を圧縮できるビットの最小数。これは、ユニバーサルチューリングマシンによって与えられる、固定されているがユニバーサルな解凍スキームに関して定義されています。

また、特定のケースでは、アルファベット {0,1} に限定しないでください。あなたの例では {0...0, 1...1} (何百もの 0 と何百もの 1) を使用します

于 2009-03-16T16:25:36.083 に答える
4

ジョン・フェミネラは正しかったが、もっと言いたいことがあると思う。

シャノン エントロピーは確率に基づいており、確率は常に見る人の目にあります。

あなたは、1 と 0 の可能性が等しい (0.5) とおっしゃいました。その場合、100 個の 1 の後に 100 個の 0 が続く文字列の確率は 0.5^200 であり、その -log(base 2) は予想どおり 200 ビットです。ただし、その文字列のエントロピー (シャノン用語で) は、その情報コンテンツにその確率を掛けたもの、つまり 200 * 0.5^200 であり、それでも非常に小さい数値です。

これは重要です。文字列を圧縮するためにランレングス コーディングを行う場合、この文字列の場合、長さが短くなりますが、2^200 文字列全体で平均するとうまくいかないからです。運が良ければ、平均して約 200 になりますが、それ以下になることはありません。

一方、元の文字列を見て、それを生成した人がもっと似たようなものを生成する可能性が高いほど印象的であると言う場合、その確率は 0.5^200 よりも大きいと言っているので、別の文字列を作成しています。文字列の生成元の元の確率構造に関する仮定、つまり 200 ビットよりも低いエントロピーを持つという仮定。

個人的には、特にコルモゴロフ (アルゴリズム) 情報を調べると、このテーマは非常に興味深いと思います。その場合、文字列の情報内容を、それを生成できる最小のプログラムの長さとして定義します。これは、ソフトウェア エンジニアリングと言語設計に関するあらゆる種類の洞察につながります。

ご質問ありがとうございます。

于 2009-03-21T01:33:10.510 に答える
4

あなたのエンコーディングはこの例で機能しますが、同様に有効なケースを考えることができます: 010101010101... としてエンコードされます 1 / 0 / 1 / 1 / ...

エントロピーは、病的な例だけでなく、特定のアルファベットで構築できるすべての可能なメッセージにわたって測定されます!

于 2009-03-16T16:49:09.990 に答える