深度学习笔记——理论与推导之Structured Learning【Markov Logic Network】(十一)
来源:互联网 发布:超级seo 编辑:程序博客网 时间:2024/06/05 15:18
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解。
- 给定一个世界U = {X,Y},X是已知的,找到一个最有可能的Y。
- 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)的几率,然后我们就可以对权重做微分)
- 一个formula:宅(x) -> 做研究(x)
- Learning the Correctness:
- Outlook:
阅读全文
0 0
- 深度学习笔记——理论与推导之Structured Learning【Markov Logic Network】(十一)
- 深度学习笔记——理论与推导之Structured Learning【Markov Random Field】(十)
- 深度学习笔记——理论与推导之Structured Learning【Structured Linear Model】(六)
- 深度学习笔记——理论与推导之Structured Learning【Structured SVM】(七)
- 深度学习笔记——理论与推导之Structured Learning【Sequence Labeling Problem】(八)
- 深度学习笔记——理论与推导之Structured Learning【NLP】(十二)
- 深度学习笔记——理论与推导之Structured Learning【Learning with Hidden Information】(九)
- 深度学习笔记——理论与推导之Neural Network的记忆力(四)
- 深度学习笔记——理论与推导之Reinforcement Learning(十三)
- 深度学习笔记——理论与推导之Backpropagation(二)
- 深度学习笔记——理论与推导之DNN(三)
- 深度学习笔记——理论与推导之RNN的训练过程BPTT(五)
- 深度学习笔记——理论与推导之概念,成本函数与梯度下降算法初识(一)
- 马尔科夫逻辑网络(Markov logic network)
- MARKOV LOGIC NETWORK基础知识
- 【深度学习入门—2015MLDS】1. What is Machine Learning, Deep Learning and Structured Learning?
- [深度学习论文笔记][CVPR 16]Deep Metric Learning via Lifted Structured Feature Embedding
- 概率图模型笔记(6)——Markov Network Fundamentals
- 滚动切换选项卡视图
- redis集群的Cluster方式配置以及spring的集成
- Leetcode笔记:(MySQL)181. Employees Earning More Than Their Managers
- the specified license key not be verified as belonging to this host
- <C语言>实现输入几个数,先倒叙排列,再用“冒泡排序”方法从小到大排列
- 深度学习笔记——理论与推导之Structured Learning【Markov Logic Network】(十一)
- linux网络编程-UDP实现文件的传输
- 【转载】Android Studio NDK 开发与调试(生成 .so 文件)
- qduoj water problem(线段树)
- The container 'Maven Dependencies' references non existing library '
- Shader 标准贴图代码参考笔记
- gcc pthread_create()方法使用
- (poj 3667) Hotel(区间更新)
- java8的新特性