Learning Explanatory Rules from Noisy Data 閱讀筆記4

A Differentiable Implementation of ILP

這章我們講我們核心的模型:ILP-as-satisfiability的連續的重新實現

離散的操作被可微分的操作代替,所以可以用隨機梯度下降最小化一個loss

在這裡這個loss是正確label和預測結果的交叉熵

取代離散的將ground atom映射到{False, True},而連續的將ground atom映射到0到1的區間

取代將離散的用True False選擇clause的子集,而用在clause上的概率分布

Valuations

給定n個ground atom的集合G,一個valuation是一個向量,向量的每個值取值在0到1,是G里每個ground atom映射到0到1

舉例來說,一個語言

其中

一種可能的在L的ground atom G的評估:

其中r,p,q都是predicate

Induction by Gradient Descent

有一個atom和label的pair的集合

其中 (γ, λ) 表示 當 λ = 1 時 γ 為正例,當 λ = 0 時 γ 為負例

現在給定一個ILP問題 ( L, B, P, N ) ,給定一個 程序模板Π ,給定一個clause-weights W

我們可以為一個 ground atom α 構建一個λ的(預測的)條件概率

然後loss就是negative log likelihood:

預測的概率定義為

f_generate和f_convert是不可微分的,其他都是可微分的

extract函數定義為

其中x是上面提到的valuation,γ是atom,(也就是每個輸入打個0到1的分)

將所有B里的映射到1,B以外的G里的映射到0

f_generate從程序模板Π和語言L得到一個clause的集合

然後是f_infer的定義

整個網路的輸入有atom α和對應的label λ

Rule Weights

Inference

對於每個clause有valuation

Computing the F_c(valuation function) Functions

舉例

現在P = {p, q, r} 以及 C = {a, b} ,然後ground atom G是

假設clause c是

把X_c轉換,得到

經過一系列計算得到F_c,也就是給

Defining Fuzzy Conjunction

上面計算過程的一個公式的定義

這塊整體過程較長,總之是在by translating each clause c into function F_c,也就是每個clause打個分,需要弄些實例理解。。


推薦閱讀:

TAG:自然語言處理 | 機器學習 | 深度學習DeepLearning |