Upload
ciaran-lang
View
81
Download
5
Embed Size (px)
DESCRIPTION
Inverse Entailment and Progol Stephen Muggleton. 有川研究室 修士 1 年 坂東 恭子. 発表の流れ. ・はじめに ・帰納論理プログラミング( ILP )とは ・ Progol の説明 ・まとめ. 一階述語論理式を学習しよう. 背景知識を使おう. はじめに. 機械学習:決定木. 帰納論理プログラミング( ILP ). 帰納論理プログラミングとは?. 帰納論理 プログラミング. 機械学習 machine learning. 論理プログラミング logic programming. - PowerPoint PPT Presentation
Citation preview
Inverse Entailment and ProgolInverse Entailment and Progol
Stephen MuggletonStephen Muggleton
有川研究室 修士有川研究室 修士 11 年年坂東 恭子坂東 恭子
発表の流れ発表の流れ
・はじめに
・帰納論理プログラミング( ILP )とは
・ Progol の説明
・まとめ
はじめに機械学習:決定木
背景知識を使おう一階述語論理式を学習しよう
帰納論理プログラミング(帰納論理プログラミング( ILPILP ))帰納論理プログラミング(帰納論理プログラミング( ILPILP ))
帰納論理プログラミングと帰納論理プログラミングとは?は?
機械学習 machine learning
論理プログラミング logic programming
帰納論理プログラミング
背景知識、正例、負例
負例を説明せず、正例を説明する仮説をみつける
ILP ILP システムの例システムの例・ GOLEM : 92 年、 Muggleton らによって開発された RLGG(Relative Least General Generalization) に基づく ILP システム
・ Progol :95 年、 Muggleton らによって開発された 逆伴意( inverse entailment )に基づく ILP システム
・ FOIL :90 年、 Quinlan によって開発された ILP システム
・ GKS : 95 年、溝口によって開発された ILP システム
Progol Progol とは?とは?
・ 95 年、 Muggleton によって開発された ILP システム
・ C, Prolog で作られたシステム
・逆伴意(逆伴意( inverse entailmentinverse entailment ))の考えを使う
伴意 (entailment) とは?
A ⊨ B
・伴意 = 論理的帰結論理的帰結
・記号 ⊨ を使う
・ B は A の伴意である・ B は A の論理的帰結である
・背景知識+仮説 ⇒ 例記号を使って表すと
B( 背景知識 ) ∧ H (仮説) ⊨ E (例)
逆伴意逆伴意 (inverse entailment)(inverse entailment) ととは?は?
演繹定理より
逆伴意逆伴意: 伴意を逆向きに読む 背景知識と例から仮説を得る逆伴意逆伴意: 伴意を逆向きに読む 背景知識と例から仮説を得る
伴意: B( 背景知識 ) ∧ H (仮説) ⊨ E (例)
H (仮説) ⊨ B( 背景知識 ) → E (例)
ProgolProgol の仮説生成プロセスの仮説生成プロセス
逆伴意に基づき最も特殊な節(最弱仮説)を構成
最も特殊な節を包摂する空間(最弱仮説空間)において、最良優先探索
最良な仮説をみつける
仮説と最弱仮説の関係
ここを求める
探索空間が縮小される
一般的
特殊
仮説
正例
仮説 正例特殊化
最弱仮説特殊化
正例
仮説 最弱仮説特殊化
最弱仮説の生成最弱仮説の生成
・ B ¬ E から最弱仮説を演繹的に計算可能
H (仮説) ⊨ B( 背景知識 ) → E (例)
¬( B → E ) ⊨ ¬ H
B ¬ E ⊨ ¬ H
対偶をとって
すべてのモデルで真な基底リテラルの連言(): bot
(B,E)
B ¬ E ⊨ ¬ bot(B,E) ¬ H は¬ bot(B,E)
の部分連言()
証明:¬ 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
¬ H は¬ bot(B,E) の部分連言()
B ¬ E ⊨ ¬ bot(B,E) ⊨ ¬ H
対偶をとって
H ⊨ bot(B,E)
B ¬ E から最弱仮説を演繹的に計算可能B ¬ E から最弱仮説を演繹的に計算可能
最弱仮説 MSH
正例: 負例: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 )
海平
母
波平 舟
サザエ マスオ
タラオ
ワカメ カツオ
洋平
妹
正例 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 のすべてのモデルで真
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 (洋平,波平)
と同じ意味
最弱仮説から仮説を求める
一般的
特殊
仮説
最弱仮説
H (仮説) ⊨ MSH (最弱仮説)
最弱仮説を伴意する最良な仮説を求める最弱仮説を伴意する最良な仮説を求める
伴意を機械的に行うのは困難
伴意を包摂で近似し、仮説空間を探索しよう伴意を包摂で近似し、仮説空間を探索しよう
ProgolProgol の仮説生成プロセスの仮説生成プロセス
逆伴意に基づき最も特殊な節(最弱仮説)を構成
最弱仮説を包摂する空間(最弱仮説空間)において、最良優先探索
最良な仮説をみつける
A*-likeA*-like 探索 探索
・ Progol で使われている探索方法
・最弱仮説空間(最弱仮説を包摂する空間)を 探索し、最良仮説を得る
・ A* 探索を擬似して,作られている
A* A* 探索探索
・グラフにおける最良優先探索 ・評価関数 f(n) を最小にするパスをみつける。 f(n) = g(n) + h(n) : n 経由の最短解の見積りコスト
g(n): 出発接点から接点 n までの経路のコスト
h(n): ヒューリスティック関数 n からゴールまでの見積りコスト
G
S
A
B
C
D
E
F
I
H
10
14
10
21
18
7
12
14
9
10
13
8
ヒューリスティック関数(ゴールとの直線距離)
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
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
G
S
A
B
C
D
E
F
I
H
10
14
10
21
18
7
12
14
9
10
13
8
A*-like 探索グラフの生成
・探索空間・・・最弱仮説( MSH )を包摂する空間
・( empty set )からはじまるグラフを作り、そのグラフ について最良優先探索を行う。
MSH(MSH( 最弱仮説最弱仮説 ))== gf (波平,タラオ) :- f (波平,サザエ) , m (舟,サザエ) , f (波平,カツオ) , f (波平,ワカメ) , m (サザエ,タラオ) ,f (洋平,波平) , p (波平,サザエ) , p (舟,サザエ) , p (波平,カツオ) , p (波平,ワカメ) , p (サザエ,タラオ) ,p (洋平,波平)
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)
グラフ内 A*-like 探索・評価関数として記述長最小原理を使う。
・ compression gaincompression gain が最も大きいものが最良
{仮説のリテラル長}={仮説のリテラル長}={その時点の仮説のリテラル長}+{追加されるリテラル長}{その時点の仮説のリテラル長}+{追加されるリテラル長}
- ( {仮説のリテラル長}+ {説明される負事例の数} )
{ 説明される正事例の数 }
compression gain =
gg((nn)) = = {仮説のリテラル長}+{説明される{仮説のリテラル長}+{説明される負事例}負事例}
・{追加されるリテラルの最小値}をヒューリスティックヒューリスティック 関数 関数で与える
・ 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 についてのリテラルを追加
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
・・・・・・ 最良な仮説
実世界での応用
・突然変異性物質の判別問題( King )
・データベースからの知識発見(嶋津,古川) 電子メール分類システム
・暗黙知の獲得(古川) 理想的な弓の動かし方
仮説:化合物の突然変異性に関するルール
事例:突然変異を有する化合物背景知識:化合物の原子と結合情報
まとめまとめ・ Progol における仮説生成
逆伴意に基づき,背景知識と正例から最弱仮説を生成
最弱仮説を包摂する木において A*-like 探索
・・ ProgolProgol の利点の利点探索空間が縮小される探索空間が縮小される
背景知識背景知識
・既に持っている知識
・背景知識があるとより正確な理論が 得られる
・背景知識として、事実とルールが利用 可能
背景知識なし正例: 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 :ふわふわした
特殊な節とは?・節には半順序関係がある
一般的
特殊
一般的:多くの例を説明する特殊:少ない例しか説明しない
p(A,B) p(A,A).
一般的 特殊
p(A,B) p(A,B):-q(A,B)
>
>p(A,B) p(桂子 ,B)>
記述長最小原理記述長最小原理
・学習の記述量・・・機械学習にとって重要な問題
・記述量の多い仮説が多くの例を説明できるのは 当然
できるだけ少ない記述量で多くの例を説明はできないか?
記述長最小原理記述長最小原理記述長最小原理記述長最小原理
包摂( 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)
伴意と包摂の関係
A subsume( 包摂する ) B A B⊨
伴意を包摂で近似しよう伴意を包摂で近似しよう伴意を包摂で近似しよう伴意を包摂で近似しよう
部分連言だと伴意されるA=l1 ・・・ ln
B=l1 ・・・ lnln+1
B を真にするような解釈は A も真にする
B ⊨ A : B は A を伴意するB ⊨ A : B は A を伴意する
正例: 負例: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 )