590 likes | 840 Views
情報科学概論 2回目. 「モノとしての情報」 「情報」を, 工学の対象物 として取り扱うための理論と技術 情報を測る 情報の量,情報伝達系の性能を数値として測る 確率論をベースに,人間の直観にあった定式化を行う 情報を伝える 情報をできるだけコンパクトに表現する 情報をできるだけ確実に伝える. 出欠確認・課題. 情報通信以外の分野で,情報理論の技術や考え方が 利用できる分野,技術,応用,ビジネスを考えよ 出席届兼用の用紙に記入,本講義終了時に提出 知識を問うのではなく,「発想」「着眼点」を評価します. 「ナルホド」「面白い」と思わせる回答を期待しています
E N D
情報科学概論 2回目 「モノとしての情報」 • 「情報」を,工学の対象物として取り扱うための理論と技術 • 情報を測る • 情報の量,情報伝達系の性能を数値として測る • 確率論をベースに,人間の直観にあった定式化を行う • 情報を伝える • 情報をできるだけコンパクトに表現する • 情報をできるだけ確実に伝える
出欠確認・課題 情報通信以外の分野で,情報理論の技術や考え方が 利用できる分野,技術,応用,ビジネスを考えよ • 出席届兼用の用紙に記入,本講義終了時に提出 • 知識を問うのではなく,「発想」「着眼点」を評価します. • 「ナルホド」「面白い」と思わせる回答を期待しています • 情報の学生に対する注意: • 今回の内容は「情報理論」のサブセット • 上記課題について,高いレベルの回答を期待します
第一部:「情報量」をどうとらえるか 良い自動車を作りたい... • 時間や距離,燃料の量などを正確に計量できないと難しい 良い「情報システム」を作りたい... • 情報の量を測り,数値として表現することが必要 情報の「量」: • 人間の直観と乖離した定義では意味がない • 我々が漠然と考えている「情報量」にマッチする定義が必要 どういうときに「情報を得た」と考えるか?
情報の獲得 情報を得る = 対象物に関する「不確かさ」が減少すること • 昨日の野球の試合結果,何も知らないと,勝敗はわからない • 友人から「昨日の試合,勝てなかった」と聞いた(情報を得た) 情報を得る前:勝ち,負け,引き分けの3通り...不確かさ大 情報を得た後:負け,引き分けの2通り...不確かさ小 • 「情報量 = 不確かさの減少量」とするのが自然 • 「不確かさ」の定量化が先決
情報源と通報 情報伝達のモデル: 情報源で発生した事象を,通信路が伝達し,観測者が受信 • 事象を表現する具体的な「モノ」...通報と呼ぶ • 「通報 ≠ 情報」である点に注意 e ? 通信路 e e’ 情報源 観測者 • 情報源の統計的性質は既知,実際に発生する通報は未知 • 通信路は,正確に通報を伝達しないかもしれない
情報伝達の例 情報伝達の多くは,概念上,前スライドのモデルとして表現可能 「イベント」 – 「通信路の出力」: • 「野球の試合結果」 – 「友人からの速報メール」 • 「プログラムの出力」 – 「ファイルからの読み出しデータ」 • 「明日の天気」 – 「天気予報」 • 「画像データ」 – 「JPEG圧縮データ」 • 「敵軍隊の指令文書」 – 「盗聴で得た暗号文」 「イベント」「通信路」という言葉にとらわれ過ぎる必要はない
情報源の分類 情報源の分類 • アナログ情報源 vs. デジタル情報源 • 通報がアナログ的か,デジタル的か • 記憶のある情報源 vs. 記憶のない情報源 • 発生する通報に相関があるか,独立しているか • 定常情報源 vs. 非定常情報源 • 統計的な振舞いが,時間に対して不変か,そうでないか
典型的な情報源 • 定常で記憶のない,デジタル情報源 • 通報の集合は離散集合により与えられる • 発生する通報は,以前の通報とは独立して決定される • 時刻をシフトしても,通報の発生確率は変化しない • サイコロの目やコイン投げの結果を想定すれば良い • 現実世界では,記憶のある情報源もかなり多い • 人間が使う自然言語 • 画像,音声等のデータ ...基本的に,本講義では(最初に少ししか)扱わない
ビット 情報源のエントロピー S: 以下の通報発生確率を持つ(記憶の無い定常)情報源 ... ... M元情報源 a1 p1 a2 p2 aM pM 通報 確率 情報源 Sの一次エントロピー(first-order entropy): (ビット, bit) この項は非負 ⇒エントロピーは常に0以上 例1: コイン投げのエントロピー:表,裏とも確率 1/2...M = 2, p1=p2=0.5
通報 確率 1 1/6 2 1/6 3 1/6 4 1/6 5 1/6 6 1/6 エントロピーの計算例 例2:サイコロの目...コイン投げより,結果予想は難しいはず ビット 例3:イカサマ賭博のサイコロ 通報 確率 1 0.9 2 0.02 3 0.02 4 0.02 5 0.02 6 0.02 ビット 一個の指標で,予測の難しさの大小関係を定義可能
1/0.1 0/0.9 0 1 0/0.4 1/0.6 記憶のある情報源 • 記憶のある情報源は多種多様 • 比較的シンプルなモデルとして,マルコフ情報源がある • 状態間を遷移しながら通報発生 • 直観的には,「双六」のイメージ • スタート,ゴールはない • 十分時間が経過した後(定常状態) • での振舞いを議論することが多い 通報 / 確率 上の例の場合,十分な時間が経過すると... 80%の確率で状態 “0”,20%の確率で状態 “1”を取っているはず (実際は,漸化式を立てて計算を行う)
1/0.1 0/0.9 0 1 0/0.4 1/0.6 マルコフ情報源のエントロピー 80%の確率で状態 “0” 20%の確率で状態 “1” 0 が発生する確率... 0.8 0.9 + 0.2 0.4 = 0.80 1 が発生する確率... 0.8 0.1 + 0.2 0.6 = 0.20 ⇒ エントロピーは – 0.8log 0.8 – 0.2log 0.2 = 0.722bit 通報を「ブロック化」すると,興味深い振舞いが見られる (情報源からの通報を複数個まとめて,一個の通報とみなす)
ブロック化の例:記憶のない場合 コイン投げ2回分の通報を,1ブロックにまとめる場合... • 通報は {表表, 表裏,裏表,裏裏} の4通り 通報 確率 表表 1/4 表裏 1/4 裏表 1/4 裏裏 1/4 • H1(S2)=log 4 = 2 ビット...結果予想は一個の場合の2倍難しい • H1(S2)は,Sの通報2個分のエントロピー • ⇒ Sの通報1個分に換算すると,H1(S2)/2 = 1ビット 記憶のない情報源では,ブロック化してもエントロピーは変化なし n個まとめて予想する難しさ = n×(1 個だけ予想する難しさ)
1/0.1 0/0.9 0 1 0/0.4 1/0.6 マルコフ情報源とブロック化 80%の確率で状態 “0” 20%の確率で状態 “1” 00 が発生する確率... 0.8 0.9 0.9 + 0.2 0.4 0.9 = 0.72 01 が発生する確率... 0.8 0.9 0.1 + 0.2 0.4 0.1 = 0.08 10 が発生する確率... 0.8 0.1 0.4 + 0.2 0.6 0.4 = 0.08 11 が発生する確率... 0.8 0.1 0.6 + 0.2 0.6 0.6 = 0.12 ⇒ エントロピーは 1.2914bit...一文字あたりでは 0.6457bit ブロック化しないときは0.722bit だった ⇒ ブロック化により,エントロピーが小さくなった
H1(Sn) / n H(S) n 記憶のある情報源のエントロピー 一般に,記憶のある情報源では... • H1(Sn) / n(通報一個あたりのエントロピー)は,単調減少する • H1(Sn) / nは,ある一定の値 H(S) に収束していく H1(Sn) / n< H1(S) n個まとめて予想する難しさ <n ×(1 個だけ予想する難しさ) • ある程度,通報の出現パターンが「読める」 • 自然語だと,“qu” は高頻出,“qz” は,まず出現しない • 無記憶の場合より,振舞いが予想しやすい ⇒ エントロピー小
第一部:折り返し地点 ここまでは,「情報源の予測の難しさ」の定量化 ここからは「情報量」の定義
通報の持つ情報量 • 阪神タイガースの試合があったが,結果をまだ知らない • 阪神が勝つ確率,負ける確率,引き分ける確率は,全部1/3 • 巨人ファンの友人Aからメイル:「阪神は負けなかった」 友人Aのメイルに含まれる情報の「量」は? • メイルを受け取る前:結果に関する不確かさが大きい • P(勝) = 1/3. P(引) = 1/3, P(負) = 1/3 • メイルを受け取った後:結果に関する不確かさが小さくなった • P(勝) = 1/2. P(引) = 1/2, P(負) = 0 「不確かさの減少量 = 情報量」と定義したい
野球の試合の例では • メイルを受け取る前:P(勝) = 1/3. P(引) = 1/3, P(負) = 1/3 • エントロピーは • メイルを受け取った後:P(勝) = 1/2. P(引) = 1/2, P(負) = 0 • 条件付きエントロピーは 「阪神は負けなかった」というメイルに含まれる情報量: 1.585 – 1 = 0.585 ビット
情報量とエントロピー • 離れたところにある情報源 Sの出力(通報)を知りたい • 通報の確率分布はわかるが,何が実際出力されたか知りたい • S の出力に関し,なんらかの「ヒント」を入手したとする • ヒントにより,通報の確率分布が,別の情報源 S’の確率分布と一致することがわかったとする このとき,ヒント(通報)がもたらした情報量 (information) は H(S) – H(S’) ビット
気まぐれな友人の場合(case 1) 右図の行動を取る友人Bが 「言いたくない」と言った時の 情報量は? 0.5 勝ち 「勝ったよ」 0.5 1.0 引分 「言いたくない」 0.5 P(言いたくない) = 2/3 負け 「負けたよ」 0.5 P(勝ち,言いたくない) = 1/6 P(勝ち | 言いたくない) = 1/4 P(引分,言いたくない) = 1/3 P(引分 | 言いたくない) = 1/2 P(負け,言いたくない) = 1/6 P(負け | 言いたくない) = 1/4 「言いたくない」と言っているときのエントロピーは 情報量は1.585 – 1.5 = 0.085ビット(友人Aのメイル:0.585ビット)
気まぐれな友人の場合(case 2) 友人Bが「勝ったよ」と言った ときの情報量は? 0.5 勝ち 「勝ったよ」 0.5 P(勝ったよ) =1/6 1.0 引分 「言いたくない」 P(勝ち,勝ったよ) = 1/6 0.5 負け 「負けたよ」 0.5 P(勝ち | 勝ったよ) = 1 エントロピーは0になる (結果を正確に知ることができる) P(引分 | 勝ったよ) = 0 P(負け | 勝ったよ) = 0 情報量は1.585 – 0 = 1.585ビット(友人Aのメイル:0.585ビット) 友人Aと友人B,どちらが「頼りになる」友人か? ... 個々の通報の情報量だけを見ていたのではわからない
情報量の「平均」 友人Bの行動: • 1/6 の確率で「勝ったよ」...情報量 1.585ビット • 2/3 の確率で「言いたくない」...情報量 0.085ビット • 1/6 の確率で「負けたよ」...情報量 1.585ビット 平均すると 1.585 1/6 + 0.085 2/3 +1.585 1/6 = 0.585ビット 友人Aの行動: • 2/3の確率で「負けなかった」...情報量 0.585ビット • 1/3の確率で「負けたよ」...情報量 1.585ビット • 平均すると 0.585 2/3 + 1.585 1/3 = 0.918ビット 勝ち 引分 「負けなかった」 平均すると,友人Aのほうが 0.333ビット多くの情報をくれる 負け 「負けたよ」
相互情報量 友人A,友人Bは,異なる特性を持った通信路と考えられる 「負けなかった」 「言いたくない」 X Y 通信路の入力確率変数を X,出力確率変数を Yとする Xと Yの相互情報量 I(X; Y): Yの各値が持つ(Xに関する)情報量の加重平均 前ページでは「試合結果と友人の振舞いの相互情報量」を計算
相互情報量の意味 相互情報量: • その通信路が,どれだけの情報を伝達しているかの指標 • システムとして通信路を実現することを考えると,個々の 通報の情報量より,相互情報量にこそ着目すべき 同じ通信路でも,入力分布が変わると,相互情報量も変わる 同じ友人Aでも... • 勝ち,引分,負けが 1/3のチーム...相互情報量は0.918ビット • 勝ち,負けが1/2のチーム...相互情報量は1 ビット 相互情報量の取り得る最大値 ⇒ 通信路容量という
Y 晴 雨 P(Y)×100 晴 45 15 60 雨 12 28 40 P(X) ×100 57 43 X 相互情報量の計算例(1) 天気予報:天気についての情報を与える,やや不正確な通信路 例:100日間の実際の天気 (X) と天気予報 (Y) の統計: X Y 予報 現実 • 実際の天気が晴だったのは57日,PX(晴)=0.57 • 予報が晴といったのは60日,PY(雨)=0.60 • 天気 X, 予報 Yとも晴だったのは45日,PX,Y(晴,晴)=0.45
Y 晴 雨 P(Y)×100 晴 45 15 60 雨 12 28 40 P(X) ×100 57 43 X 相互情報量の計算例(2) 天気予報が当たる確率=PX,Y(晴,晴)+ PX,Y(雨,雨)=0.73 この予報と友人Aのメイル,どちらが「高性能」? 天気のエントロピー: ビット
相互情報量の計算例(3) • 天気予報Yが晴のとき: • 本当に晴れる確率は 0.45/0.60 = 0.75,雨の確率は0.25 • 「晴」という予報を聞いた後の条件付エントロピーは H(X | 晴) = – 0.75log0.75 – 0.25log0.25 = 0.811 ビット • 「晴」という天気予報の持つ情報量は 0.986 – 0.811 = 0.175 • 天気予報Yが雨のとき: • 本当に雨の確率は 0.28/0.40 = 0.70,晴の確率は0.30 • 「雨」という予報を聞いた後の条件付エントロピーは H(X | 雨) = – 0.30log0.30 – 0.70log0.70 = 0.881 ビット • 「雨」という天気予報の持つ情報量は 0.986 – 0.881 = 0.105 • 加重平均をとると 0.60·0.175 + 0.40·0.105 = 0.147 ビット
A社: まぁまぁ当たる予報 B社: 絶対はずれる予報 Y Y 晴 雨 P(Y)×100 晴 雨 P(Y)×100 晴 45 15 60 晴 0 43 43 雨 57 0 57 雨 12 28 40 P(X) ×100 57 43 P(X) ×100 57 43 X X 相互情報量と当たる確率 • 情報の「量」は,B社予報のほうが大きい 73% 0.147ビット 0% 0.986ビット
第一部のまとめ • エントロピーの概念を導入 • 予測の難しさを定量化したもの • 情報量,相互情報量を定義 • エントロピーの減少量として定式化 • システムの評価には,相互情報量の概念が有用
第二部:情報の表現方法を考える • 情報は,実体を持たない抽象的なもの • 情報の容器である「通報」に,具体的表現を与える必要がある • 通報の表現方法...かなり大きな自由度がある ⇒ 「良い」表現方法と「良くない」表現方法がある 「良い」表現方法とは? • 情報の蓄積を考えると...できるだけコンパクトであること • 情報の伝達を考えると...できるだけ誤りに強いこと • 相反する二つの方向性の間で,バランスを取ることが大切 • 技術としては,それぞれ独立したものとして扱うことが得策
第二部前半:情報のコンパクトな表現について第二部前半:情報のコンパクトな表現について 3種類の通報 A, B, Cを,0 と 1 だけを用いて符号化する (ただし,区切り記号は使わない) 通報 符号語 符号化すると,Bと Cが区別できなくなる (一意に復号できない) ⇒ すべてを 1 ビットで表現することは不可能 A B C A B C A B C 0 1 1 00 10 11 0 10 11 一意性は保証されるが,一工夫足りない... 符号語の長さが揃っていないが... 情報をコンパクトには表現できる
様々な符号化法 いまのところベストの符号化法 上の例と似ているが,一意性が保証されない B→ 11 CC→ 11 A B C A B C A B C 0 10 11 00 11 1 00 10 1 一意性は保証されるが,取り扱いが面倒 10000000 → BAAA 1000000 → CAAA 最後の一文字を見るまで,復号を行えない 最初の方式は,一意的で,即時に復号処理ができる
様々な符号化法(続) C1 いまのところベストの符号化法 C2 本質的に,上と同じ? A B C A B C 0 10 11 11 10 0 通報の出現確率に偏りがある場合を考える • C1:一通報を表現する符号長の平均は • 0.5 ×1 + 0.4×2 + 0.1×2 = 1.5ビット • C2:一通報を表現する符号長の平均は • 0.5 ×2 + 0.4×2 + 0.1×1 = 1.9ビット • C1 のほうが C2よりもコンパクトな表現 P(A) = 0.5 P(B) = 0.4 P(C) = 0.1
符号に求められる性質 良い符号の三条件: • 一意に復号可能であること • 瞬時に復号可能であること • 平均符号長ができるだけ短いこと 理論的に最適な解法が知られている ⇒ ハフマン符号化
ハフマン符号 • 各通報に対して節点を準備し,その発生確率を付与する 節点はそれぞれ,大きさ1の木であると考える • 木の中で発生確率最小のものを2つ選出し,以下を行う • 2つの木の根節点を子とするような,新しい根節点を作る • 新しい根節点と古い根節点を結ぶ枝に,0, 1 をラベル付け • 新しい根節点に,2つの木の発生確率の和を与える • すべての節点がつながるまで,2 の操作を繰り返す
記号 確率 A 0.60 B 0.25 C 0.10 D 0.05 0.15 0.60 A 0.25 B 0.10 C 0.05 D 0.60 A 0.25 B 0.10 C 0.05 D 0.60 A 0.25 B 0.10 C 0.05 D 1.00 0.40 0.60 A 0.25 B 0.10 C 0.05 D ハフマン符号化法
確率 0.3 0.2 0.2 0.1 0.1 0.1 符号語 A B C D E F 確率 0.2 0.1 0.3 0.3 0.1 符号語 A B C D E 練習問題 • 等長符号の場合と比べ,平均符号長が小さくなっている
ハフマン符号とブロック化 ハフマン符号: • 得られる符号は,一意かつ瞬時に復号可能 • 通報一個を符号語一個に符号化する方式としては, 最も効率が良い(最もコンパクト,平均符号長が小さい) 複数の通報を一まとめにして(ブロック化して)符号化すれば, さらに効率が良くなることが知られている
記号 確率 符号語 記号 確率 符号語 A B C 0.6 0.3 0.1 0 10 11 AA AB AC BA BB BC CA CB CC 0.36 0.18 0.06 0.18 0.09 0.03 0.06 0.03 0.01 0 100 1100 101 1110 11110 1101 111110 111111 ブロックハフマン符号 • 2つの通報をまとめて(ブロック化して)符号化する 平均符号長 1.4 ビット 平均符号長 2.67 ビット ⇒ 一記号あたり 1.335 ビット
ブロック化と性能の限界 • 一般に,ブロック長を大きくすると,通報一記号あたりの 平均符号長は減少する どこまで減少するか? 対象となっている情報源のエントロピーに漸近する 平均符号長 (一記号あたり) エントロピー ブロック長
情報源符号化定理 • 任意の符号について,平均符号長は必ず LH1(S) となる • データ圧縮における「越えられない壁」 • 平均符号長が L < H1(S) + 1となる符号を構成できる • ハフマン符号は,理論限界を達成する符号化方式 ハフマン符号よりも良い方法を 工夫すれば,エントロピーの壁を 乗り越えられる? 平均符号長 (一記号あたり) エントロピー ブロック長
ユニバーサル符号化,非可逆符号化 • ハフマン符号化...情報源記号の確率分布が,事前に必要 • 確率分布が(正確には)わからないケースも多い ⇒ ユニバーサル符号化法 • どのような情報源に対しても,そこそこ良い性能を発揮 • LZ77法 (lha, gzip, zoo, zip etc.) • LZ78法 (compress, stuffit etc.) • LZW法 (GIF, TIFF 等の画像フォーマット) • 音声や画像等の情報... • 細部まで正確に再現できなくても,実害なし • 再現性を一部犠牲にして,高い圧縮率を⇒非可逆符号化
第二部:折り返し地点 ここまでは,「情報をコンパクトに表現する」おはなし ここからは「誤った情報を訂正する」おはなし
通信路符号化 偶発的に発生する誤りから,情報を保護したい • 通信路において発生するノイズから情報を守る • CD-ROM が傷ついても,中のデータは読めるようにする • 基本的な考え方: • 誤りを検出し,訂正するための「余分な情報」を追加する
パリティ検査符号 • パリティ記号の付加: • 0と1で表現されたひとまとまりのデータの中に, • 1が偶数個あれば0を • 1が奇数個あれば1を • データの最後にくっつける操作 • パリティ記号の付加されたデータは,偶数個の1を含む(偶パリティ符号) • 1の個数が奇数個 • ⇒ 誤りの影響を受けている • サーバ用メモリ等で利用されている 01001 010010 01011 010111 誤りを含む 101001
0111 011110101 誤りの検出から訂正へ • 偶パリティ符号そのものには,誤り訂正能力がない • 偶パリティ符号を組み合わせれば,誤り訂正可能に 例:4ビットの情報を保護したい • 4ビットを長方形状に並べる • 水平方向,垂直方向にパリティ記号(5ビット)を付加 0 1 1 パリティ記号 5ビット 保護したい 4ビット • (9, 4) 符号 • 長さ9ビット • 内4ビットが本来の情報 • 符号化率 4/9 1 1 0 1 0 1
誤り訂正の原理 • 前出の (9,4) 符号 ⇒ どの行・列とも,1は偶数個のはず • 1ビットの誤りが発生すると… • 誤りを含む行,列だけ,1が奇数個になる • 受信者は,誤りの発生位置を特定することが可能 • 誤りは,異常のある行・列の交点に存在するはず 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 正常(誤り無し) 異常(誤りあり)
一般的な線形符号へ 前出の (9,4) 符号 ⇒ 行単位,列単位でパリティ記号を計算 • 二次元的な行,列にこだわる必要はない • 斜めにたどる,途中で曲げる,スポット的に拾う etc… • データビットの任意の組合せからパリティ記号を計算可能 • 組み合わせ方により,符号の性能が変化する 線形符号: データビットの部分集合から パリティ記号を定義する符号 いかにして良い組み合わせ方を探すか ⇒ 符号設計者の腕の見せ所
0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0111 0111 0111100 011110101 ハミング符号 • 代表的な線形符号 • 符号語中に発生する1ビットの誤りを訂正可能 • 非常に効率が良い(完全符号) • (7,4)符号 • 効率 4/7 • (9,4)符号 • 効率 4/9 (どちらも,より大規模の符号も構成可能)