前回の練習問題 12ページの例において,3次,4次のエントロピーを求めよ. 可能であれば,n 次エントロピーを計算するプログラムを書け. 以下を示せ I(X; Y) = H(X) – H(X | Y) I(X; Y) = I(Y; X) I(X; Y) = H(X) + H(Y) – H(X, Y) http://narayama.naist.jp/~kaji/lecture/ に解答例,プログラム掲載 1 前回の補足 マルコフ情報源の(極限)エントロピー: 各状態について,その状態を記憶のない情報源と考え, 極限エントロピー(一次エントロピー)を計算すればよい ... 厳密には「なぜこれで良いか」を考える必要がある 説明資料(証明概要)を http://narayama.naist.jp/~kaji/lecture/ に掲載しました 2 comments to foreign students To help understanding this class, I try to provide English notes in the PowerPoint slide file. Download ppt files from http://narayama.naist.jp/~kaji/lecture/ and check notes in the file. 3 第二部:情報をコンパクトに表現する 情報に含まれるムダを削り,情報を圧縮する 情報源から発生した通報を記録するときには... 計算機で扱いやすい文字を使って表現しないといけない ⇒ 適切に符号化 (encode)する必要がある どんな符号化でもOK? できるだけ正確に記録しないとダメ (⇒ 第二部 + 第三部) できるだけ効率的に記録しないとダメ 記録に必要となる手間,時間,データ量... を節約したい 4 情報源符号化 情報源符号化 (source coding): 情報源から発生した通報(または通報の系列)を, 記録系や処理系で利用可能な記号系列に変換すること 正確で手間のかからない符号化 一意復号可能性,瞬時復号可能性 効率の良い(圧縮率の高い)符号化 ハフマン符号 ハフマン符号の拡張,その他の符号化法 符号化効率の限界 関連する話題 本日の講義 5 情報源符号化と用語の定義 例:天気予報(通報は「晴」「曇」「雨」)の符号化 記録系で利用できる記号(アルファベット)は 0 または 1 通報 符号語 00 晴 10 曇 11 雨 一個ずつが, それぞれ符号語 符号 ≠符合 通報とアルファベット系列の一対一関係を考える 符号語 (codeword):通報に対応するアルファベット系列 00 は符号語,10 は符号語,01 は符号語でない 符号 (code):符号語の集合,上例では {00, 10, 11} 2元符号... アルファベットが2種類の記号 6 符号化と復号 符号化 (encode):通報を符号語に変換すること 復号 (decode): 符号語を通報に変換すること 注意: 符号化の際,符号語と符号語の間には,分離記号を挟まない (空白文字など) ○ 晴曇晴 ⇒ 001000 × 晴曇晴 ⇒ 00 10 00 分離記号が欲しい場合... 分離記号も,アルファベットや符号の定義に含めること 「空白文字でも,一文字は一文字」 7 符号に求められる性質 情報源符号化に求められる第一条件: 符号化した結果が,正しく一意に復号できること 符号語を,すべて異なるものにすればOK? 晴 曇 雨 雪 C1 00 10 01 11 C2 0 01 011 111 C3 0 10 11 01 C4 0 10 11 0 C4 は明らかにダメ 他はOK? C3を使って「晴,雨,晴」を符号化すると 0110 C3を使って「雪,曇」を符号化すると 0110 ⇒ 両者の区別がつかない...一意には復号できない 8 一意復号可能性 符号が一意復号可能である (uniquely decodable): 異なる通報系列が,同一の符号語系列に符号化されないこと 晴 曇 雨 雪 C1 00 10 01 11 C2 0 01 011 111 C3 0 10 11 01 C4 0 10 11 0 C1, C2 は一意復号可能 C3, C4 は一意復号可能でない (特異符号,singular code) C1, C2 はどちらも一意復号可能だが...C2 はちょっと使いにくい 9 符号 C2 の問題点 C2で「晴,雪,雪,晴」を符号化 ⇒ 符号語系列は 01111110 この系列を一文字ずつ送る場合を考える 7文字目まで受け取った時点では ...復号結果として,2通りの候補が存在 次が... 0 0111111 7文字目 次が... 1 晴 曇 雨 雪 C2 0 01 011 111 0 111 111 0 晴 雪 雪 晴 01 111 111 雨 雪 雪 8文字目以降を受け取るまで,最初の復号結果すら確定できない ⇒ 復号器内に大きなバッファが必要,大きな復号遅延の発生 10 瞬時復号可能性 符号が瞬時復号可能である (immediately decodable): 符号語系列の先読みをしなくても,復号を行えること (符号語パターンが出現すれば,すぐに復号してよい) A B C D 01 010 011 100 左例:瞬時復号可能でない 0110 0 ⇒ 01 100 (AD) 1 ⇒ 011 01 (CA) 右例:瞬時復号可能でない 0111101 0 ⇒ 01 11 10 0? (ACB?) 1 ⇒ 011 11 01 (DCA) A B C D 01 10 11 011 11 瞬時復号可能性と語頭条件 瞬時復号可能性は,工学上,非常に重要な性質 でも,すべての系列についてチェックするのは大変 どんなときに,瞬時復号可能でなくなるか? ⇒ ある符号語が,他の符号語の最初の部分と一致するとき 語頭となる A 01 A 01 B C D 010 011 100 B C D 10 11 011 符号Cが瞬時復号可能となる ⇔ Cのどの符号語も,他の符号語の語頭とならないこと (語頭条件,prefix condition) 12 余談:語頭条件といえば... 語頭条件の確保は,システム設計全般にわたって重要 PDAの手書き入力用文字ストローク Graffiti 1 すべて一筆書き prefix condition を満たす Graffiti 2 二筆文字も出現 prefix condition を満たさない 13 語頭条件を満たす符号の作り方 語頭条件を満たす符号の単純な作り方: すべての符号語を,同じ長さを持つ相違なる系列とする (等長符号,equal-length code) 符号語の最後(最初)に特別なパターンを配置する (コンマ符号,comma code) ⇒ どちらも,取り扱いは楽だが効率が悪い 一工夫して,必要最小限の長さを持つ符号語を選んでくる (非等長符号,unequal-length code) 符号木を利用した構成法が便利 14 符号木 a元符号の符号木 (code tree): 各節点が,最大 a 個の子を持つことのできる木構造 根...親を持たない節点 葉...子を持たない節点 根 葉 15 符号木を利用した符号の構成法 M 個の符号語を持つ符号の構成手順: 1. 葉の数がM個であるような符号木 T を任意に構成する 2. Tの各枝に,0 から a の記号をラベル(名前)付けする ただし,一つの親が同一ラベルの枝を複数持ってはならない 3. 根から葉までの経路を考える 経路上のラベルを順に連接したものが,一個の符号語となる 16 符号の構成例 符号語数が4の2元瞬時復号可能符号を構成する Step 1 Step 2 0 0 0 1 0 1 Step 3 0 1 1 0 1 1 00 01 10 11 構成された符号は {00, 01, 10, 11} 17 符号の構成例 符号語数が4の瞬時復号可能符号を構成する 符号木の選び方,ラベルの付け方には自由度がある 0 1 C1={0, 10, 110, 111} 0 0 1 0 1 0 1 1 1 1 0 0 C2={0, 11, 101, 100} 1 0 0 0 1 1 0 C3={01, 000, 1011, 1010} どのようにしても語頭条件を満たす ⇒ 瞬時復号可能な符号 18 符号語の長さと符号の効率 0 1 0 1 C1={0, 10, 110, 111} 0 1 0 1 0 1 C3={01, 000, 1011, 1010} 0 0 1 1 0 C1 vs. C3...どちらも,符号語数4の瞬時復号可能な符号 個々の符号語が短いほうが,効率が良い(コンパクトな表現) 4つの符号語の長さを,すべて 1 にできるか? 4つの符号語,長さを 1, 2, 2, 3 にできるか? 瞬時復号可能な符号が構成できる条件は? 19 クラフトの不等式 C = {w1, ..., wM}, |wi| = li であるa元符号とする [定理] C が語頭条件を満たすなら,以下の不等式が成立 a l1 a l2 a lM 1 :クラフトの不等式 (Kraft’s inequality) 定理の逆は必ずしも成立しないが... クラフトの不等式を満たす符号語長l1, ..., lMが与えられたとき, 語頭条件を満たし,この符号長をもつ符号を構成可能 20 符号語長からの符号構成 符号語長が1, 2, 3, 3 である瞬時復号可能な符号を作りたい ⇒ 深さ 1, 2, 3, 3 に葉がくるように符号木 T を構成すれば良い 0 1 0 1 0 C1={0, 10, 110, 111} 1 符号語長が1, 2, 2, 2 である瞬時復号可能な符号を作りたい 2–1 + 2–2 + 2–2 + 2–2 = 0.5 + 0.25 + 0.25 + 0.25 = 1.25 > 1 ⇒ 無理 21 符号の効率について ここまでの議論...取り扱い上の利点を持つ符号の構成方法 ここからの議論...取り扱い上の利点 + 効率の良さに着目 晴 曇 雨 雪 確率 0.4 0.3 0.2 0.1 C1 0 10 110 111 C2 111 110 10 0 C1とC2,どちらが良い符号? 「晴晴曇雨晴」を符号化してみる C1:00101100 8記号 14記号 C2:11111111010111 C1のほうが,通報をコンパクトに表現可能 コンパクトさの定量的指標... 符号長の加重平均(平均符号長) C1:0.4 ×1 +0.3 ×2 +0.2 ×3 +0.1 ×3 = 1.9 C2:0.4 ×3 +0.3 ×3 +0.2 ×2 +0.1 ×1 = 2.6 22 情報源符号化の指標 良い符号の三条件: 一意復号可能であること 瞬時復号可能であること 平均符号長ができるだけ短いこと 最初2つの条件だけなら,符号木を使うだけで構成可能 最後の条件を満たすため,符号木の作り方に一工夫する ⇒ ハフマン符号 (Huffman code) とくに断らない限り,記憶のない定常情報源を考える 23 ハフマン符号 一般的な性質ではなく,符号木の構成法によって定式化: 1. 各通報に対して節点を準備し,その発生確率を付与する 節点はそれぞれ,大きさ1の木であると考える 2. 木の中で発生確率最小のものを2つ選出し,以下を行う 1. 2つの木の根節点を子とするような,新しい根節点を作る 2. 新しい根節点と古い根節点を結ぶ枝に,0, 1 をラベル付け 3. 新しい根節点に,2つの木の発生確率の和を与える 3. すべての節点がつながるまで,2 の操作を繰り返す 24 ハフマン符号の構成例 0.15 0.6 A 0.25 B 0 0.6 A 0.25 B 0.1 C 0.05 D 0.6 A 0.25 B 1.0 1 0.4 1 0.15 0 0 1 0.1 C 0.05 D 0.1 C 0.05 D 0.4 0.15 0.6 A 0.25 B 0.1 C 資本金による合併劇,と考えるとわかりやすいかも... 0.05 D 25 練習問題 A B C D E 確率 0.2 0.1 0.3 0.3 0.1 符号語 A B C D E F 確率 0.3 0.2 0.2 0.1 0.1 0.1 符号語 等長符号の場合と平均符号長を比較すると... 26 ハフマン符号構成上の自由度 ハフマン符号の構成においては, ラベル割当の自由度 確率の等しい節点選択の自由度 が存在するが... ⇒ どのように選択しても,平均符号長は変わらない A B C D E F 確率 0.3 0.2 0.2 0.1 0.1 0.1 符号語 27 本日のまとめ 情報源符号化に関する基本概念の整理 一意復号可能性 瞬時復号可能性 クラフトの不等式 符号木利用による符号構成 ハフマン符号 加重平均符号長による評価 具体的な符号構成法 28 練習問題 右の情報源を効率よく符号化できる, 2元ハフマン符号を構成せよ 上で構成した符号の平均符号長を 求めよ 4元ハフマン符号の構成法を検討し, 右の情報源に適した符号を構成せよ A B C D E F G H 確率 0.363 0.174 0.143 0.098 0.087 0.069 0.045 0.021 29
© Copyright 2024 ExpyDoc