4 info theory

28
1 前前前前前前前 前前前前前前前前前前前前 前前前前前前前前前 A B C D E F G H 前前 0.363 0.174 0.143 0.098 0.087 0.069 0.045 0.021 1.000 0.637 0.359 0.278 0.185 0.135 0.066 0.363 A 0.174 B 0.143 C 0.098 D 0.087 E 0.069 F 0.045 G 0.021 H 0 1 0 100 110 1010 1011 1110 11110 11111 0.363×1+0.174×3+...+0.021×5=2.660

Upload: melvincabatuan

Post on 11-Jun-2015

2.096 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 4 Info Theory

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

Page 2: 4 Info Theory

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

Page 3: 4 Info Theory

3

本日の講義ハフマン符号の性能と限界ハフマン符号化の拡張

ブロック符号化と平均符号長情報源符号化定理

情報源符号化の限界非等長ブロックハフマン符号化

ランレングス符号化

Page 4: 4 Info Theory

4

平均符号長について情報源符号化に求められる性質:

瞬時復号可能であること(自動的に一意復号可能となる)平均符号長ができるだけ小さいこと

⇒ ハフマン符号が有力候補

瞬時復号可能な符号のクラス

一意復号可能な符号のクラス

ハフマン符号

ハフマン符号は,どれくらい「良い」符号なのか?

⇒ 平均符号長の限界定理

Page 5: 4 Info Theory

5

平均符号長の限界定理定常情報源 S から発生する通報を一個ずつ,瞬時復号可能な符号 C により符号化することを考える通報は M 通り,各通報の発生確率は p1, ..., pM

[ 定理 ]

任意の符号について,平均符号長は必ず L H1(S) となる

... どんなに効率的でも,平均符号長は1次エントロピー以下

平均符号長が L < H1(S) + 1 となる符号を構成できる

... 平均符号長が1次エントロピーに迫る符号を作ることが可能

Page 6: 4 Info Theory

6

シャノンの補助定理定理の証明にあたり,補助定理(補題)をひとつ導入(シャノンの補助定理, Shannon’s lemma )

[ 補題 ] q1 + ... + qM 1 を満たす任意の正数 q1, ..., qM に対し,

))((loglog 11

21

2 SHppqpM

iii

M

iii

等号成立は, p1 = q1, ..., pM = qM のとき,かつそのときのみ.

Page 7: 4 Info Theory

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

(証明終了)

Page 8: 4 Info Theory

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 のとき,かつそのときのみ

(前半証明終了)

Page 9: 4 Info Theory

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

(後半証明終了)

Page 10: 4 Info Theory

10

符号長限界定理とハフマン符号[ 定理 ] (再掲)

任意の符号について,平均符号長は必ず L H1(S) となる平均符号長が L < H1(S) + 1となる符号を構成できる

ハフマン符号では,平均符号長が,必ず L < H1(S) + 1となる...実際には,もっと強い証明が可能

ハフマン符号よりも平均符号長の小さな瞬時符号は存在しない(ハフマン符号は コンパクト符号 (compact code)である)

証明は,符号木の大きさに関する帰納法による(以下略).

Page 11: 4 Info Theory

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

Page 12: 4 Info Theory

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

⇒ 少し効率が良くなった

Page 13: 4 Info Theory

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元情報源でも,効率改善

Page 14: 4 Info Theory

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

:

ブロック長を大きくすると,一通報あたり平均符号長は小さくなる(効率が良くなる)

Page 15: 4 Info Theory

15

ブロック符号の平均符号長ブロック長を大きくすると,一通報あたり平均符号長は小さくな

る⇒ どこまで小さくなるのか?

n 個単位でブロック化された通報= n 次拡大情報源 Sn の通報1個⇒ 平均符号長の限界定理が適用できる!

ブロック符号の平均符号長を Ln とすると, H1(Sn) Ln < H1(Sn)+1.

一通報当たりの平均符号長に換算すると ...

nnSH

n

L

nSH n

nn 1)()( 11

Page 16: 4 Info Theory

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

Page 17: 4 Info Theory

17

情報源符号化定理の意味するところ情報源 S から発生する通報は,一通報あたりの平均符号長がH(S) L < H(S) + でででででででででででででででででで

ブロック長を長くしてハフマン符号を使えば,効率的にはベストどれだけ頑張っても,極限エントロピーの壁は越えられない

AB

確率0.80.2

符号語01

ブロック長123::

一通報あたり平均符号長1.0

0.780.728

::

0.723 + H(S) = 0.723

Page 18: 4 Info Theory

18

ブロック符号化法の実用性効率面からは,ハフマンブロック符号化法が最良な方法

ブロック長を大きくすれば,いくらでも理論限界値に近づける

実用面から考えると,ハフマンブロック符号化法にも問題あり通報の発生確率を,あらかじめ知っておく必要がある(⇒ 次回講義で触れる予定)符号の定義(通報と符号語の対応表)が巨大になる

対応表1行を記憶するのに1バイト必要だとすると ...

ブロック長 8...256 バイトブロック長 16...64 キロバイトブロック長 32...4 ギガバイト

Page 19: 4 Info Theory

19

非等長ブロック符号化ここまでのブロック符号化:符号化対象のパターンは同じ

長さ⇒ 発生確率の非常に小さなパターンにも符号語定義が必要⇒ 対応表の巨大化

符号化対象のパターンが,異なる長さを持つことを許す⇒ 非等長 (unequal-length) ブロック化.ただし

各パターンの発生確率が,ある程度均衡すること任意の通報系列が,パターンにブロック化できること

... どのようにパターンを定義するかが鍵となる

A B A A B A B A

A B A A B A B A

Page 20: 4 Info Theory

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} にブロック化可能

Page 21: 4 Info Theory

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

Page 22: 4 Info Theory

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 のラン

特定記号のランの長さだけ与えられれば,元の系列を復元可能⇒ ランの長さを符号化しよう!

Page 23: 4 Info Theory

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が発生

Page 24: 4 Info Theory

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⇒

Page 25: 4 Info Theory

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

Page 26: 4 Info Theory

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

Page 27: 4 Info Theory

27

本日のまとめ平均符号長の限界定理シャノンの情報源符号化定理ハフマン符号の拡張的利用法

ブロック符号化非等長ブロック符号化ランレングス符号化

Page 28: 4 Info Theory

28

練習問題通報とその発生確率を入力すれば,ハフマン符号を構成するプログラムを作成せよ

ブロック符号が構成できるよう,上記プログラムを改造せよ

適当な通報と発生確率を定め,一通報あたりの平均符号長がブロック長によりどう変化するか,プログラム実験を行え