Transcript Document

http://narayama.naist.jp/~kaji/lecture/
情報科学概論 2回目
「モノとしての情報」
「情報」を,工学の対象物として取り扱うための理論と技術
情報を測る
情報の量,情報伝達系の性能を数値として測る
確率論をベースに,人間の直観にあった定式化を行う
情報を伝える
情報をできるだけコンパクトに表現する
情報をできるだけ確実に伝える
1
http://narayama.naist.jp/~kaji/lecture/
出欠確認・課題
情報通信以外の分野で,情報理論の技術や考え方が
利用できる分野,技術,応用,ビジネスを考えよ
出席届兼用の用紙に記入,本講義終了時に提出
知識を問うのではなく,「発想」「着眼点」を評価します.
「ナルホド」「面白い」と思わせる回答を期待しています
情報の学生に対する注意:
今回の内容は「情報理論」のサブセット
上記課題について,高いレベルの回答を期待します
2
http://narayama.naist.jp/~kaji/lecture/
第一部:「情報量」をどうとらえるか
良い自動車を作りたい...
時間や距離,燃料の量などを正確に計量できないと難しい
良い「情報システム」を作りたい...
情報の量を測り,数値として表現することが必要
情報の「量」:
人間の直観と乖離した定義では意味がない
我々が漠然と考えている「情報量」にマッチする定義が必要
どういうときに「情報を得た」と考えるか?
3
http://narayama.naist.jp/~kaji/lecture/
情報の獲得
情報を得る = 対象物に関する「不確かさ」が減少すること
昨日の野球の試合結果,何も知らないと,勝敗はわからない
友人から「昨日の試合,勝てなかった」と聞いた(情報を得た)
情報を得る前:勝ち,負け,引き分けの3通り...不確かさ大
情報を得た後:負け,引き分けの2通り...不確かさ小
「情報量 = 不確かさの減少量」とするのが自然
「不確かさ」の定量化が先決
4
http://narayama.naist.jp/~kaji/lecture/
情報源と通報
情報伝達のモデル:
情報源で発生した事象を,通信路が伝達し,観測者が受信
事象を表現する具体的な「モノ」...通報と呼ぶ
「通報 ≠ 情報」である点に注意
e?
情報源
e
通信路
e’
観測者
情報源の統計的性質は既知,実際に発生する通報は未知
通信路は,正確に通報を伝達しないかもしれない
5
http://narayama.naist.jp/~kaji/lecture/
情報伝達の例
情報伝達の多くは,概念上,前スライドのモデルとして表現可能
「イベント」 – 「通信路の出力」:
「野球の試合結果」 – 「友人からの速報メール」
「プログラムの出力」 – 「ファイルからの読み出しデータ」
「明日の天気」 – 「天気予報」
「画像データ」 – 「JPEG圧縮データ」
「敵軍隊の指令文書」 – 「盗聴で得た暗号文」
「イベント」「通信路」という言葉にとらわれ過ぎる必要はない
66
http://narayama.naist.jp/~kaji/lecture/
情報源の分類
情報源の分類
アナログ情報源 vs. デジタル情報源
通報がアナログ的か,デジタル的か
記憶のある情報源 vs. 記憶のない情報源
発生する通報に相関があるか,独立しているか
定常情報源 vs. 非定常情報源
統計的な振舞いが,時間に対して不変か,そうでないか
7
http://narayama.naist.jp/~kaji/lecture/
典型的な情報源
定常で記憶のない,デジタル情報源
通報の集合は離散集合により与えられる
発生する通報は,以前の通報とは独立して決定される
時刻をシフトしても,通報の発生確率は変化しない
サイコロの目やコイン投げの結果を想定すれば良い
現実世界では,記憶のある情報源もかなり多い
人間が使う自然言語
画像,音声等のデータ
...基本的に,本講義では(最初に少ししか)扱わない
8
http://narayama.naist.jp/~kaji/lecture/
情報源のエントロピー
S: 以下の通報発生確率を持つ(記憶の無い定常)情報源
... a
M 元情報源
通報 a1 a2
M
... p
p
p
確率 1 2
M
情報源 S の一次エントロピー (first-order entropy):
M
H1 ( S )    pi log 2 pi (ビット, bit)
i 1
この項は非負
⇒エントロピーは常に0以上
例1:
コイン投げのエントロピー:表,裏とも確率 1/2...M = 2, p1=p2=0.5
H1 ( S )  0.5 log 0.5  0.5 log 0.5   log(1/ 2)  1 ビット
9
http://narayama.naist.jp/~kaji/lecture/
エントロピーの計算例
例2:サイコロの目...コイン投げより,結果予想は難しいはず
通報 1 2 3 4 5 6
確率 1/6 1/6 1/6 1/6 1/6 1/6
1
1 1
1
1
1
H1 ( S )   log  log   log  2.585 ビット
6
6 6
6
6
6
例3:イカサマ賭博のサイコロ
2
3
4
5
6
通報 1
確率 0.9 0.02 0.02 0.02 0.02 0.02
H1 ( S )  0.9 log 0.9  0.02 log 0.02...  0.02 log 0.02  0.701 ビット
一個の指標で,予測の難しさの大小関係を定義可能
10
http://narayama.naist.jp/~kaji/lecture/
記憶のある情報源
記憶のある情報源は多種多様
比較的シンプルなモデルとして,マルコフ情報源がある
0/0.9
1/0.1
0
1
0/0.4
1/0.6
通報 / 確率
状態間を遷移しながら通報発生
直観的には,「双六」のイメージ
スタート,ゴールはない
十分時間が経過した後(定常状態)
での振舞いを議論することが多い
上の例の場合,十分な時間が経過すると...
80%の確率で状態 “0”,20%の確率で状態 “1”を取っているはず
(実際は,漸化式を立てて計算を行う)
11
http://narayama.naist.jp/~kaji/lecture/
マルコフ情報源のエントロピー
0/0.9
1/0.1
0
80%の確率で状態 “0”
20%の確率で状態 “1”
1
0/0.4
1/0.6
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.722 bit
通報を「ブロック化」すると,興味深い振舞いが見られる
(情報源からの通報を複数個まとめて,一個の通報とみなす)
12
http://narayama.naist.jp/~kaji/lecture/
ブロック化の例:記憶のない場合
コイン投げ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 個だけ予想する難しさ)
13
http://narayama.naist.jp/~kaji/lecture/
マルコフ情報源とブロック化
0/0.9
1/0.1
0
80%の確率で状態 “0”
20%の確率で状態 “1”
1
0/0.4
1/0.6
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.6457 bit
ブロック化しないときは 0.722bit だった
⇒ ブロック化により,エントロピーが小さくなった
14
http://narayama.naist.jp/~kaji/lecture/
記憶のある情報源のエントロピー
一般に,記憶のある情報源では...
H1(Sn) / n(通報一個あたりのエントロピー)は,単調減少する
H1(Sn) / n は,ある一定の値 H(S) に収束していく
H1(Sn) / n
H(S)
H1(Sn) / n < H1(S)
n 個まとめて予想する難しさ
< n ×(1 個だけ予想する難しさ)
n
ある程度,通報の出現パターンが「読める」
自然語だと,“qu” は高頻出,“qz” は,まず出現しない
無記憶の場合より,振舞いが予想しやすい ⇒ エントロピー小
15
http://narayama.naist.jp/~kaji/lecture/
第一部:折り返し地点
ここまでは,「情報源の予測の難しさ」の定量化
ここからは「情報量」の定義
16
http://narayama.naist.jp/~kaji/lecture/
通報の持つ情報量
阪神タイガースの試合があったが,結果をまだ知らない
阪神が勝つ確率,負ける確率,引き分ける確率は,全部1/3
巨人ファンの友人Aからメイル:「阪神は負けなかった」
友人Aのメイルに含まれる情報の「量」は?
メイルを受け取る前:結果に関する不確かさが大きい
P(勝) = 1/3. P(引) = 1/3, P(負) = 1/3
メイルを受け取った後:結果に関する不確かさが小さくなった
P(勝) = 1/2. P(引) = 1/2, P(負) = 0
「不確かさの減少量 = 情報量」と定義したい
17
http://narayama.naist.jp/~kaji/lecture/
野球の試合の例では
メイルを受け取る前:P(勝) = 1/3. P(引) = 1/3, P(負) = 1/3
エントロピーは
1 1 1 1 1 1
 log  log  log  log 3  1.585
3 3 3 3 3 3
メイルを受け取った後:P(勝) = 1/2. P(引) = 1/2, P(負) = 0
条件付きエントロピーは
1
1 1
1
 log  log  0  log 2  1
2
2 2
2
「阪神は負けなかった」というメイルに含まれる情報量:
1.585 – 1 = 0.585 ビット
18
http://narayama.naist.jp/~kaji/lecture/
情報量とエントロピー
離れたところにある情報源 S の出力(通報)を知りたい
通報の確率分布はわかるが,何が実際出力されたか知りたい
S の出力に関し,なんらかの「ヒント」を入手したとする
ヒントにより,通報の確率分布が,別の情報源 S’ の確率分布
と一致することがわかったとする
このとき,ヒント(通報)がもたらした情報量 (information) は
H(S) – H(S’) ビット
19
http://narayama.naist.jp/~kaji/lecture/
気まぐれな友人の場合(case 1)
右図の行動を取る友人Bが
「言いたくない」と言った時の
情報量は?
P(言いたくない) = 2/3
P(勝ち,言いたくない) = 1/6
P(引分,言いたくない) = 1/3
P(負け,言いたくない) = 1/6
勝ち
引分
0.5
0.5
1.0
0.5
負け 0.5
「勝ったよ」
「言いたくない」
「負けたよ」
P(勝ち | 言いたくない) = 1/4
P(引分 | 言いたくない) = 1/2
P(負け | 言いたくない) = 1/4
「言いたくない」と言っているときのエントロピーは
1
1 1
1 1
1
 log  log  log  1.5
4
4 2
2 4
4
情報量は1.585 – 1.5 = 0.085ビット(友人Aのメイル:0.585ビット)
20
http://narayama.naist.jp/~kaji/lecture/
気まぐれな友人の場合(case 2)
友人Bが「勝ったよ」と言った
ときの情報量は?
P(勝ったよ) = 1/6
P(勝ち,勝ったよ) = 1/6
P(勝ち | 勝ったよ) = 1
P(引分 | 勝ったよ) = 0
P(負け | 勝ったよ) = 0
勝ち
引分
0.5
0.5
1.0
0.5
負け 0.5
「勝ったよ」
「言いたくない」
「負けたよ」
エントロピーは0になる
(結果を正確に知ることができる)
情報量は1.585 – 0 = 1.585ビット(友人Aのメイル:0.585ビット)
友人Aと友人B,どちらが「頼りになる」友人か?
... 個々の通報の情報量だけを見ていたのではわからない
21
http://narayama.naist.jp/~kaji/lecture/
情報量の「平均」
友人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ビット多くの情報をくれる
22
http://narayama.naist.jp/~kaji/lecture/
相互情報量
友人A,友人Bは,異なる特性を持った通信路と考えられる
「負けなかった」
「言いたくない」
通信路の入力確率変数を X,出力確率変数を Y とする
X
Y
X と Y の相互情報量 I(X; Y):
Yの各値が持つ(X に関する)情報量の加重平均
前ページでは「試合結果と友人の振舞いの相互情報量」を計算
23
http://narayama.naist.jp/~kaji/lecture/
相互情報量の意味
相互情報量:
その通信路が,どれだけの情報を伝達しているかの指標
システムとして通信路を実現することを考えると,個々の
通報の情報量より,相互情報量にこそ着目すべき
同じ通信路でも,入力分布が変わると,相互情報量も変わる
同じ友人Aでも...
勝ち,引分,負けが 1/3のチーム...相互情報量は0.918ビット
勝ち,負けが1/2のチーム...相互情報量は 1 ビット
相互情報量の取り得る最大値 ⇒ 通信路容量という
24
http://narayama.naist.jp/~kaji/lecture/
相互情報量の計算例(1)
天気予報:天気についての情報を与える,やや不正確な通信路
例:100日間の実際の天気 (X) と天気予報 (Y) の統計:
Y
晴
X
雨
P(Y)×100
晴
45
15
60
雨
12
28
40
P(X) ×100
57
43
X
現実
予報
Y
実際の天気が晴だったのは57日,PX(晴)=0.57
予報が晴といったのは60日,PY(雨)=0.60
天気 X, 予報 Y とも晴だったのは45日,PX,Y(晴,晴)=0.45
25
http://narayama.naist.jp/~kaji/lecture/
相互情報量の計算例(2)
Y
晴
X
雨
P(Y)×100
晴
45
15
60
雨
12
28
40
P(X) ×100
57
43
天気予報が当たる確率=PX,Y(晴,晴)+ PX,Y(雨,雨)=0.73
この予報と友人Aのメイル,どちらが「高性能」?
天気のエントロピー:
H ( X )  0.57 log 0.57  0.43 log 0.43  0.986
ビット
26
http://narayama.naist.jp/~kaji/lecture/
相互情報量の計算例(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 ビット
27
http://narayama.naist.jp/~kaji/lecture/
相互情報量と当たる確率
A社:
まぁまぁ当たる予報
晴
X
雨
P(Y)×100
B社:
絶対はずれる予報
晴
X
雨
P(Y)×100
Y
晴
45
15
60
雨
12
28
40
P(X) ×100
57
43
雨
57
0
57
P(X) ×100
57
43
73%
0.147ビット
Y
晴
0
43
43
0%
0.986ビット
情報の「量」は,B社予報のほうが大きい
28
http://narayama.naist.jp/~kaji/lecture/
第一部のまとめ
エントロピーの概念を導入
予測の難しさを定量化したもの
情報量,相互情報量を定義
エントロピーの減少量として定式化
システムの評価には,相互情報量の概念が有用
29
http://narayama.naist.jp/~kaji/lecture/
休憩
30
http://narayama.naist.jp/~kaji/lecture/
第二部:情報の表現方法を考える
情報は,実体を持たない抽象的なもの
情報の容器である「通報」に,具体的表現を与える必要がある
通報の表現方法...かなり大きな自由度がある
⇒ 「良い」表現方法と「良くない」表現方法がある
「良い」表現方法とは?
情報の蓄積を考えると...できるだけコンパクトであること
情報の伝達を考えると...できるだけ誤りに強いこと
相反する二つの方向性の間で,バランスを取ることが大切
技術としては,それぞれ独立したものとして扱うことが得策
31
http://narayama.naist.jp/~kaji/lecture/
第二部前半:情報のコンパクトな表現について
3種類の通報 A, B, C を,0 と 1 だけを用いて符号化する
(ただし,区切り記号は使わない)
通報 符号語
A
0
符号化すると,B と C が区別できなくなる
B
1
(一意に復号できない)
C
1
⇒ すべてを 1 ビットで表現することは不可能
A
B
C
00
10
11
一意性は保証されるが,一工夫足りない...
A
B
C
0
10
11
符号語の長さが揃っていないが...
情報をコンパクトには表現できる
32
http://narayama.naist.jp/~kaji/lecture/
様々な符号化法
A
B
C
0
10
11
A
B
C
00
11
1
A
B
C
00
10
1
いまのところベストの符号化法
上の例と似ているが,一意性が保証されない
B → 11
CC → 11
一意性は保証されるが,取り扱いが面倒
10000000 → BAAA
1000000 → CAAA
最後の一文字を見るまで,復号を行えない
最初の方式は,一意的で,即時に復号処理ができる
33
http://narayama.naist.jp/~kaji/lecture/
様々な符号化法(続)
C1
A
B
C
0
10
11
いまのところベストの符号化法
C2
A
B
C
11
10
0
本質的に,上と同じ?
通報の出現確率に偏りがある場合を考える
P(A) = 0.5
P(B) = 0.4
P(C) = 0.1
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 よりもコンパクトな表現
34
http://narayama.naist.jp/~kaji/lecture/
符号に求められる性質
良い符号の三条件:
一意に復号可能であること
瞬時に復号可能であること
平均符号長ができるだけ短いこと
理論的に最適な解法が知られている ⇒ ハフマン符号化
35
http://narayama.naist.jp/~kaji/lecture/
ハフマン符号
1.
各通報に対して節点を準備し,その発生確率を付与する
節点はそれぞれ,大きさ1の木であると考える
2.
木の中で発生確率最小のものを2つ選出し,以下を行う
1. 2つの木の根節点を子とするような,新しい根節点を作る
2. 新しい根節点と古い根節点を結ぶ枝に,0, 1 をラベル付け
3. 新しい根節点に,2つの木の発生確率の和を与える
3.
すべての節点がつながるまで,2 の操作を繰り返す
36
http://narayama.naist.jp/~kaji/lecture/
ハフマン符号化法
記号
確率
A
0.60
B
0.25
C
0.10
D
0.05
0.15
0.60 0.25 0.10 0.05
A
B
C
D
0.60 0.25 0.10 0.05
A
B
C
D
1.00
0.40
0.60 0.25 0.10 0.05
A
B
C
D
0.60 0.25 0.10 0.05
A
B
C
D
37
http://narayama.naist.jp/~kaji/lecture/
練習問題
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
符号語
等長符号の場合と比べ,平均符号長が小さくなっている
38
http://narayama.naist.jp/~kaji/lecture/
ハフマン符号とブロック化
ハフマン符号:
得られる符号は,一意かつ瞬時に復号可能
通報一個を符号語一個に符号化する方式としては,
最も効率が良い(最もコンパクト,平均符号長が小さい)
複数の通報を一まとめにして(ブロック化して)符号化すれば,
さらに効率が良くなることが知られている
39
http://narayama.naist.jp/~kaji/lecture/
ブロックハフマン符号
2つの通報をまとめて(ブロック化して)符号化する
記号 確率 符号語
A 0.6 0
B 0.3 10
C 0.1 11
平均符号長 1.4 ビット
記号 確率 符号語
AA 0.36 0
AB 0.18 100
AC 0.06 1100
BA 0.18 101
BB 0.09 1110
BC 0.03 11110
CA 0.06 1101
CB 0.03 111110
CC 0.01 111111
平均符号長 2.67 ビット
⇒ 一記号あたり 1.335 ビット
40
http://narayama.naist.jp/~kaji/lecture/
ブロック化と性能の限界
一般に,ブロック長を大きくすると,通報一記号あたりの
平均符号長は減少する
どこまで減少するか?
対象となっている情報源のエントロピーに漸近する
平均符号長
(一記号あたり)
エントロピー
ブロック長
41
http://narayama.naist.jp/~kaji/lecture/
情報源符号化定理
平均符号長
(一記号あたり)
ハフマン符号よりも良い方法を
工夫すれば,エントロピーの壁を
乗り越えられる?
エントロピー
ブロック長
任意の符号について,平均符号長は必ず L  H1(S) となる
データ圧縮における「越えられない壁」
平均符号長が L < H1(S) + 1となる符号を構成できる
ハフマン符号は,理論限界を達成する符号化方式
42
http://narayama.naist.jp/~kaji/lecture/
ユニバーサル符号化,非可逆符号化
ハフマン符号化...情報源記号の確率分布が,事前に必要
確率分布が(正確には)わからないケースも多い
⇒ ユニバーサル符号化法
どのような情報源に対しても,そこそこ良い性能を発揮
LZ77法 (lha, gzip, zoo, zip etc.)
LZ78法 (compress, stuffit etc.)
LZW法 (GIF, TIFF 等の画像フォーマット)
音声や画像等の情報...
細部まで正確に再現できなくても,実害なし
再現性を一部犠牲にして,高い圧縮率を⇒非可逆符号化
43
http://narayama.naist.jp/~kaji/lecture/
第二部:折り返し地点
ここまでは,「情報をコンパクトに表現する」おはなし
ここからは「誤った情報を訂正する」おはなし
44
http://narayama.naist.jp/~kaji/lecture/
通信路符号化
偶発的に発生する誤りから,情報を保護したい
通信路において発生するノイズから情報を守る
CD-ROM が傷ついても,中のデータは読めるようにする
基本的な考え方:
誤りを検出し,訂正するための「余分な情報」を追加する
45
http://narayama.naist.jp/~kaji/lecture/
パリティ検査符号
パリティ記号の付加:
0と1で表現されたひとまとまりのデータの中に,
1が偶数個あれば0を
1が奇数個あれば1を
データの最後にくっつける操作
01001
010010
01011
010111
誤りを含む
101001
パリティ記号の付加されたデータは,
偶数個の1を含む(偶パリティ符号)
1の個数が奇数個
⇒ 誤りの影響を受けている
サーバ用メモリ等で利用されている
46
http://narayama.naist.jp/~kaji/lecture/
誤りの検出から訂正へ
偶パリティ符号そのものには,誤り訂正能力がない
偶パリティ符号を組み合わせれば,誤り訂正可能に
例:4ビットの情報を保護したい
4ビットを長方形状に並べる
水平方向,垂直方向にパリティ記号(5ビット)を付加
0111
保護したい 0
4ビット 1
1
1
0
1
011110101
1 パリティ記号
(9, 4) 符号
5ビット
0
長さ9ビット
内4ビットが本来の情報
1
符号化率 4/9
47
http://narayama.naist.jp/~kaji/lecture/
誤り訂正の原理
前出の (9,4) 符号 ⇒ どの行・列とも,1は偶数個のはず
1ビットの誤りが発生すると…
誤りを含む行,列だけ,1が奇数個になる
受信者は,誤りの発生位置を特定することが可能
誤りは,異常のある行・列の交点に存在するはず
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
正常(誤り無し)
異常(誤りあり)
48
http://narayama.naist.jp/~kaji/lecture/
一般的な線形符号へ
前出の (9,4) 符号 ⇒ 行単位,列単位でパリティ記号を計算
二次元的な行,列にこだわる必要はない
斜めにたどる,途中で曲げる,スポット的に拾う etc…
データビットの任意の組合せからパリティ記号を計算可能
組み合わせ方により,符号の性能が変化する
線形符号:
データビットの部分集合から
パリティ記号を定義する符号
いかにして良い組み合わせ方を探すか
⇒ 符号設計者の腕の見せ所
49
http://narayama.naist.jp/~kaji/lecture/
ハミング符号
代表的な線形符号
符号語中に発生する1ビットの誤りを訂正可能
非常に効率が良い(完全符号)
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0111
0111100
(7,4)符号
効率 4/7
0111
011110101
(9,4)符号
効率 4/9
(どちらも,より大規模の符号も構成可能)
50
http://narayama.naist.jp/~kaji/lecture/
生成行列
線形符号
データビットの部分集合から,パリティ記号を定義
パリティ記号は,いくつかのデータビットの和となる
p1
x1
x2
p3
x3
x4
p2
p1 =
x2 + x3 + x4
p2 = x1
+ x3 + x4
p3 = x1 + x2 + x3
1000011
( x1 x2 x3 x4 p1 p2 p3 ) = ( x1 x2 x3 x4 ) 0100101
0010111
0001110
(+は排他的論理和)
生成行列
符号化操作 = データビットと生成行列の掛け算
51
http://narayama.naist.jp/~kaji/lecture/
検査行列
p1 =
x2 + x3 + x4
p2 = x1
+ x3 + x4
p3 = x1 + x2 + x3
x2 + x3 + x4 + p1
=0
x1
+ x3 + x4
+ p2
=0
+ p3 = 0
x1 + x2 + x3
検査行列
符号語を検査行列にかけると
ゼロベクトルになる
ゼロベクトルにならなければ,
誤りが含まれる
0111100
1011010
1110001
x1
x2
x3
x4
p1
p2
p3
=
0
0
0
誤り検出 = 受信語と検査行列の掛け算およびゼロテスト
52
http://narayama.naist.jp/~kaji/lecture/
線形符号の特徴
符号化,誤りの検出,訂正とも,行列演算により実行可能
行列演算 ⇒ 単純な組合せ回路だけで実現可能
⇒ 高速に動作させるのに有利
規模の大きな線形符号
巨大な行列に対する演算が必要となる
組合せ回路の面積増大 ⇒ 遅延,消費電力,設計困難
スケーラビリティが悪い
もっと扱いやすい線形符号は?
53
http://narayama.naist.jp/~kaji/lecture/
巡回符号
符号化,復号を,シフトレジスタで実現できる線形符号
一般の線形符号に比べ,実装面で有利
シフトレジスタ利用による配線の簡単化
符号化処理と復号処理で,回路の一部共有化が可能
代表的な巡回符号:
BCH符号
Reed-Solomon符号:
多元符号(バイト単位での取り扱い等も容易)
CD, DVD等でも採用
54
http://narayama.naist.jp/~kaji/lecture/
畳込み符号
符号化装置を,有限状態機械として実現する方式
最尤復号が,比較的効率よく行える(ビタビアルゴリズム)
統計的に,最も信頼度の高い復号法
軟判定復号の実現も容易
復号精度を上げる技術
受信値の信頼度を,0と1の二値でなく,より多段階で表現
多くの通信方式にて,畳込み符号が実際に用いられている
55
http://narayama.naist.jp/~kaji/lecture/
誤り訂正符号の応用
二次元バーコード
コード面の汚損による誤りが起こりうる
Reed-Solomon 符号の利用により,耐性向上
地上波デジタル放送
畳込み符号と Reed-Solomon 符号の二重符号化を利用
数独パズル
周辺の制約条件から,欠落情報を復元
情報理論応用ではないが,共通点が多い
56
http://narayama.naist.jp/~kaji/lecture/
本日のまとめ
第一部:情報を測る
情報の量,情報伝達系の性能を数値として測る
確率論をベースに,人間の直観にあった定式化を行う
第二部:情報を伝える
情報をできるだけコンパクトに表現する
情報をできるだけ確実に伝える
「情報理論」の簡単な概論
デジタル情報システムの重要な基盤
コンピュータ関係以外への貢献も
Claude E. Shannon
1916-2001
57
http://narayama.naist.jp/~kaji/lecture/
出欠確認・課題
情報・通信以外の分野で,情報理論の技術や考え方が
利用できる分野,技術を考えよ
58