4 info theory
Post on 11-Jun-2015
2.096 Views
Preview:
TRANSCRIPT
1
前回の練習問題2元ハフマン符号を構成せよ平均符号長を求めよ A
BCDEFGH
確率0.3630.1740.1430.0980.0870.0690.0450.021
1.000
0.637
0.359 0.278
0.185 0.135
0.066
0.363A
0.174B
0.143C
0.098D
0.087E
0.069F
0.045G
0.021H
01
0 100 110 1010 1011 1110 11110 11111
0.363×1+0.174×3+...+0.021×5=2.660
2
前回の練習問題4元ハフマン符号を構成せよ
ABCDEFGH
確率0.3630.1740.1430.0980.0870.0690.0450.021
確率の小さな4つの木を併合すれば良い?⇒ 4個未満の子を持つ節点が存在するかも⇒ 確率 0 のダミー通報を入れて考える
?
次数 a の完全木 ... 葉の数は (a – 1)k + 1 ⇒ 2 個のダミーを加え,通報数を 10 = (4 – 1)3 +1 に
0.363A
0.174B
0.143C
0.098D
0.087E
0.069F
0.045G
0.021H
a b c da db dc dda ddb
0*
0*
0.0660.320
1.000
a b cd
3
本日の講義ハフマン符号の性能と限界ハフマン符号化の拡張
ブロック符号化と平均符号長情報源符号化定理
情報源符号化の限界非等長ブロックハフマン符号化
ランレングス符号化
4
平均符号長について情報源符号化に求められる性質:
瞬時復号可能であること(自動的に一意復号可能となる)平均符号長ができるだけ小さいこと
⇒ ハフマン符号が有力候補
瞬時復号可能な符号のクラス
一意復号可能な符号のクラス
ハフマン符号
ハフマン符号は,どれくらい「良い」符号なのか?
⇒ 平均符号長の限界定理
5
平均符号長の限界定理定常情報源 S から発生する通報を一個ずつ,瞬時復号可能な符号 C により符号化することを考える通報は M 通り,各通報の発生確率は p1, ..., pM
[ 定理 ]
任意の符号について,平均符号長は必ず L H1(S) となる
... どんなに効率的でも,平均符号長は1次エントロピー以下
平均符号長が L < H1(S) + 1 となる符号を構成できる
... 平均符号長が1次エントロピーに迫る符号を作ることが可能
6
シャノンの補助定理定理の証明にあたり,補助定理(補題)をひとつ導入(シャノンの補助定理, Shannon’s lemma )
[ 補題 ] q1 + ... + qM 1 を満たす任意の正数 q1, ..., qM に対し,
))((loglog 11
21
2 SHppqpM
iii
M
iii
等号成立は, p1 = q1, ..., pM = qM のとき,かつそのときのみ.
7
0
)1(2log
1)(
2log1
)(2log
1)1(
2log
log2log
logloglog
111
11
112
12
12
M
ii
e
M
ii
M
ii
e
M
iii
e
M
i i
i
e
i
M
i i
ie
e
iM
i i
ii
M
iii
M
iii
qqp
qpp
qp
p
qp
p
qpppqp
シャノンの補助定理の証明
証明:不等式の左辺– 右辺を考えると,
M
iii
M
iii ppqp
12
12 loglog
y = x – 1
1O
y = logex
(証明終了)
8
符号長限界定理の証明(前半)C の符号語長を l1, ..., lM とし, qi = 2–li とおく.クラフトの不等式より
.122 11
MMll qq
li = – log2qi なので,平均符号長は
.log1
21
M
iii
M
iii qplpL
シャノンの補助定理を用いて,
).(loglog 11
21
2 SHppqpLM
iii
M
iii
等号成立は, p1 = q1, ..., pM = qM のとき,かつそのときのみ
(前半証明終了)
9
符号長限界定理の証明(後半)以下の不等式を満たすよう,整数 li を定める.
.1loglog 22 iii plp
これより 2–li 2log pi =pi であり,
.1221
1
M
ii
Mll p
したがって l1, ..., lM はクラフトの不等式を満足し,
この符号長を持つ(瞬時に復号可能な)符号を構成可能.この符号の平均符号長は
.1)(log)1log( 111
21
21
SHppppplpM
ii
M
iii
M
iii
M
iii
(後半証明終了)
10
符号長限界定理とハフマン符号[ 定理 ] (再掲)
任意の符号について,平均符号長は必ず L H1(S) となる平均符号長が L < H1(S) + 1となる符号を構成できる
ハフマン符号では,平均符号長が,必ず L < H1(S) + 1となる...実際には,もっと強い証明が可能
ハフマン符号よりも平均符号長の小さな瞬時符号は存在しない(ハフマン符号は コンパクト符号 (compact code)である)
証明は,符号木の大きさに関する帰納法による(以下略).
11
ハフマン符号とブロック化ハフマン符号 ... 一個の通報を,一個の符号語に変換する
平均符号長は,かならず1以上となる2元情報源の符号化には向かない
A
0
B
10
A
0
C
11
C
11
A
0
通報AB
平均符号長
確率0.80.2
C1
01
1.0
C2
10
1.0
複数の通報をまとめて符号化(ブロック符号化)すると ...
通報あたりの平均符号長を1以下にできるかも2元情報源の符号化にも利用可能 A B
10
A C C
1101
A
01
12
ブロック符号化の例(1)
左表のとおりハフマン符号化をすると,平均符号長は
0.6×1 + 0.3×2 + 0.1×2 = 1.4
ABC
確率0.60.30.1
符号語0
1011
AAABACBABBBCCACBCC
確率0.360.180.060.180.090.030.060.030.01
符号語0
10011001011110
111101101
111110111111
長さ2のブロックを考えるAA の発生確率 = 0.6×0.6=0.36 ....
左表のとおりハフマン符号化をすると,平均符号長は
0.36×1 + 0.18×3 + ... + 0.01×6 = 2.67
通報一個当たりでは, 2.67 / 2 = 1.335
⇒ 少し効率が良くなった
13
ブロック符号化の例(2-1)
平均符号長は0.8×1 + 0. 2×1 = 1.0A
B
確率0.80.2
符号語01
AAABBABB
確率0.640.160.160.04
符号語0
10110111
長さ2のブロックを考えるAA の発生確率 = 0.8×0.8=0.64 ....
平均符号長は0.64×1 + 0.16×2 + ... + 0.04×3 = 1.56
通報一個当たりでは, 1.56 / 2 = 0.78
⇒ 2元情報源でも,効率改善
14
ブロック符号化の例(2-2)長さ3のブロックを考える
AAA の発生確率 = 0.83=0.512 ....
平均符号長は0.512×1 +... + 0.008×5 = 2.184
通報一個当たりでは, 2.184 / 3 = 0.728
AAAAABABAABBBAABABBBABBB
確率0.5120.1280.1280.0320.1280.0320.0320.008
符号語0
100101
11100110
111011111011111
ブロック長123:
一通報あたり平均符号長1.0
0.780.728
:
ブロック長を大きくすると,一通報あたり平均符号長は小さくなる(効率が良くなる)
15
ブロック符号の平均符号長ブロック長を大きくすると,一通報あたり平均符号長は小さくな
る⇒ どこまで小さくなるのか?
n 個単位でブロック化された通報= n 次拡大情報源 Sn の通報1個⇒ 平均符号長の限界定理が適用できる!
ブロック符号の平均符号長を Ln とすると, H1(Sn) Ln < H1(Sn)+1.
一通報当たりの平均符号長に換算すると ...
nnSH
n
L
nSH n
nn 1)()( 11
16
シャノンの情報源符号化定理
H1(Sn) / n は,情報源 S の n 次拡大エントロピーn → ∞ のとき,
H1(Sn) / n → H(S)... 情報源 S の極限エントロピー1 / n → 0
[ シャノンの情報源符号化定理 ]
情報源 S から発生する通報は,一通報あたりの平均符号長が
H(S) L < H(S) + でででででででででででででででででで
nnSH
n
L
nSH n
nn 1)()( 11
17
情報源符号化定理の意味するところ情報源 S から発生する通報は,一通報あたりの平均符号長がH(S) L < H(S) + でででででででででででででででででで
ブロック長を長くしてハフマン符号を使えば,効率的にはベストどれだけ頑張っても,極限エントロピーの壁は越えられない
AB
確率0.80.2
符号語01
ブロック長123::
一通報あたり平均符号長1.0
0.780.728
::
0.723 + H(S) = 0.723
18
ブロック符号化法の実用性効率面からは,ハフマンブロック符号化法が最良な方法
ブロック長を大きくすれば,いくらでも理論限界値に近づける
実用面から考えると,ハフマンブロック符号化法にも問題あり通報の発生確率を,あらかじめ知っておく必要がある(⇒ 次回講義で触れる予定)符号の定義(通報と符号語の対応表)が巨大になる
対応表1行を記憶するのに1バイト必要だとすると ...
ブロック長 8...256 バイトブロック長 16...64 キロバイトブロック長 32...4 ギガバイト
19
非等長ブロック符号化ここまでのブロック符号化:符号化対象のパターンは同じ
長さ⇒ 発生確率の非常に小さなパターンにも符号語定義が必要⇒ 対応表の巨大化
符号化対象のパターンが,異なる長さを持つことを許す⇒ 非等長 (unequal-length) ブロック化.ただし
各パターンの発生確率が,ある程度均衡すること任意の通報系列が,パターンにブロック化できること
... どのようにパターンを定義するかが鍵となる
A B A A B A B A
A B A A B A B A
20
パターンの定義方法についてパターン定義の戦略1:頻出パターンの細分化1. 長さ1のパターンを用意する2. 発生頻度の高いパターンを細分化し,分割する3. 所望のパターン数になるまで 2 を繰り返す
例: P(A) = 0.8, P(B) = 0.2 ,所望パターン数4のとき
AB
0.80.2
AAABB
0.640.160.2
AAAAABABB
0.5120.1280.160.2
任意の系列を, {AAA, AAB, AB, B} にブロック化可能
21
非等長ブロック化時の平均符号長
前スライドのパターンに対し,ハフマン符号を定義(右表)
n 個のブロックがあったとすると ...
符号語系列の長さは0.512n×1 + 0.128n×3 + 0.16n×3 + 0.2n×1 = 1.776n
通報系列の長さは0.512n×3 + 0.128n×3 + 0.16n×2 + 0.2n×1 = 2.44n
一通報あたりの符号長は, 1.776n / 2.44n = 0.728
... ブロック長3(対応表8行)のときと同程度の効率 (cf. p.14)
パターンAAAAABABB
確率0.5120.1280.160.2
符号語0
10010111
22
パターンの定義方法について:ラン長の利用パターン定義の戦略2:記号のランによりパターン定義(主として,2元の情報源を想定)
記号のラン( run) :系列中の,同一記号からなる部分系列A B B A A A A A B A A A B
長さ 1 の A のラン
長さ 5 の A のラン
長さ 3 の A のラン
長さ 0 の A のラン
特定記号のランの長さだけ与えられれば,元の系列を復元可能⇒ ランの長さを符号化しよう!
23
ラン長の上限非常に長いランが発生することも ...
⇒ ランの長さに上限を設け,上限以上のランは短く分割して表現
上限を3とした場合ラン長
01234567:
表現方法012
3+03+13+1
3+3+03+3+1
:
ABBAAAAABAAAB を表現する:A が1個発生し,Bが発生A が0個発生し,Bが発生A が3個以上発生A が2個発生し,Bが発生A が3個以上発生A が0個発生し,Bが発生
24
ランレングスハフマン符号ランレングスハフマン符号 (run-length Huffman code)
通報系列中の特定記号のラン長を符号化したハフマン符号⇒ 通報の発生頻度に偏りがある場合,非常に有効p(A) = 0.9, p(B) = 0.1 のとき
ラン長012
3 以上
符号化されるパターンB
ABAABAAA
発生確率0.1
0.090.0810.729
符号語10
110111
0
ABBAAAAABAAAB: 1, 0, 3+, 2, 3+, 0 110 10 0 111 0 10⇒AAAABAAAAABAAB: 3+, 1, 3+, 2, 2 0 110 0 111 111⇒AAABAAAAAAAAB: 3+, 0, 3+, 3+, 2 0 10 0 0 111⇒
25
符号化例S: 記憶のない2元定常情報源, p(A) = 0.9, p(B) = 0.1
エントロピーは H(S) = –0.9log20.9 – 0.1log20.1 = 0.469
単純なハフマン符号化:平均符号長は 1
等長ハフマンブロック符号化 (n = 3)
通報AB
確率0.90.1
符号語01
通報AAAAABABAABB
確率0.7290.0810.0810.009
符号語0
1001101010
通報BAABABBBABBB
確率0.0810.0090.0090.009
符号語11101011
1111011111
平均符号長 1.661, 一通報あたりの平均符号長 1.661 / 3 = 0.55
26
符号化例(続)ランレングスハフマン符号化(符号語数を8に設定)
ラン長0123
確率0.1
0.090.0810.073
符号語110100010011010
ラン長456
7+
確率0.0660.0590.0530.478
符号語101111101111
0
n ブロックでは ...
符号語系列 0.1n×3+...+0.478n×1=2.466n
通報系列 0.1n×1+...+0.053×7+0.478×7=5.216n
(ラン長 k ⇒ k 個の A と一個の B なので通報数では k+1 )一通報あたりの平均符号長は 2.466n / 5.216n = 0.47
27
本日のまとめ平均符号長の限界定理シャノンの情報源符号化定理ハフマン符号の拡張的利用法
ブロック符号化非等長ブロック符号化ランレングス符号化
28
練習問題通報とその発生確率を入力すれば,ハフマン符号を構成するプログラムを作成せよ
ブロック符号が構成できるよう,上記プログラムを改造せよ
適当な通報と発生確率を定め,一通報あたりの平均符号長がブロック長によりどう変化するか,プログラム実験を行え
top related