2015年11月24日 知能システム論(2015-06) 前回の復習 知能システム科学専攻 新田 克己 述語論理の補足 述語論理の推論 もとの知識に矛盾がないことが前提 演繹推論 → 厳格な推論 現実には 無矛盾な論理式集合を構築するのは 困難である。 述語論理では表現力が不足している。 単純な演繹推論しかない。 論理プログラミング プログラムの実行=定理証明 ?- grandfather(taro, Y). 論理プログラミング parent(hanako,Y) mother(hanako,Y) mother(hanako,jiro) 論理式でプログラムを書く grandfather(X,Y) :father(X,Z),parent(Z,Y). parent(X,Y) :- father(X,Y). parent(X,Y) :- mother(X,Y). father(taro, hanako). mother(hanako, jiro). さまざまな推論 father(taro, Z), parent(Z,Y). father(taro, hanako) 述語論理入門 構文論: 記号の並べ方 意味論: 定数,関数,述語の解釈 P |= Q 証明論: 公理,推論規則,証明原理 A, A→B B P |- Q 演繹(deduction) A, A→B (結論) B 帰納(induction) A, B Charles S. Peirce A→B (規則) 仮説生成,アブダクション(abduction) B, A→B (説明) A 1 さまざまな推論(cont.) 類推 A→B, A~C C→B 非単調推論 A,not B →C, A C 時間推論、空間推論、..... 硬い推論から柔らかい推論へ 様相論理(1/4) 公理系 APL A1 A→(B→A) A2 (A→(B→C))→((A→B)→(A→C)) A3 (¬B→¬A)→((¬B→A)→B) R1 MP A→B A B 様相論理(3) 公理系 S4 = T+α A6 □A→□□A 公理系 S5 = T+α A7 ◇A→□◇A 必然性と偶然性 ===> 様相論理 ○P,□P 時間、認識、義務===>様相論理の応用ほか Past P, Know P,Obl P 矛盾、例外、常識 ===> 非単調推論 Pならば「おそらく」Q ルール不足 ===> 観測結果からルール生成 ---> 帰納推論 事例から直接,推論 ---> 類推 事実不足 ===> アブダクション(仮説生成) 様相論理(2) 公理系 K = APL+α A4 □(A→B)→(□A→□B) R2 A □A 公理系 T = K+α A5 □A→A 様相論理(4) クリプケモデル M=<W,R,V> W={w1,w2,w3,w4} R={<w1,w2>,<w2,w3>,<w2,w4>} W1 Q V(W1,P)=0 V(W1,Q)=1 V(W1,R)=0 W2 P Q V(W2,P)=1 V(W2,Q)=1 V(W2,R)=0 W3 W4 P P R V(W3,P)=1 V(W3,Q)=0 V(W3,R)=0 V(W4,P)=1 V(W4,Q)=0 V(W4,R)=1 V(W2,□P)=1, V(W2, ◇Q)=1 2 帰納推論とは 帰納推論(Inductive Reasoning) と帰納論理プログラミング(ILP) 帰納推論 観測された事実から規則を導く推論 例) 文例からの文法規則の学習 入出力例からのプログラムの学習 データマイニング 顧客の購入記録→動向の検出。 株価の変動記録→株価の予測。 カルテ→治療方針の決定。 帰納推論の方法 観測事例 決定木 基本的なルール決定アルゴリズム ID3 帰納論理プログラミング 論理プログラミングをベースとした ルール決定。 背景知識を利用することができる。 (ニューラルネット) 決定木(decision tree) 湿度 <50% 参加 曇り 雨 参加 ≧50% 不参加 風 弱 参加 風 強い 弱い 弱い 強い 弱い 強い 強い 弱い 気温 20度 18度 6度 18度 12度 15度 6度 20度 湿度 40% 70% 60% 50% 60% 90% 80% 80% テニス 参加 不参加 不参加 参加 参加 不参加 不参加 参加 決定木の評価 天候 晴れ 天候 晴れ 晴れ 晴れ 曇り 曇り 雨 雨 雨 強 天候,湿度,風 をどの順番に調べるかで 異なる決定木ができる。 コンパクトな木が望ましい。 Occam’s razor 識別力の強いテストを先に行う。 ID3 不参加 3 識別力の判定 天候 識別力の判定(cont.) テストの識別力の判定にentropyを利用 E= – ∑(Pi×log Pi) 天候 晴 識別力の大きいテストを優先する 8 晴 曇 3 2 風 雨 3 4 4 帰納論理プログラミングとは 通常の論理プログラミング(例:Prolog) 論理式(ホーン節)で知識(ルール,事実)を 書く。 質問文を入力すると,導出原理を使って 解答を出す。 fly(X)∨¬bird(X) 例) fly(X) :- bird(X). bird(tweety). ?- fly(X). X=tweety yes 参加:1 不参加:2 0.92 1.00- 0.92×3/8 - 0.00×2/8 – 0.92×3/8 = 0.31 演習 -P×log P 雨 参加:2 不参加:0 0.00 強 弱 エントロピー 曇 参加:1 不参加:2 0.92 8 1.00 参加: 4, 不参加: 4 bird(tweety) fly(tweety) エントロピーの計算とID3 帰納論理プログラミングとは(cont.) 観測データからルールを求める 例) fly(tweety), bird(tweety) fly(X) :- bird(X) 観測データ ルール ¬fly(X) □ 4 帰納論理プログラミングの理論 帰納論理プログラミング(Train問題) 背景知識をB, 正事例をE+, 負事例をE- B |= E+ B ∧ E- |= □ であるときに B ∧ H |= E+ B ∧ H |= Eの条件を満たす仮説Hを求める TRAIN問題 east(t1). TRAIN問題 (cont.) has_car(t1,c11). has_car(t1,c12). has_car(t1,c13). infront(c11,c12). infront(c12,c13). has_car(t2,c21). has_car(t2,c22). has_car(t2,c23). infront(c21,c22). infront(c22,c23). east(t2). 学習結果 (仮説) east(X):- has_car(X,Y), short(Y), closed(Y). long(car11). open(car11). load(car11,3,square). wheel(car11,2). short(car11). closed(car12). load(car12,1,triangle). wheel(car12,3). long(car13). open(car13). load(car13, 1, lozenge). wheel(car13, 3). 帰納論理プログラミングの原理 導出 bird(tweety) 逆導出の例(1) 逆導出 bird(tweety) fly(X)←bird(X) (fly(X)∨¬bird(X)) fly(tweety) Facts father(charles, william). mother(elizabeth, charles). father(philip, charles). 。。。。。 fly(X)←bird(X) (fly(X)∨¬bird(X)) fly(tweety) george edward frances elizabeth diana charles philip anne william fatherとmotherによるイ ギリス王室の家系図 5 逆導出の例(2) Rules 逆導出の例(3) (parent と gf の定義) 以下のように、parentの定義と新しいFactが 与えられたときに、gfの定義を作り出せるか。 parent(X,Y) :- father(X,Y). parent(X,Y) :- mother(X,Y). gf(X,Z) :- father(X,Y), parent(Y,Z). Facts gf(philip,william). 逆導出の例(4) 逆導出の例(4) ¬gf (philip,william). gf(X,Y)の定義 E ¬gf (philip,william). gf(X,Y)∨¬father(X,U)∨¬parent(U,Y). ¬father(philip,U)∨¬parent(U,william). father(philip, charles). ¬father(philip,U)∨¬parent(U,william). father(philip, charles). ¬parent(charles, william). ¬parent(charles, william). ¬father(charles, william). parent(charles, william) ∨¬father(charles, william). father(charles,william). ¬father(charles, william). □ ¬gf (philip,william). gf(X,Y) :- father(X,U), parent(U,Y). ¬parent(charles, william). □ father(charles,william). 仮説の生成と評価 ¬father(philip,U)∨¬parent(U,william). father(philip, charles). ¬father(charles, william). parent(charles, william) ∨¬father(charles, william). □ 逆導出の例(4) E (parent の定義) parent(X,Y) :- father(X,Y). parent(X,Y) :- mother(X,Y). これらのルールがあれば、以下の質問にも 回答できる。 ?- mother(diana, william)? Yes ?- gf(X,william)? X = philip; E Rules parent(charles, william) ∨¬father(charles, william). father(charles,william). 帰納推論 = 仮説の生成 + 仮説の評価 (注意)仮説の候補はいくつもある。 gf(X,Y) gf(X,Y) :- father(X,U),parent(U,Y) gf(philip,william) :- father(philip,charles),parent(charles,william) gf(philip, william) 6 概念の強弱 概念の強弱(2) 概念の強弱 (半順序関係) 概念が強い = 多くのものを説明できる (general) 概念が弱い = 少ないものしか説明できない (specific) 強 事例 f(1,1), f(1,2), f(2,1), f(2,2) h(1,1), h(1,2) 仮説 f(A,B). f(A,A). f(A,B):-h(A,B). f(A,A):-h(A,A) 概念を強くするには, 定数を変数に。 条件を削減。 coverできる事例 f(1,1).f(1,2).f(2,1).f(2,2). f(1,1).f(2,2). f(1,1).f(1,2). f(1,1) 弱 概念の強弱(3) 演習 f(A,B) f(A,A) f(2,2) f(A,A):-h(A,A) 概念の強弱 f(A,B):- h(A,B) f(A,B):-h(A,B),g(A,B) f(1,1):-h(1,1) Progol S. Muggleton(York Univ.) らによって 開発された帰納論理プログラミング システム http://web.comlab.ox.ac.uk/oucl/research/ areas/machlearn/PProgol/ppman_toc.html より入手可能 7 Progolの入力データ Progolの入力データ (contd.) モード宣言 (学習対象概念と 利用する背景知識の定義) :-modeh (1, grand_parent (+person, -person))? タイプ情報(各述語の引数のドメインの定義) 学習すべき概念の定義 :-modeb (1, parent(+person, -person))? 正負事例 利用可能な背景知識の定義 + は入力変数を -は出力変数を意味する east(t1). :- east(t5). is_parent_of(oscar, louis). :- is_parent_of (louis, oscar). 背景知識 負例と一貫性制約条件 person(stephan). list([H|T]) :- list(T). ルールでも良い int などの組み込み述語も利用可能 事例に関連のある知識、任意のPrologプログラム 実行のトレース (train.pl) CProgol Version 4.4 負例の効用: 仮説の過学習を防止 gf(X,Y):- parent(X,U),parent(U,Y). :- gf(mary, stephen). parent(mary,louis). parent(louis,stephen). 一貫性制約 :- class(X,mammal),class(X,fish). Progolにおける仮説の生成 1. 一つの事例に着目し、それを一般化 最弱仮説(Most Specific Hypothesis)の生成 B∧H |= E B∧E |= H [:- modeh(1,eastbound(+train))? - Time taken 0.00s] [:- modeb(100,has_car(+train,-car))? - Time taken 0.00s] ……… [Generalising eastbound(east1).] [Most specific clause is] eastbound(A) :- has_car(A,B), has_car(A,C), has_car(A,D), has_car(A, E), not open(C), not long(C), not long(E), open(B), open(D), … … … … ... [C:-1,5,5,0 eastbound(A).] [C:-2,5,5,0 eastbound(A) :- has_car(A,B).] … … … … ... [Result of search is] eastbound(A) :- has_car(A,B), not open(B), not long(B). Progolにおける仮説の生成 2. MSHを積極的に利用した、最良優先 探索により、最良仮説を発見 発見的評価関数を用いた、最良優先全解 探索 msh: B∧E のすべてのモデルで真である 基底リテラルをAND結合したもの H |= msh 8 仮説生成 Progolにおける候補仮説空間 B={ f(1), g(1) } E= { h(1) } B∧E |= ¬h(1) B∧E |= f(1) B∧E |= g(1) 最弱仮説の存在 もっとも一般的な仮説 msh ¬h(1)∧f(1)∧g(1) 機械的に仮説を生成 h(1)←f(1)∧g(1) 記述長最小原理(MDL基準) (X,Y,...,Z). 目的述語を述語名 にし、変数に何も 制限のない仮説 伴意を包摂で近似 H 考えるべきもっとも特殊な仮説 すべての仮説H は H |= msh(B,E).<target_pred> 最弱仮説 ProgolにおけるMDL基準 仮説は,強力で単純な方が良い。(矛 盾) 仮説評価のために、記述長を利用 強力さ + 単純さ Compression Gainがもっとも大きい(負 事例を説明しない)仮説が最良の仮説 を選択 Compression Gain = 説明される正事例の数 - 仮説のリテラル長 - 説明される負事例の数 N MDL=-Σlog p(X;Θ’) + (m/2)log N N: データ数、 m:パラメータ数 A*-like探索 Progolの仮説束内探索アルゴリズム 頭部のみの仮説から始める リテラルの追加 (追加されるリテラルはMSHから選ばれ る) 変数の逆代入(モードに依存して行われる) システマティックにMSHを包摂する仮説を生成 評価値の高いところから優先的に探索(リテラル の追加や逆代入)を行う 発見的評価関数を用いた最良優先探索 まとめ 論理プログラミング さまざまな推論 帰納推論 決定木 帰納論理プログラミング 逆導出 Progolにおける技法 9
© Copyright 2024 Paperzz