標籤:

Learning Explanatory Rules from Noisy Data 閱讀筆記3

ILP(Inductive Logic Programming) as a Satisfiability Problem

總體來說有ILP有兩種方式:自下向上 和 自上而下

自下而上:查看數據的特徵,從中抽取特殊clause,從特殊clause中生成程序

自上而下:從語言定義生成clause,然後在正例和負例上測試程序

自上而下的方法里,把 搜索clause 轉成一個 可滿足性的 問題,在這種 轉成可滿足性問題 的方法里,有用bool flag來標記哪些搜索空間需要搜索,也有 根據程序模板 生成一些大的clause集合 然後用bool flag決定哪些clause開和關

這篇文章使用自上而下的 生成-測試 的方法,也就是從語言模板生成clause。給每個生成的clause一個flag指示其開或關,現在 歸納(induction) 問題變成了 可滿足性(satisfiability

)問題:

選擇一個flag的賦值,這樣讓已經打開的clause 和背景fact一起 entail正例 而不entail負例

我們的方法:通過梯度下降學習哪些clause要開或關,甚至在給定雜訊或歧義數據的情況下。

Basic Concepts

一個語言框架L是

其中target是目標斷言,是我們想要訓練得到的斷言

Pe是一個擴展的斷言集合

arity_e是映射到數量的映射:

C是一個常量的集合

一個ILP問題是(L, B, P, N)

其中L是上面的語言框架

B是由Pe和C出來的ground atoms

P正例 N負例

比如在判斷為偶數的任務里P可以是{even(0), even(2), even(4), even(6)}

N可以是{even(1), even(3), even(5)}

規則模板 τ 即 (v, int)

其中 v ∈ N 是clause里合法的變數的數量

int ∈ {0, 1} 表示clause的body的atom,int=1表示這個atom可以用目標斷言,int=0表示只能用其他斷言

程序模板 Π 即

Pa是一種斷言的集合

arity_a是映射到數量的映射

rules是把每個斷言映射為規則模板

T ∈ N指前向鏈式推斷的最大步數

在我們的系統里,認為每個斷言(predicate)被2個clause定義

結合語言框架

和程序模板

得到一個語言:

其中

如果

然後G是所有ground atoms

Generating Clauses

有一個規則模板τ,我們能生成一個滿足這個規則模板的clause的集合cl(τ)

為了讓cl(τ)可管理,我們要加些限制

在附錄B提供了一個例子

Reducing Induction to Satisfiability

具體在附錄B講


推薦閱讀:

scikit-learn實戰
嘗試克服一下小夥伴對神經網路的恐懼No.26
譜聚類的consistency
如何利用手機遠程調參
機器學習入門之泰坦尼克案例

TAG:機器學習 |