帰納論理プログラミングの satによる表現 ·...
TRANSCRIPT
研究の概要.背景..
......
機械学習手法の 1つとして帰納論理プログラミングが提案されてきた一階述語論理に基づくため離散データに適用しやすく,明示的な規則が得られる問題が一般に NP困難に属するため解を求めるのが難しい
近年になって SATソルバーの性能が劇的に向上している.結果..
......
SATソルバーを帰納論理プログラミングに応用した分類問題において SVMとの比較を行なった
帰納論理プログラミングの問題 SAT問題(命題論理式)
変数への値の割り当て帰納論理プログラミングの問題の解
SATソルバー変換
(SAT符号化)
変換2 / 16
SATソルバー.SATソルバー..
......与えられた命題論理式が充足可能であるか否かを判定するプログラム充足可能ならば変数への真偽値の割り当てを 1つ出力する
.
......
(x1 ∨ ¬x2)∧(x2 ∨ x3)∧(¬x1 ∨ ¬x2 ∨ x3)∧(¬x1 ∨ ¬x2 ∨ ¬x3)
.
......
充足可能x1 = F,x2 = F,x3 = T.
.
......
p cnf 3 4
1 -2 0
2 3 0
-1 -2 3 0
-1 -2 -3 0
1行目に変数の数と節の数を記述2行目以降の各行は節を表現している
0は各節の終わりを表す正の整数は変数を表すマイナス (−)は否定 (¬)を表す
3 / 16
帰納論理プログラミング (ILP).ILP問題の設定..
......
Input 3つの一階述語論理における節集合:背景知識 B,正例 E+,負例 E−
Output 次の条件を満たす節集合 Σ (仮説)すべての C ∈ E+ に対して Σ ∪ B |= Cすべての D ∈ E− に対して Σ ∪ B |=/ D
.
......
B = ∅,E+ =
{P(0), P(s2(0)), P(s4(0))
},
E− ={P(s(0)), P(s3(0))
}.
.
......Σ =
{P(0),P(s2(x)) ← P(x)
}
4 / 16
ILP問題のSAT符号化
ILP問題の主張に命題変数の真偽を対応付ける節 Cに対して C ∈ Σ ⇔ [C ∈ Σ] = T節 Dに対して Σ |= D ⇔ [
Σ |= D]= T[P(0) ∈ Σ] = F, [Σ |= P(0)] = F,[P(x) ∈ Σ] = F, [Σ |= P(s(0))] = T,[P(s(0)) ∈ Σ] = T, [Σ |= P(s2(0))] = T,[P(s(x)) ∈ Σ] = F, [Σ |= P(s3(0))] = T,[P(s(x)) ← P(x) ∈ Σ] = T, [Σ |= P(s4(0))] = T,
. . . . . .
.
......Σ =
{P(s(0)),P(s(x)) ← P(x)
}
5 / 16
ILPのSAT符号化の問題点
仮説 Σの論理的帰結となる基礎単位節をどう計算するか⇒ TP オペレータを使って計算するSAT符号化のために準備する命題変数が無限個必要である
C ∈ Σの真偽を考慮する必要のある節 Cが無限に必要Σ |= Dの真偽を考慮する必要のある節 Dが無限に必要
⇒仮説 Σは縮小確定節の有限集合とする
6 / 16
TP オペレータ.TP オペレータ..
......
写像 TP は基礎単位節の集合 Iから新な基礎単位節の集合を生成する
TP(I) = {A | A ←B1 ∧ . . . ∧ Bnは Pに含まれる節に 代入を行って得られる基礎確定節,各 B1, . . . , Bnは Iに含まれる }
.
......
論理プログラム Σ = {P(0), P(s(x)) ← P(x)}に対してTΣ(∅) = {P(0)}TΣ(TΣ(∅)) = {P(0), P(s(0))}TΣ(TΣ(TΣ(∅))) = {P(0), P(s(0)), P(s(s(0)))}
7 / 16
縮小確定節論理式 Aに対して次の 2つの式を定義する
|A| : Aに含まれる変数記号,定数記号,関数記号の総数o(x, A) : Aに含まれる変数 xの個数
.縮小確定節..
......
確定節 A ← B1 ∧ B2 ∧ . . .∧ Bnは,任意の代入 θと i = 1, . . . , nに対して
|Aθ| > |Biθ|
が成り立つとき,縮小確定節と呼ぶ
.
......
確定節 A ← B1 ∧ B2 ∧ . . . ∧ Bnが縮小確定節となるのは,任意の変数 xと i = 1, . . . , nに対して以下の式が成り立つとき,かつそのときに限る
|A| > |Bi|o(x, A) ≥ o(x, Bi)
8 / 16
縮小確定節の有限集合の論理的帰結
.
......
Aより記号数が小さい Bのうち,Σの論理的帰結であるものを集めて TP オペレータを適用すれば Σ |= Aを判定できる
Σ |= A ⇔ A ∈ TΣ({
B∣∣∣∣∣∣ |B| < |A|, Σ |= B
}).
......
Σ ={P(0), P(s2(x)) ← P(x)
}のとき Σ |= P(s3(0))の真偽を判定する
|B| < |P(s3(0))|かつ Σ |= Bを満たす基礎単位節 Bは以下の 2つP(0)P(s2(0))
TΣ({
P(0), P(s2(0))})=
{P(0), P(s2(0)), P(s4(0))
}であり Σ |=/ P(s3(0))
9 / 16
精密化グラフ空節を用意し以下の操作から 1つを選び適用する
変数を定数で置き換え変数を別の変数で置き換え変数を関数記号から成る項で置き換え (引数は全て新しい変数)リテラルを本体に追加 (引数は全て新しい変数)
空節に手続きを h回以下の適用して得られる節のうち,縮小確定節の集合を Ch とする.......仮説 Σは Ch の部分集合とする (Σ ⊆ Ch)
10 / 16
SAT問題の作成 (1/2)
ILPの問題の解となる仮説 Σが満たすべき条件は次の 2つすべての A ∈ E+ に対して Σ |= Aすべての B ∈ E− に対して Σ |=/ B
.
......
作成した命題変数を用いて条件を命題論理式で記述する
すべての基礎単位節 A ∈ E+ に対して [Σ |= A]
,
すべての基礎単位節 B ∈ E− に対して ¬[Σ |= B].
.
......
E+ ={P(0), P(s2(0))
},E− =
{P(s(0)), P(s3(0))
}のときは,
次の命題論理式が真であれば良い[Σ |= P(0)] ∧ [
Σ |= P(s2(0))] ∧ ¬[Σ |= P(s(0))] ∧ ¬[Σ |= P(s3(0))].11 / 16
SAT問題の作成 (2/2)
基礎単位節 Aが仮説 Σの論理的帰結となる条件を考えるΣ |= A ↔ A ∈ TΣ
({B
∣∣∣ |B| < |A|, Σ |= B})
↔∨
C∈Ch
(C ∈ Σ) ∧ A ∈ T{C}({
B∣∣∣ |B| < |A|, Σ |= B
})↔
∨C∈Ch
(C ∈ Σ) ∧∨
θ:Cθ=A←B1∧...∧Bn
∧i=1,...2
(Σ |= Bi)
.
......
すべての A ∈ Gに対して[Σ |= A] ↔ ∨
C∈Ch
[C ∈ Σ] ∧ ∨θ:Cθ=A←B1∧...∧Bn
∧i=1,...2
[Σ |= Bi
].
......
Σ ={C
∣∣∣ [C ∈ Σ] = T}
⇒全ての論理式の連言 (∧)を CNF式に変換して SAT問題とする12 / 16
提案手法の評価環境: Mac OS X 10.7.2 (2.66GHz Intel Core i5, 16GB)
SATソルバーには clasp [Gebser 07]を利用UCI Machine Learning Repositryから 3種類のデータセット:Adult, Mushroom, Tic-Tac-Toeを入手し,実験に用いた2クラス分類問題の精度と時間を計測比較対象として SVMの実装の 1つである libsvmを利用した
パラメータの決定には付属のスクリプトを利用した
Accuracy time (sec.)train test libsvm 提案手法 libsvm 提案手法
Tic-Tac-Toe 479 479 98.633 100.00 21.093 1.616Mushroom 4062 4062 99.991 100.00 792.13 233.90a1a(Adult) 1605 30956 84.087 81.971 159.59 6294a2a(Adult) 2265 30296 84.512 82.074 324.62 6710
13 / 16
実験結果 (計算時間: Tic-Tac-Toe)横軸は仮説のサイズ |Σ|の上限値 s,縦軸は計算時間塗り潰されている点は充足可能,塗り潰されていない点は充足不能hの値は 3,eの値は 0.00,0.01,0.02の 3つを試した充足可能と充足不可の境界では計算時間が大幅に増加している
0 5 10 15 20s
0
1
2
3
4
5
time
(sec
.)
Tic-Tac-Toe (h = 3)
e = 0.02
e = 0.01
e = 0.00
14 / 16
実験結果 (計算時間: Mushroom)横軸は仮説のサイズ |Σ|の上限値 s,縦軸は計算時間塗り潰されている点は充足可能,塗り潰されていない点は充足不能hの値は 3,eの値は 0.00,0.01,0.02の 3つを試した充足可能と充足不可の境界では計算時間が大幅に増加している
0 5 10 15 20s
0
10
20
30
40
50
60
70
80
90
time
(sec
.)
Mushroom(h = 2)
e = 0.02
e = 0.01
e = 0.01
15 / 16