私の質問はエントロピーに関するものです。Niyaz が投稿した説明を何度か読みました。まだ概念が完全に理解できていないので、質問させていただきます。いくつかのテストを実行した .dll ファイルがあり、結果の 1 つは 6.46 (パックされていない) のエントロピー値でした。私はそれが何を意味するのかを正確に理解するのに苦労しています。私はパックされていない部分を理解していますが、エントロピーの値のスケールを見たことがないので、6.46の値は理解していません. 私はおそらくこれについて正しく考えていないので、助けていただければ幸いです。ありがとう...
2 に答える
このコンテキストでは、エントロピーはおそらく、データのバイトあたりのエントロピーのビット数で測定されます。8 は完全にランダムで、0 は完全に予測可能です。
実際には、これは DLL ファイルをおそらく初期サイズの約 80% (6.46 / 8) まで圧縮できることを意味します。
エントロピーの定義は次のとおりです。
どこ:
a
ファイル内の可能なすべての文字を示し、P(A)
- この文字の確率 (出現回数をファイルサイズで割った値に等しい)
対数の底はエントロピーの単位を定義します。2 の場合、エントロピーはビット単位で測定されます。
エントロピーは不確実性の尺度です。同じ文字で構成されるファイルを想像してください。次に、P(a) = 1 (文字が 1 つしかないため) であり、エントロピーは次のようになります。
0 ビットのエントロピーは、不確実性がなく、完全に予測可能であることを意味します。一方、各文字が異なるファイルを想像してみてください。P には 256 の値があり、それぞれが 1/256 に等しくなります。エントロピーは次のようになります。
8 ビットのエントロピーとは、完全な不確実性、予測可能性がないことを意味します。
エントロピーは、エントロピーベースのアルゴリズムの圧縮率と相関しています。ダスクワフが言ったように、6.46ビットのエントロピーは、ファイルがエントロピーベースのアルゴリズムによって元のサイズの約4/5に圧縮される可能性があることを意味します。