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 |