情報処理過程を数理的にモデル化したもの...自然言語処理の基礎,...

Post on 20-May-2020

1 views 0 download

Transcript of 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎,...

1

参考書

「自然計算へのいざない」        近代科学社   実は自然は計算をしている!  自然界は、私たちが考える以上に様々な手法で計算をしている。  本書は、その計算手法―アルゴリズム―を読み解き、新たな情報処理を確立しようという 先端の試みを、数式を極力避けて平易に解説した。わくわくする 先端の科学・技術に興味のある学部生、大学院生、研究者には必携の書である。

計算理論

● 計算とは何か?について考えるための理論

計算モデル: 計算を行っていると考えられる実体の          情報処理過程を数理的にモデル化したもの

● 計算モデルを構築し,その計算モデルの計算能力を    解析することにより,計算に対する理解を深めるための理論

計算

実体

計算

計算可能な問題

計算不能な問題 数理モデル化 抽象化

全ての問題

次のスライド参照

2

さまざまな計算モデル(1)

チューリング機械 : 

句構造文法  (形式文法) : 

(部分)帰納的関数 :

ラムダ計算 :

自然言語処理の基礎, プログラミング言語の文法記述

現在のコンピュータの理論モデル

Lisp, Haskell などの関数型プログラミング言語の基礎

オートマトン :  現在のコンピュータの理論モデル,さまざまな分野への応用

Lisp, Haskell などの関数型プログラミング言語の基礎

3

さまざまな計算モデル(2)

ニューラルネットワーク : 

ペトリネット :

進化計算 :

量子計算 :

分子コンピューティング :

分散並列システムの基礎

脳神経科学の基礎, パターンマッチングへの応用

適化アルゴリズムへの応用

量子力学に基づく計算モデル

分子反応に基づく計算モデル

セルオートマトン : 細胞による計算,生命現象の基礎数理モデル, 並列システム・自己組織化の基礎

光コンピューティング : 光の照射・反射を利用した計算モデル

ビリヤード計算 : 剛体の弾性衝突現象を利用した計算モデル

4

世界で も強力な7つのアルゴリズム

計算できないことがあることを 知ることの重要性

1.検索エンジンのインデキシング 2.ページランキング 3.公開鍵暗号法 4.誤り訂正符号 5.パターン認識 6.データ圧縮 7.データベース 8.デジタル署名 9.計算不可能性

ジョン マコーミック 英ディッキンソン大学 コンピュータ・サイエンス教授。 ヒューレット・パッカードとマイクロソフトの研究所に勤めたのち現職

5

コンピュータには答えられない問題もある

ポストの対応問題

入力: 記号を2つ以上含むアルファベットΣ上の記号列の対の 有限集合 P = { (x1,y1), ……., (xn, yn) }.

出力: xi xi ・・・ xi = yi yi ・・・ yi  を満たす整数の有限列      i1, i2, …, ik が存在するなら YES,存在しないなら NO.        

1 2 k 1 2 k

6

どのように研究は進められるのか?

計算理論の研究の流れ

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

4 計算モデルを自然現象で再実装することにより   実際問題への応用を試みたり,計算の可能性を探求する.

3 計算モデルを分析し普遍化する.(計算理論の構築)

2 その観察に基づいて計算モデルを構築する.

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を   計算の観点から観察する.

自然現象や生体現象などから構築される計算理論 自然計算の理論 : 7

例えば,量子計算の場合

1  自然現象を計算の観点から観察する

2 その観察に基づいて計算モデルを構築する,

3 計算モデルを分析し普遍化する

重ね合わせ,不確定性原理,エンタングルメント,観測

量子計算量理論の発展    

量子並列計算の計算モデル

4 計算モデルを自然現象で再実装することにより   実際問題への応用を試みたり,計算の可能性を探求する.

スケーラブル量子計算機の実現に向けて...    

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

量子力学の問題を計算量的な枠組みで再検討する...    8

例えば,進化計算の場合

1  自然現象を計算の観点から観察する

2 その観察に基づいて計算モデルを構築する,

3 計算モデルを分析し普遍化する

進化の過程の数理モデル化,自然淘汰,遺伝子の突然変異や組み換え

遺伝的アルゴリズムの理論の構築(遺伝子への符号化の方法,組み換えの方法,選択の方法,等)    

遺伝的アルゴリズム(進化を 適化の過程ととらえる)

4 計算モデルを自然現象で再実装することにより   実際問題への応用を試みたり,計算の可能性を探求する.

進化計算の試験管内での実現,In Vitro Selection

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

生物の進化の 適化理論の立場からの理解...   9

オートマトンと計算論

計算モデル  計算とは何か? について考える ための理論

模倣するというアイデアに基づいて 計算の意味を与える

コンピュータの限界を知る 10

計算理論の研究の流れ(再掲)

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

4 計算モデルを自然現象で再実装することにより,   実際問題への応用を試みたり,計算の可能性を探求する.

3 計算モデルを分析し普遍化する.(計算理論の構築)

2 その観察に基づいて計算モデルを構築する.

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を   計算の観点から観察する.

自然現象や生体現象などから構築される計算理論 自然計算の理論 :

11

オートマトン理論の場合

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を   計算の観点から観察する.

「人間の思考過程」を計算の観点から観察する.

ドアの開閉を行うドアボーイの思考過程

「外界からの刺激に応じて状態を変化させ動作する」 12

オートマトン理論の場合

「外界からの刺激に応じて状態を変化させ動作する」

オートマトンの計算モデルの構築

2 その観察に基づいて計算モデルを構築する.

q1

0/0

q2

1/1 2/0

0/2

1/0

q1: ドアが閉じている状態

q2: ドアが開いている状態

0: 客がいない

1: 客が向ってくる

2: 客がドアの傍にいる

入力

0: 何もしない

1: ドアを開ける

2: ドアを閉める

出力

状態

13

オートマトン理論の場合

「本講義の内容」 = 普遍化することにより得られた理論

3 計算モデルを分析し普遍化する.(計算理論の構築)

4 計算モデルを自然現象で再実装することにより,   実際問題への応用を試みたり,計算の可能性を探求する.

電子回路によって実装して、さまざまな情報システムの 構築に応用する

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

人間の思考過程に対する考察:   状態遷移のみのオートマトンでは人間の思考能力のすべてを   理解できない 14

100円,100円

自動販売機 150円の品物を販売

品物、おつり50円

自動販売機の設計への応用

15

100円,50円

自動販売機 150円の品物を販売

品物、おつりなし

自動販売機の設計への応用

16

自動販売機の設計への応用

50円 50円おつり

50円

100円

50円

100円

100円

おつりなし

1 2

3 4

1: 合計0円が入力された状況

2: 合計50円が入力された状況

3: 合計100円が入力された状況

4: 合計150円が入力された状況

5: 合計200円が入力された状況

/ φ

/ φ / φ

/ 品物

/ 品物+50円

/ 品物

(例1)

17

オートマトンとは

l  状態を持つ機械 l  コンピュータに限らずさまざなな計算システムの   計算モデルとして用いられる l  コンピュータ科学で も重要な計算モデルの1つ

応用範囲

計算機システムの解析と設計,文字列検索, 音声認識(確率オートマトン), 離散事象システム(データベースシステムなど)の解析, 遺伝子の配列解析(確率オートマトン), 生物の発生モデル(セルオートマトン), 数値シミュレーション(セルオートマトン),等

18

文字列検索への応用

1 2 4 3

b

a

a

a

a b

b

b

aba を検索するオートマトン

a a b b a b a b a a b a

状態4に到達

(例2)

19

遺伝子配列解析への応用 ヘモグロビン遺伝子を同定するための確率オートマトン(イメージ)

A T G C C G A A C C G C G G C C C ……..

Del Del

Ins

Del Del Del Del

Ins Ins Ins Ins Ins

各記号を 確率的に生成

記号を生成しない状態

記号を挿入する状態 遺伝子を探索

ゲノムデータベース 20

有限の記憶を持つシステムの計算能力

フリップフロップ回路

有限オートマトン(ムーア機械,ミーリー機械なども含む)

有限の記憶を持つシステムの計算能力はどのようなもの?

数理モデル

21

教科書 

(1) 「オートマトン・言語理論」  富田悦治,横森貴 森北出版 

参考書 

(2) 「計算理論とオートマトン言語理論」  丸岡章   サイエンス社    ★入門的 (1)では記述していない計算量理論が多少詳しい。

★平易な記述,例も豊富

(3) 「形式言語とオートマトン」  守屋悦朗   サイエンス社    ★入門的なテキストに見えるが、実は内容はかなり理論的。      入門的なテキストで勉強してから読むのが良い。 

22

参考書 

「言語理論とオートマトン」  J.E. ホップクロフト,J.D. ウルマン  (野崎他訳)    サイエンス社 

古典的?名著(かなり理論的な書き方になっている)

「オートマトン・言語理論・計算論 I,II」                     J.E. ホップクロフト,J.D. ウルマン  (野崎他訳)    サイエンス社 

「計算論とオートマトン理論」  A.サローマ  (野崎他訳)    サイエンス社 

「オートマトンの理論」  小林孝次郎,高橋正子  共立出版 

23

準備

: 有限アルファベット (記号の有限集合)

上の語 :  の要素の有限列 w=a1a2… an (ai∈Σ) 

w の長さ lg(w) = n

Σ* = { w | w はΣ上の語 }  (Σのスター閉包)

(例3) 

空語 : 長さ0の語  → εであらわす 

注意 24

決定性有限オートマトンDeterministic Finite Automaton

l  有限の状態を持つ受理機械

l  Moore 型順序機械の特殊な場合ともみなせる

l  略して DFA  

25

Def. 決定性有限オートマトン

M = (Q, Σ, δ, p0 , F)

Q : 状態の有限集合 Σ : 入力アルファベット δ : Q X Σ→ Q (状態遷移関数) p0 : 初期状態 F  : 終状態の集合

26

オートマトンの例

p q

0

1

1

0

Σ= {0,1} Q = { p, q, r } p0 = p : 初期状態は p δ(p,0) = p, δ(p,1) = q, δ(q,0) = p, δ(q,1) = r, δ(r,0) = p, δ(r,1) = r F = { r } r

1

0

(例6)

11で終わる語を受理する 入力列  0 1 0 1 1 状態列 p p q p q r

27

状態遷移関数の拡張

δ:QXΣ→Q を 以下の定義により

:QXΣ*→Q に拡張する

(例6)では、

はδの複数回の遷移を表す 

以後、   をδで代用して表す  28

正則言語

(例6)では、

オートマトン M が受理する言語:   L(M) = { w ∈ Σ* | δ(p0, w) ∈ F }

言語 L が正則であるとは、あるDFA Mによって、 L = L(M) と表せることである。

L(M)={ x11 | x ∈Σ* }

正則言語 L は一般に複数の DFA で表現できる。

a a

a

a a a M1 M2

L(M1)=L(M2)={a2n+1 | n ≧0 } (例7) 

M2 は冗長な 状態を持つ!

p0 p1

p2 p3 29

計算システムの計算能力を解析する

30

計算システムの普遍的な理論

1. すべての入力に対するM1とM2の動作を比較する. 

2. お互いの計算システムの振る舞いを模倣する 

計算システムM1と計算システムM2の計算能力を 比較する2つの方法 

M1の動作をM2で模倣する  M2の動作をM1で模倣する 

DFA と DFA の計算能力を比較するには?

全て入力に対して2つのDFAを動かして、計算能力を比較する。

普遍的な理論の構築へ

有限の記憶を持つシステムの計算能力を解析する 普遍的な理論の構築へ向けて(1)

31

状態の同値性

Def. 状態 p と q (p,q∈ Q) が同値である     ⇔ 

(例7)における p0 と p2 , および p1 と p3 は同値である。 

def

32

状態の同値性の調べ方 p,q から同じ入力によって遷移する状態対が

終状態であるか非 終状態であるかに関して 同じ振る舞いをするかどうかを調べる。

判断基準 (1)                   の場合→同値でない (2) 既に調べた状態対、またはその入れ替えた対に     到達したときは、そこで探索終了 (3) 同じ状態からなる対に到達したときは、そこで探索終了 (4) (1)の基準を満たさずに全探索が終了した場合                            → 同値である

状態対の可能性は高々|Q|2 通りしかないので、 必ず探索は終了する。

33

0 p q

r

0 1 0

1 0

1

1

(3) (3)

q と r は同値!(4)

p と q は同値でない(1)

p と r は同値でない(1)

q と r を同じ状態にして簡約化(状態数を減らすこと)ができるはず 

p q, r

0 1 0

1

34

0

s

q 0

0

0

1

(2) (2)

r と s は同値!(4)

p と q は同値でない(1)

p と r は同値でない(1)

r と s を同じ状態にして簡約化できるはず 

r

p 1 1

1 1

0

0 (1)

q 0

r

p 1

0,1

0,1 35

DFAの等価性

Def. 2つのDFA Mi = (Qi, Σi, δi, p0i, Fi ) (i=1,2) が等価である     ⇔ L(M1) = L(M2)

M1 と M2 が等価 (必要十分)   ⇔    M1 と M2 をあわせたオートマトンにおける状態         p0 と p0 が同値

def

1 2

36

0

s

q 0 1

0

1

p と t は同値!(4)

r

p 1

1 1

0

u

t 1

0,1

0

0

M1

M2

0 1 0 1

0 1 (2) (2) (2)

(2) (2)

M1 と M2 は等価 

37

補足

状態集合 q ⊆ Q に対して,

δ(q,a) = { p’ | δ(p,a) = p’, p ∈ q }

と定義する。

一般に広義の有限オートマトンでは、状態遷移関数はすべての 入力記号について定義されていなくてもよい。 (δとして部分関数も許す)

38

非決定性有限オートマトンNon-deterministic Finite Automaton l  ある状態に対し,同じ入力での遷移先が   2箇所以上存在する。 l  略して NFA  

p q 1

r

1

39

Def. 非決定性有限オートマトン M = (Q, Σ, δ, p0 , F)

Q : 状態の有限集合 Σ : 入力アルファベット δ : Q X Σ→ 2Q (状態遷移関数) p0 : 初期状態 F  : 終状態の集合

DFA における  : p から w で到達できる状態  

NFA における  : p から w で到達できる状態の集合  

NFA M が受理する言語:   L(M) = { w ∈ Σ* | δ(p0, w) ∩ F ≠  }

以後、   をδで代用して表す 

[δの拡張] 

( )

40

NFAの例

q r

1

1

s 0,1

0

(例8)

p 1

M = ( Q,Σ,δ,p0,F )

L(M) = { w110n | w∈{0,1}*, n≧0 } となる オートマトンは? DFA より NFA の方が作りやすい。 

0,1

0

δ(p,0) = { p }, δ(p,1) = { p,q }, δ(q,0) = { s }, δ(q,1) = { r }, δ(r,0) = { r }, δ(r,1) = { s }, δ(s,0) = { s }, δ(s,1) = { s } .

Q = { p, q, r, s }, F = { r }, p0 = p,

41

q r

1

1

s 0,1

0

(例8)における遷移の例 

p 1 M

0,1

0

δ(p, 110) を求めるには?

δ(p,1) = { p,q } δ(p,11) = δ(p,1) ∪ δ(q,1) = { p,q,r }

δ(p,110) = δ(p,0) ∪ δ(q,0) ∪ δ(r,0) = { p,r,s }

δ(p,110)∩F ≠   なので、110 ∈ L(M) 42

NFA と DFA の計算能力を比較するには?

「それぞれの計算モデルでもう一方のモデルの  計算過程を模倣する」ことにより、計算能力を比較する。

普遍的な理論の構築へ

有限の記憶を持つシステムの計算能力を解析する 普遍的な理論の構築へ向けて

43

計算能力に差はあるのか?

特に記憶容量と計算時間を 問題にしない場合...

さまざまなコンピュータ

44

状態 S1 状態 S20 状態 S40

S2

S3

S4

S5

S19

: : : :

CPU 1 CPU 2 CPU 3

S21

S22

S23

S24

S39

: : : :

S41

S42

S43

S44

S59

: : : :

………. 状態 S1

S2

S19

: :

CPU ……….

q1

q2

S2

q3

q4

状態 S20

S21

S39

: :

q5

q6

S22

q7

q8

状態 S40

S41

S59

: :

q10

q11

S42

q12

q13

遅くて複雑になるかも しれないけれど 真似ることができる

コンピュータA コンピュータB

コンピュータBで コンピュータAを 模倣する.

45

長くて複雑になるかも しれないけれど 定義することができる

言語 A 言語 B

電話 音声を電気信号に変換して離れた場所に送り、 再び音声に戻して通話する機械

テレビ 電波を利用して、物体の移動する様子を時々刻々と送り、および、その電波を受けて表示するための 装置

他の模倣の例

言語Aと言語Bの能力は等しい 46

時間はかかるかもしれない けれど,日常生活の基本は 親を真似て学習する 親 子供

他の模倣の例

人間Aと人間Bの能力は等しい?

動作や作業にかかる時間は無視したとしても, 創造性を発揮する分野には差がある

「コンピュータや機械」と「人間」の大きな違いの1つ         創造性のあるなし

47

組み合わせ回路の計算能力を 比較する際の模倣

どの構成要素を使ってコンピュータを作ればよいのだろう?

48

組み合わせ回路の計算能力を 比較する際の模倣

ANDをNANDで実現する

ORをNORで実現する

模倣の例:

49

プログラミング言語で 別のプログラミング言語を実装する

CでC++を実装する。

C++でJavaを実装する。

模倣の例:

Lisp で Prolog を実装する。

結果として、プログラミング言語間の計算能力の比較を している。

50

DFAとNFAの受理能力

Th. DFA と NFA の受理能力は等しい。 

NFA M1=(Q, Σ, δ1, p0, F1) から L(M2)=L(M1) となるような DFA M2 を構成する。 

[部分集合構成法]

M2 = ( 2Q, Σ, δ2, q0, F2) q0 = { p0 }, F2 = { q | q ⊆ Q, q ∩ F1 ≠ } δ2(q, a) = δ1(q,a) ( = { p’ | δ1(p,a) = p’, p ∈ q } )

δ1(p0,x) ∩ F1 ≠  δ2(q0,x) ∈ F2  

必要十分  が成り立つ。 

状態数が爆発的に増大する。

51

部分集合構成法の適用例 (例8)の NFA を DFA に変換する 

q r

1

1

s 0,1

0

p 1 M1

0,1

0

52

部分集合構成法の適用例

q r

1

1

s 0,1

0

(例8)の NFA を DFA に変換する 

p 1 M1

0,1

0

53

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

54

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

55

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

56

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

57

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

58

部分集合構成法の適用例

0

q0

M2

0

1 q1 q3 q6

q2

q4

q5

0

1 1

1 1

0

0

1

0

1

0

59

ε動作を許したNFA

l  ε動作:入力記号を用いずに状態変化できる

(例9) 

p1 p2

2

p0

1 0

ε ε

{ 0l1m2n | l,m,n ≧0 } を受理する。 

ε動作を持たないNFAに変換できるか?

60

ε動作の除去の仕方

ε閉包 : ε-Cl(p) = p からε動作だけで到達できる               状態の集合(p も含める) 

(例9)では 

p1 p2

2

p0

1 0

ε ε

ε-Cl(p0) = { p0, p1, p2 } ε-Cl(p1) = { p1, p2 } ε-Cl(p2) = { p2 }

61

ε動作の除去の仕方

状態集合 X に対しては,

と定義する。 

ε動作を持つNFA M=(Q,Σ,δ,p0,F ) に対し,

M ’ =(Q,Σ,δ’,p0,F ’ ) を構成すればよい。 

F ’ = のとき 

のとき  62

ε動作の除去の例 (例9)では 

p1 p2

2

p0

1 0

ε ε

63

ε動作の除去の例

p1 p2

2

p0

1 0

ε ε

64

ε動作の除去の例

p1 p2

2

p0

1 0

ε ε

65

ε動作の除去の例

p1 p2

2

p0

1 0

0,1 1,2

0,1,2

得られたε動作なしのNFA

66

まとめ

以下のオートマトンの受理能力は等しい。   決定性有限オートマトン   非決定性有限オートマトン   ε動作つき非決定性有限オートマトン 

67

Lem.  L = { anbn | n ≧ 1 } は正則言語でない。

非正則言語の例

L=L(M) となるDFA M = (Q, Σ, δ, p0, F) が存在した として矛盾を導く。|Q| = n0 とおく。w=an0bn0 を受理する状況を考える。

p0 pi1 pi2

Pin a a a Pin +1

b b p2n ∈ F

初の n0+1 個の状態の中に同じ状態 pis , pit

(0≦s<t≦n0)が 存在するはず。

0 0 0

68

p0 pi1 pin

a a Pin +1

b b P2n ∈ F

このとき,この2つの状態間の遷移を除去することにより, 以下の遷移が得られる。

Pis Pit+1

a

pit

=

これは,an0-(t-s)bn0 ∈ L を意味し,L の定義に矛盾する。

0 0 0

69