コンピュータプログラミングにおける「ビット」の概念は、情報理論における「ビット」の概念と似ていますか?


7

今日まで、私は1ビットが変数、つまり1(高)または0(低)のいずれかの値を保持できるメモリ内のスペースであることを知っていました。これは、コンピュータプログラミング、マイクロプロセッサ、DATAバスなどを研究して学んだ概念です。

しかし、情報理論のコースを開始した後、ビットがメッセージ内のシンボルの情報内容として表現されていることがわかりました。これは、シンボルの出現確率の逆数の対数(底2)を使用して計算されます。

これら2つの概念は同じですか?一方、1ビットは、0または1を格納できる変数です。一方、1ビットは、発生確率が0.5の2つのシンボルの1つに関連する不確実性です。では、コンピュータプログラミングまたはASCIIコードの1ビットは、ソースの情報コンテンツまたは情報理論の1ビットを意味するのでしょうか。

少し編集します。ここで、このトピックを理解するときに問題が1つあります。英語のアルファベットのデータ転送では、ASCIIコードを使用する場合、基本的に各シンボルを8ビットで表します。それがaの場合は00000000、bの場合は00000001であるとします。したがって、基本的には、各シンボルに8つの量子化レベルを割り当てています。

ただし、情報理論が機能するようになると、各シンボルの確率が考慮されます。「E」は最高の頻度を持ち、「Z」は最低の頻度を持ちます。つまり、平均的な情報コンテンツは3ビットまたは4ビットに下ります。

私の本は、「エントロピーまたは平均情報コンテンツは、歪みのない各サンプルを表現するために必要な最小の平均ビット数です」と言います。この場合、効率的なデータ転送のために、各シンボルに対して最大4つの量子化レベルを作成していますか?なぜなら、平均して4ビットの情報を運ぶからです。もしそうなら、情報理論のビットは、コンピュータプログラミング、データ転送、ASCIIコードなどのビットと同じではありませんか?

あなたはおそらく私がここで明らかにnoobであることを理解します:p


MBazの答えに1つ追加すべきことは、情報理論における「ビット」のスケーリングは、コンピュータメモリの「ビット」と同じであるということです。Shannon ITには他の情報単位があります。乗算するものは何でもI(m)=Clog(P(m))関数。もしC=1log(2) 対数関数をスケーリングし、 I(m)ビット単位です。
robert bristow-johnson

@ robertbristow-johnson、それは良い点です。
MBaz

1
ハフマンコーディングは、頻繁なシンボルに割り当てるビットを少なくすることで、情報理論の限界に到達しようとします。真の周波数は不明であり、ビット数は整数のままでなければならないため、これはおおよそのプロセスです。算術符号化の方が優れており、シンボルあたりのビット数を小数にしてパックできます。
Yves Daoust、2015年

頻度(たとえば、テキストファイルの場合は文字の頻度)、カウントによって知ることできます。また、ビット数が小数の異なるシンボルを、整数ビットに近い単一の複合メッセージにまとめることもできます。しかし、それは常に理論的限界よりも効率的ではありません。
robert bristow-johnson、2015

回答:


7

それらは同じではありませんが、関連しています。特に、コンピュータのメモリを見るとM 「コンピュータ」ビット。各ビットはランダムで、他のすべてのビットから独立していると見なすことができ、ゼロのおよそ50%がある場合、メモリもおよそ保持します。 M 「情報理論」ビット。

もちろん、これは多くの場合当てはまりません。コンピュータのビットは通常相関し、一様にランダムではありません。これが圧縮できる理由です。LZW(情報理論の用語では「ソースコーダー」)などのコンプレッサープログラムは、ある意味で、各コンピュータービットに1つの情報ビットを保持させることで機能します。

追加用に編集:この例では、区別が明確になる場合があります。2つの出力を持つメモリのないソースを考えます。m1=000 そして m2=001、それぞれの確率は0.5です。明らかに、各メッセージの情報は1(情報)ビットですが、その長さは3(コンピュータ)ビットです。ハフマンアルゴリズムなどのソースコーダーは、メッセージをc1=0 そして c2=1、ソース出力を圧縮します。この例は、ASCIIエンコードされたテキストを生成するソースに簡単に外挿できます。

一般的に書かれた言語、特に英語の場合、モデルがないため、実際のソースエントロピーが何であるか誰も知らないことに注意してください。これが、大きなテキスト本文を最適に圧縮するためのコンテストがある理由です。英語に最適な圧縮アルゴリズムが何であるか、誰も本当に確信していません。


MBazに感謝します。しかし、これは私がこのトピックを理解するのに苦労していることを見つけている1つのものです。英語のアルファベットのデータ転送では、ASCIIコードを使用する場合、基本的に各シンボルを8ビットで表します。それがaの場合は00000000、bの場合は00000001であるとします。したがって、基本的には、各シンボルに8つの量子化レベルを割り当てています。ただし、情報理論が機能するようになると、各シンボルの確率が考慮されます。「E」は最高の頻度を持ち、「Z」は最低の頻度を持ちます。つまり、平均的な情報コンテンツは3ビットまたは4ビットに下がるということですね。
ベンジャミン、2015年

@benjamin、そうです、それがテキストが非常に圧縮できる理由です。それを表すために使用される(コンピューター)ビットの数よりもはるかに少ない情報が含まれています。
MBaz 2015年

こんにちは、コメントが長くなりすぎたので、実際に回答セクションにコメントを投稿しました。削除するのを忘れたに違いありません。ところで、基本的に、テキストシンボルには3〜4ビットの情報が含まれていますが、転送には8ビットを使用します。したがって、それらには無用のビットまたは冗長性が含まれています。したがって、効率的なデータ転送のために、少ないビットを使用してエンコードし、圧縮することができます。つまり、より少ない量子化レベルを作成してエンコードすることができます。以前は8つの量子化レベルを作成しましたが、現在は4つの量子化レベルで十分です。
ベンジャミン、2015年

1つの量子化レベルは1桁の2進数です。これで、使用できる量子化レベルが少なくなるか、2進数ビットが少なくなります。では、2進数のビットと量子化のビットは基本的に同じものと考えていませんか?当時は、8ビットを使用して1つのシンボルを送信していました。しかし、シンボルが平均してわずか4ビットの情報の価値があることを知っています。したがって、4ビットの情報を伝送するため、4つの量子化レベルまたは4つの2進数ビットを使用して送信します。実際、私は自分でホフマンコーディングについて少し学習しようとしましたが、ここで私は本当に行き詰まりました。
ベンジャミン、2015年

@benjamin、あなたはここで正しい方向に進んでいると思います。このように考えると、テキスト(または任意のコンピューターファイルや日付)が完全に圧縮されると、その中のすべてのコンピュータービットが1つの情報ビットを持ちます。
MBaz

2

ビットは測定の単位であり、複数の量はビットで測定されます。プログラミングと情報理論が少し異なることを意味するわけではありません。メモリと情報の内容は、概念的に異なる量を表すということです。

たとえば、「123456」というパスワードを使用できます。UTF-8でエンコードする場合、6 * 8 = 48ビットのメモリが必要です。実世界では、その情報内容は約10ビットです。ビットはどちらの場合も同じことを意味し、測定される量は異なります。パスワードを圧縮すると、必要なメモリ量は減少しますが、情報の内容は変わりません。

1つの類推:重力や電磁力などの物理量は両方ともニュートンで測定されますが、異なるタイプの相互作用を表します。ニュートンの単位はどちらの場合も同じ考えを表すことが経験的にわかります。重力と電磁力は互いに釣り合うことができます(磁気浮上)。

それが役に立てば幸いです:)


0

データバスでは、理論的には情報理論が言うよりも上手くいくことができます。私は、6ビットのワイヤーを8ビット並列で送信できる回路を構築する方法を知っています。これには、ダイオードとプルアップ/ダウン抵抗を使用して、デジタルワイヤの3つの非燃焼状態をすべて使用して情報を伝達するトリックが含まれます。6行の3つの状態で、729の可能な状態を取得します。これにより、EOF、INT、CLKを伝送し、メインチャネルで切断され、まだ十分なスペースがあります(これは、729状態のうち518状態のみを使用します)。


3
これで、チャネルを再定義してメモリを追加するだけです;)
ブライトスター

1
トレバーが言ったこと。あなたは暗黙的に「情報理論家が」ちょうどHまたはLのいずれかの1つの情報を送信するために、すべてのシンボル持続時間後にチャネルを使用することを前提としていますが、状態を追加する場合は、同じ:)ではない何かをやっている
マーカス・ミュラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.