深度学习笔记——理论与推导之Structured Learning【Markov Logic Network】(十一)
分类:
文章
•
2024-01-08 07:59:16
Markov Logic Network
- Graphical Model是Structured Learning里一种用Graph描述evaluation的方式。Graphical Model有很多中,比如深度学习笔记——理论与推导之Structured Learning【Markov Random Field】(十)中的Factor Graph和MRF都是属于Undirected Graph,Markov Logic Network属于Markov Random Field(MRF)的一种。\
- Markov Logic Network是structured learning的一种,MLN是为了让机器能够有逻辑思维。这里需要解决三个问题:
- Evaluation:现在这个状况有多合乎逻辑,也就是机器背后有一个knowledge base,也就是我们的model。把逻辑这件事情变成graphical model
- Inference:选择最合乎逻辑的那个。
- Training:学习这个knowledge base
- 专有名词:
-
knowledge base:一系列公式(Formula)
-
Formula:P=>Q,P<=>Q …
- 就是一堆由logic operation连接起来的谓语(predicate)。
- Logic operation:~,∧,∨,=>,<=>
-
Predicate:P,Q
- Predicate:就是一个function
- Input:one or several objects
- Output:True or False
如下:
-
Grounding:在predicate中,将所有可能的常量替换掉所有的变量。

-
World : 也就是一种可能情况,带入所可能得constant,判断每一个grounded predicate是true还是false。
如下,有3个person,有3个Predicate所以可以做例如下面的两个世界(全是True or 全是False等):
- Evaluation-Logic:通过一个给定的Knowledge Base评估这个世界是否合乎逻辑。
假设今天有两个Person,A和B,world就有5个可能,如下,那么有个世界是所有output都是True,一个世界有一个宅(B) = F,接下来我们发现左边的世界是合乎逻辑的,右边的世界是不合乎逻辑的。
- Inference - Logic:
给定已知的Evidence和Knowledge base把word中未知的部分找出来:

比如上图,有3个未知的结果,因此有2^3 = 8个可能的值,用Knowledge base检查这8个可能值是否合乎逻辑。
- Evaluation - Soft Logic:
- 因为真实的世界比较复杂
L(U) = logical or not => L(U) = how logical it is(这个值越大越合乎逻辑)。
- 每一个formula都会被赋予一个weight,原来代表它的可信值。当这个世界违背了某个formula时,它出现的可能性会变小,而不是变没。
-
如何衡量这个world(U)是有多合乎逻辑:
下面的i代表一个formula,wi是formula i的weight,ni:这个formula在这个世界成立的次数:

我们也可以算一个世界出现的几率,如上面右边那个P(U)。
- Inference - Soft Logic:
- 给定一个世界U = {X,Y},X是已知的,找到一个最有可能的Y。

L(X,Y)也可以化成一个MRF或者factor graph,因此这个Inference可以用Gibbs sampling解。
- Example:
- 一个formula:宅(x) -> 做研究(x)
一个person,所以有一个Grounding:
Person = {Anna}
假设这个w1 =1.5,由于下面除了第二组:宅(A)->做研究(A)中,T是不能推出F的,所以这种情况出现0次即n1(U) = 0。

因此当给定Evident:宅(A) = T,那么做研究(A) = T的几率为0.82,做研究(A)= F的几率为0.18。
- 假设我们现在有两个Evidence,两个formula,两个grounding,因此,以第一个为例“做研究(A) = T ,宅(B) = T,做研究(B) = T”,因此对于formula 1:宅(x) =>做研究(x),有以下情况:宅(A,T)=>做研究(A,T) ;宅(B,T) => 做研究(B,T)在世界U中发生过两次,所以n1(U) = 1+1 = 2

Markov Logic Network其实可以用来做一般Machine Learning做的事,因为他其实就是Graphical Model。Markov Logic Network是可以解释的。
上面这些事情可以用Graphical Model来描述它,将ground predicate看成是node,formulas看成是一个factor,所以我们可以计算他们的evaluation function:

那么这每个function应该长什么样呢?

- 我们经常将Markov Logic Network写成Markov Random Field的样子,所以:
- 那么如何Learning呢?
情况一:首先定义好一组formulas(这些formulas可以是对的,也可以是错的),world U,并且为这些formulas设置weights。
接下来最大化world的几率:

情况二:假设这个世界上有些东西是我们无法观察到的,那么我们有两种方法,第一种是将不知道的都设置为false,第二种是将这些不知道的设置为?(当成是Hidden world,可以当成structured svm with hidden information来处理)

我们可以根据以下方法来计算带有hidden world的Markov Logic Network(X表示这个世界中可以观察到的部分,H表示这个世界中hidden的部分,接下来穷举H所有的可能值,并计算它的几率,然后我们把所有H的几率加起来代表P(X)的几率,然后我们就可以对权重做微分)
- Learning the Correctness:
- Outlook: