42
Inverse Entailment and Inverse Entailment and Progol Progol Stephen Muggleton Stephen Muggleton 有有有有有 有有 有有有有有 有有 1 1 有有 有有 有有 有有

Inverse Entailment and Progol Stephen Muggleton

Embed Size (px)

DESCRIPTION

Inverse Entailment and Progol Stephen Muggleton. 有川研究室 修士 1 年 坂東 恭子. 発表の流れ. ・はじめに ・帰納論理プログラミング( ILP )とは ・ Progol の説明 ・まとめ. 一階述語論理式を学習しよう. 背景知識を使おう. はじめに. 機械学習:決定木. 帰納論理プログラミング( ILP ). 帰納論理プログラミングとは?. 帰納論理 プログラミング. 機械学習 machine learning. 論理プログラミング logic programming. - PowerPoint PPT Presentation

Citation preview

Page 1: Inverse Entailment  and  Progol Stephen Muggleton

Inverse Entailment and ProgolInverse Entailment and Progol

Stephen MuggletonStephen Muggleton

有川研究室 修士有川研究室 修士 11 年年坂東 恭子坂東 恭子

Page 2: Inverse Entailment  and  Progol Stephen Muggleton

発表の流れ発表の流れ

・はじめに

・帰納論理プログラミング( ILP )とは

・ Progol の説明

・まとめ

Page 3: Inverse Entailment  and  Progol Stephen Muggleton

はじめに機械学習:決定木

背景知識を使おう一階述語論理式を学習しよう

帰納論理プログラミング(帰納論理プログラミング( ILPILP ))帰納論理プログラミング(帰納論理プログラミング( ILPILP ))

Page 4: Inverse Entailment  and  Progol Stephen Muggleton

帰納論理プログラミングと帰納論理プログラミングとは?は?

機械学習  machine learning

論理プログラミング logic programming

帰納論理プログラミング

背景知識、正例、負例

負例を説明せず、正例を説明する仮説をみつける

Page 5: Inverse Entailment  and  Progol Stephen Muggleton

ILP ILP システムの例システムの例・ GOLEM  : 92 年、 Muggleton らによって開発された          RLGG(Relative Least General Generalization)  に基づく ILP システム

・ Progol   :95 年、 Muggleton らによって開発された       逆伴意( inverse entailment )に基づく ILP       システム

・ FOIL   :90 年、 Quinlan によって開発された ILP システム

・ GKS  : 95 年、溝口によって開発された ILP システム

Page 6: Inverse Entailment  and  Progol Stephen Muggleton

Progol Progol とは?とは?

・ 95 年、 Muggleton によって開発された ILP システム

・ C, Prolog で作られたシステム

・逆伴意(逆伴意( inverse entailmentinverse entailment ))の考えを使う

Page 7: Inverse Entailment  and  Progol Stephen Muggleton

伴意 (entailment) とは?

A  ⊨  B

・伴意 =  論理的帰結論理的帰結

・記号 ⊨ を使う

・ B は A の伴意である・ B は A の論理的帰結である

・背景知識+仮説 ⇒ 例記号を使って表すと

B( 背景知識 )  ∧  H (仮説) ⊨  E (例)

Page 8: Inverse Entailment  and  Progol Stephen Muggleton

逆伴意逆伴意 (inverse entailment)(inverse entailment) ととは?は?

演繹定理より

逆伴意逆伴意: 伴意を逆向きに読む            背景知識と例から仮説を得る逆伴意逆伴意: 伴意を逆向きに読む            背景知識と例から仮説を得る

伴意: B( 背景知識 )  ∧  H (仮説) ⊨  E (例)

  H (仮説) ⊨  B( 背景知識 ) → E (例)

Page 9: Inverse Entailment  and  Progol Stephen Muggleton

ProgolProgol の仮説生成プロセスの仮説生成プロセス

逆伴意に基づき最も特殊な節(最弱仮説)を構成

最も特殊な節を包摂する空間(最弱仮説空間)において、最良優先探索

最良な仮説をみつける

Page 10: Inverse Entailment  and  Progol Stephen Muggleton

仮説と最弱仮説の関係

ここを求める

探索空間が縮小される

一般的

特殊

仮説

正例

仮説 正例特殊化

最弱仮説特殊化

正例

仮説 最弱仮説特殊化

Page 11: Inverse Entailment  and  Progol Stephen Muggleton

最弱仮説の生成最弱仮説の生成

・ B ¬ E から最弱仮説を演繹的に計算可能

H (仮説) ⊨  B( 背景知識 ) → E (例)

¬( B → E ) ⊨ ¬ H

B ¬ E  ⊨ ¬ H

対偶をとって

すべてのモデルで真な基底リテラルの連言(): bot

(B,E)

B ¬ E  ⊨ ¬  bot(B,E) ¬ H は¬  bot(B,E)

 の部分連言()

Page 12: Inverse Entailment  and  Progol Stephen Muggleton

証明:¬ H は¬  bot(B,E) の部分連言()

¬ H が¬  bot(B,E) 以外の基底リテラルを含む

¬  bot(B,E) = l1 ・・・ ln

¬  H = l1 ・・・ ln lk lk+1

B ¬ E  には lk , lk+1 を含まないモデルが存在

B ¬ E   ⊭ ¬ H

Page 13: Inverse Entailment  and  Progol Stephen Muggleton

¬ H は¬  bot(B,E) の部分連言()

B ¬ E ⊨  ¬  bot(B,E)  ⊨ ¬ H

対偶をとって

H  ⊨  bot(B,E)  

B ¬ E から最弱仮説を演繹的に計算可能B ¬ E から最弱仮説を演繹的に計算可能

最弱仮説 MSH

Page 14: Inverse Entailment  and  Progol Stephen Muggleton

正例:          負例:gf (波平,タラオ)       gf (波平 ,カツオ)gf (洋平,カツオ)       gf (舟,タラオ) gf (洋平,サザエ)       gf (洋平,タラオ)gf (洋平,ワカメ)

背景知識: f (波平,サザエ), m (舟,ワカメ), f (波平, カツオ), f (波平,ワカメ),      m (サザエ,タラオ), f (洋平,波平)       p ( A , B ) :- f ( A , B ), p ( A , B ) :- m ( A , B )

Page 15: Inverse Entailment  and  Progol Stephen Muggleton

海平

波平 舟

サザエ マスオ

タラオ

ワカメ カツオ

洋平

Page 16: Inverse Entailment  and  Progol Stephen Muggleton

正例 E+ : gf (波平,タラオ)について

B     ¬ E   ⊨   ¬ MSH

B     ¬ E= ¬ gf (波平,タラオ)   f (波平,サザエ) m (舟,サザエ) f (波平,カツオ)   f (波平,ワカメ) m (サザエ,タラオ) f (洋平,波平)   p ( A , B ) :- f ( A , B ) p ( A , B ) :- m ( A , B )

¬ MSH は基底リテラルの連言

= ¬ gf (波平,タラオ)  f (波平,サザエ) m (舟,サザエ) f (波平,カツオ) f (波平,ワカメ) m (サザエ,タラオ) f(洋平,波平)  p (波平,サザエ) p (舟,サザエ) p (波平,カツオ)  p (波平,ワカメ) p (サザエ,タラオ) p(洋平,波平)

¬ MSH は B ¬ E のすべてのモデルで真¬ MSH は B ¬ E のすべてのモデルで真

Page 17: Inverse Entailment  and  Progol Stephen Muggleton

MSH =¬ ( ¬ gf (波平,タラオ)  f (波平,サザエ) m (舟,サザエ) f (波平,カツオ) f (波平,ワカメ) m (サザエ,タラオ) f (洋平,波平)  p (波平,サザエ) p (舟,サザエ) p (波平,カツオ)  p (波平,ワカメ) p (サザエ,タラオ) p (洋平,波平) )

== gf (波平,タラオ) :- f (波平,サザエ) , m (舟,サザエ) ,             f (波平,カツオ) , f (波平,ワカメ) ,       m (サザエ,タラオ) ,f (洋平,波平) ,              p (波平,サザエ) , p (舟,サザエ) ,             p (波平,カツオ) , p (波平,ワカメ) ,       p (サザエ,タラオ) ,p (洋平,波平)

と同じ意味

Page 18: Inverse Entailment  and  Progol Stephen Muggleton

最弱仮説から仮説を求める

一般的

特殊

仮説

最弱仮説

H (仮説) ⊨  MSH (最弱仮説)

最弱仮説を伴意する最良な仮説を求める最弱仮説を伴意する最良な仮説を求める

伴意を機械的に行うのは困難

伴意を包摂で近似し、仮説空間を探索しよう伴意を包摂で近似し、仮説空間を探索しよう

Page 19: Inverse Entailment  and  Progol Stephen Muggleton

ProgolProgol の仮説生成プロセスの仮説生成プロセス

逆伴意に基づき最も特殊な節(最弱仮説)を構成

最弱仮説を包摂する空間(最弱仮説空間)において、最良優先探索

最良な仮説をみつける

Page 20: Inverse Entailment  and  Progol Stephen Muggleton

A*-likeA*-like  探索 探索

・ Progol で使われている探索方法

・最弱仮説空間(最弱仮説を包摂する空間)を 探索し、最良仮説を得る

・ A* 探索を擬似して,作られている

Page 21: Inverse Entailment  and  Progol Stephen Muggleton

A* A* 探索探索

・グラフにおける最良優先探索           ・評価関数 f(n) を最小にするパスをみつける。 f(n) = g(n) + h(n) : n 経由の最短解の見積りコスト

g(n): 出発接点から接点 n までの経路のコスト

h(n): ヒューリスティック関数 n からゴールまでの見積りコスト

Page 22: Inverse Entailment  and  Progol Stephen Muggleton

G

S

A

B

C

D

E

F

I

H

10

14

10

21

18

7

12

14

9

10

13

8

Page 23: Inverse Entailment  and  Progol Stephen Muggleton

ヒューリスティック関数(ゴールとの直線距離)

S : 36A : 32B : 25C : 24D : 23E : 19F : 16H : 10I : 18G : 0

S f=36

A B

f=10+32=42 f=14+25=39

S E I

f=24+36=60 f=22+19=41 f=24+18=42

Page 24: Inverse Entailment  and  Progol Stephen Muggleton

E f=22+19=41

B F H

f=31+10=41f=38+16=54f=30+25=55

E F G

f=40+19=59 f=44+16=60 f=41+0=41

よって、最良経路は、 S B E H G

Page 25: Inverse Entailment  and  Progol Stephen Muggleton

G

S

A

B

C

D

E

F

I

H

10

14

10

21

18

7

12

14

9

10

13

8

Page 26: Inverse Entailment  and  Progol Stephen Muggleton

A*-like  探索グラフの生成

・探索空間・・・最弱仮説( MSH )を包摂する空間

・( empty set )からはじまるグラフを作り、そのグラフ について最良優先探索を行う。

Page 27: Inverse Entailment  and  Progol Stephen Muggleton

MSH(MSH( 最弱仮説最弱仮説 ))== gf (波平,タラオ) :- f (波平,サザエ) , m (舟,サザエ) ,             f (波平,カツオ) , f (波平,ワカメ) ,       m (サザエ,タラオ) ,f (洋平,波平) ,              p (波平,サザエ) , p (舟,サザエ) ,             p (波平,カツオ) , p (波平,ワカメ) ,       p (サザエ,タラオ) ,p (洋平,波平)

Page 28: Inverse Entailment  and  Progol Stephen Muggleton

gf ( A , B )

gf ( A,B ): -f(A,C)

gf ( A,B ): -m(C,D)

gf ( A,B ): -m(C,B)

gf ( A,B ): -f(C,A)

gf ( A,B ): -p(A,C)

gf ( A,B ): -p(C,D)

gf ( A,B ): -p(C,B)

gf ( A,B ): -f(A,C),

m(D,C)

gf ( A,B ): -f(A,C),

m(C,B)

gf ( A,B ): -f(A,C),

f(D,A)

gf ( A,B ): -f(A,C),

p(A,C)

gf ( A,B ): -f(A,C),

p(D,C)

gf ( A,B ): -f(A,C),

p(C,B)

gf ( A,B ): -f(A,C),

p(D,A)

・・・・・・ ・・・・・・ ・・・・・・

最も特殊な節

gf(A,B):-f(A,C),m(D,C),f(A,E),m(C,B),f(F,A), p(A,C),p(D,C),p(A,E),p(C,B),p(F,A)

Page 29: Inverse Entailment  and  Progol Stephen Muggleton

グラフ内 A*-like 探索・評価関数として記述長最小原理を使う。

・ compression gaincompression gain が最も大きいものが最良

{仮説のリテラル長}={仮説のリテラル長}={その時点の仮説のリテラル長}+{追加されるリテラル長}{その時点の仮説のリテラル長}+{追加されるリテラル長}

                - ( {仮説のリテラル長}+ {説明される負事例の数} )

{ 説明される正事例の数 }

compression gain =

gg((nn)) = = {仮説のリテラル長}+{説明される{仮説のリテラル長}+{説明される負事例}負事例}

Page 30: Inverse Entailment  and  Progol Stephen Muggleton

・{追加されるリテラルの最小値}をヒューリスティックヒューリスティック 関数 関数で与える

・  f(n) =説明される正事例の数-{ g(n) + h(n) }  が最大になる仮説を見つける

・全解探索(仮説空間すべて考慮)

h(n) = head 部の出力変数がすべて、 body 部の入力変数    として存在しない時に追加するリテラルの最小値

gf ( A,B ): -f(A,C)B についてのリテラルを追加

p(A,B,C): -q(A,D) B, C についてのリテラルを追加

Page 31: Inverse Entailment  and  Progol Stephen Muggleton

gf ( A , B )

gf ( A,B ): -f(A,C)

gf ( A,B ): -m(C,D)

gf ( A,B ): -m(C,B)

gf ( A,B ): -f(C,A)

gf ( A,B ): -p(A,C)

gf ( A,B ): -p(C,D)

gf ( A,B ): -p(C,B)

gf ( A,B ): -f(A,C),

m(D,C)

gf ( A,B ): -f(A,C),

m(C,B)

gf ( A,B ): -f(A,C),

f(D,A)

gf ( A,B ): -f(A,C),

p(A,C)

gf ( A,B ): -f(A,C),

p(D,C)

gf ( A,B ): -f(A,C),

p(C,B)

gf ( A,B ): -f(A,C),

p(D,A)

・・・・・・ ・・・・・・ ・・・・・・

gf(A,B):-f(A,C),m(D,C),f(A,E),      m(C,B),f(F,A), p(A,C),      p(D,C),p(A,E),p(C,B),p(F,A)

4 - (0+3+2)= - 1

ー 2 0 - 2 - 1   - 2    0

ー 3 ー 1 ー 3 ー 1 ー 3 2 ー 3

4 - (10+0)= ー 6

4 - (1+2+1)= 0

・・・・・・ 最良な仮説

Page 32: Inverse Entailment  and  Progol Stephen Muggleton

実世界での応用

・突然変異性物質の判別問題( King )  

・データベースからの知識発見(嶋津,古川) 電子メール分類システム

・暗黙知の獲得(古川)   理想的な弓の動かし方

 仮説:化合物の突然変異性に関するルール

事例:突然変異を有する化合物背景知識:化合物の原子と結合情報

Page 33: Inverse Entailment  and  Progol Stephen Muggleton

まとめまとめ・ Progol における仮説生成

逆伴意に基づき,背景知識と正例から最弱仮説を生成

最弱仮説を包摂する木において A*-like 探索

・・ ProgolProgol の利点の利点探索空間が縮小される探索空間が縮小される

Page 34: Inverse Entailment  and  Progol Stephen Muggleton
Page 35: Inverse Entailment  and  Progol Stephen Muggleton

背景知識背景知識

・既に持っている知識

・背景知識があるとより正確な理論が 得られる

・背景知識として、事実とルールが利用 可能

Page 36: Inverse Entailment  and  Progol Stephen Muggleton

背景知識なし正例: D1 = CuddlyPet(x) Small(x) , Fluffy(x) , Dog(x) D2 = CuddlyPet(x) Fluffy(x) , Cat(x)

背景知識あり背景知識: Pet(x) Cat(x) , Pet(x) Dog(x) Small(x) Cat(x)

D = CuddlyPet(x) Small(x) , Fluffy(x) , Pet(x)

C = CuddlyPet(x) Fluffy(x)

Cuddly :やわらかい Fluffy :ふわふわした

Page 37: Inverse Entailment  and  Progol Stephen Muggleton

特殊な節とは?・節には半順序関係がある

一般的

特殊

一般的:多くの例を説明する特殊:少ない例しか説明しない

p(A,B)   p(A,A).

一般的      特殊

p(A,B)   p(A,B):-q(A,B)

>p(A,B)   p(桂子 ,B)>

Page 38: Inverse Entailment  and  Progol Stephen Muggleton

記述長最小原理記述長最小原理

・学習の記述量・・・機械学習にとって重要な問題

・記述量の多い仮説が多くの例を説明できるのは 当然

できるだけ少ない記述量で多くの例を説明はできないか?

記述長最小原理記述長最小原理記述長最小原理記述長最小原理

Page 39: Inverse Entailment  and  Progol Stephen Muggleton

包摂( subsumption )とは?定義:  H1,H2: 節  H1θ H2 ⊆ となるような代入 θ が存在

H1 は H2 を θ-subsume ( θ- 包摂)する。例 : parent (花子 , 太郎) :- mother(花子 , 太郎 ) を考える包摂する節   parent(花子 , 太郎 )         parent (A, 太郎 ) : - mother(花子 , 太郎 ) parent (A, B) :- mother (A, B)

包摂 = 部分集合 + 逆代入

包摂しない節 parent(花子,次郎 )           parent (A, B) :- mother (B, A)  

Page 40: Inverse Entailment  and  Progol Stephen Muggleton

伴意と包摂の関係

  A subsume( 包摂する ) B A B⊨

伴意を包摂で近似しよう伴意を包摂で近似しよう伴意を包摂で近似しよう伴意を包摂で近似しよう

Page 41: Inverse Entailment  and  Progol Stephen Muggleton

部分連言だと伴意されるA=l1 ・・・ ln

B=l1 ・・・ lnln+1

B を真にするような解釈は A も真にする

B ⊨ A  : B は A を伴意するB ⊨ A  : B は A を伴意する

Page 42: Inverse Entailment  and  Progol Stephen Muggleton

正例:          負例:gf (波平,タラオ)       gf (波平 ,カツオ)gf (洋平,カツオ)       gf (舟,タラオ) gf (洋平,サザエ)       gf (洋平,タラオ)gf (洋平,ワカメ)

背景知識: f (波平,サザエ), m (舟,ワカメ), f (波平, カツオ), f (波平,ワカメ),      m (サザエ,タラオ), f (洋平,波平)       p ( A , B ) :- f ( A , B ), p ( A , B ) :- m ( A , B )