MLN 讨论 —— 基础知识
一. MLN相关知识的介绍
1. First-order logic
- A first-order logic knowledge base (KB) is a set of formulas in first-order logic;
- Predicate symbols represent relations among objects in the domain (e.g., Friends) or attributes of objects (e.g., Smokes)
- An atomic formula is a predicate symbol applied to a tuple of terms.
- Formulas are recursively constructed from atomic formulas using logical connectives and quantifiers.
- A term can be a constant, variable, or a function;
- A ground term is a term containing no variables;
- A ground atom or ground predicate is an atomic formula all of whose arguments are ground terms.
- A possible world assigns a truth value to each possible ground predicate.

对于某个自然语言的语句: 例如 "Friends of friends are friends." 我们可以先把他转换为Formula "∀x∀y∀z Fr(x,y) ∧ Fr(y,z) ⇒ Fr(x,z)", 然后把Formula转换为conjunctive normal form (CNF);这样,对于每一个possible world , 我们就可以轻易的知道Formula的Truth Value了;
A first-order KB can be seen as a set of hard constraints on the set of possible worlds: if a world violates even one formula, it has zero probability. The basic idea in MLNs is to soften these constraints: When a world violates one formula in the KB it is less probable, but not impossible. The fewer formulas a world violates, the more probable it is. Each formula has an associated weight that reflects how strong a constraint it is.
2. Markov Networks

这里需要注意几点:
1. Markov network is composed of an undirected graph G and a set of potential function.
2. The graph has a node for each variable, and the model has a potential function for each clique in the graph.
3. Mark Logic
(1) 图的结构

contains one binary node for each possible grounding of each predicate appearing in L.

There is an edge between two nodes iff the corresponding ground predicates appear together in at least one grounding of one formula in L.
(2)构造MLN的例子
Formulas: ∀x Smoke(x) ⇒ Cancer(x) , ∀x∀y Friends(x,y) ∧ Smoke(x) ⇒ Smoke(y)

M(L,C) can now be used to infer the probability that Anna and Bob are friends given their smoking habits, the probability that Bob has cancer given his friendship with Anna and whether she has cancer, etc.
(3)计算公式

(4) 简化MLNs使用的假设


有了这些假设,就能够从first-order formula中产生a set of ground formulas,从而应用上面的计算公式;
简化过程的伪代码如下:

The last assumption allows us to replace functions by their values when grounding formulas. Thus the only ground predicates that need to be considered are those having constants as argument. The infinite number of terms constructible from all functions and constants in (L, C) can be ignored, because each of those terms corresponds to a known constant in C, and predicates involving them are already represented as the predicates involving the corresponding constants. The possible groundings of a predicate are thus obtained simply by replacing each variable in the predicate with each constant in C, and replacing each function term in the predicate by the corresponding constant.
(4) 怎么表示这3个假设?



(5) 计算概率的一个小例子
(6)如何计算w ?

二. ProbCog
1. 历史渊源
Alchemy is a Statistical relational AI , recommended by Professor Pedro Domingos ; PyMLNs is a GUI with plug-in capabilities for Alchemy; PyMLNs has been merged into ProbCog;
Alchemy 目前还没有实验成功,可能为依赖库和操作系统的问题 (Fedora Core 7, Bison 2.3, Flex 2.5.4, g++ 4.1.2, Perl 5.8.8)
ProbCog的相关介绍可以点击这里[github]
2. 使用介绍
ProbCog关于MLN部分的使用步骤[github]为: mlnlearn, mlnquery(infer)
(1) mlnlearn
待训练的MLN: 
包含一些predicates和formulas,注意formulas前面的参数为0,表示还未训练
待训练的db:
训练出来的结果:
(2)mlnquery
查询界面:
查询结果:
3. 待研究
(1) mlnlearn参数训练结果的解释
(2) mlnquery查询结果的解释
(3) 使用python脚本操作
MLN 讨论 —— 基础知识的更多相关文章
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
- TCP/IP协议(二)tcp/ip基础知识
今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...
- Oracle数据库基础知识
oracle数据库plsql developer 目录(?)[-] 一 SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...
- Python黑帽编程3.0 第三章 网络接口层攻击基础知识
3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP ...
- .NET Framework基础知识总结
之前给大家总结了java的面试几次技巧总结,同学们看了觉得还是不错,能够得到大家的认可,感觉还是挺不错的.现在又有同学来想小编索要.NET面试的总结了,好吧.谁让小编这么好呢!以下是.NET面试之框架 ...
- 巩固基础知识,从C# in depth开始
真是书到用时方恨少,平时都是完成任务,书都是看个前面几章就扔书柜了.... 今天看了博客园一篇文章<我们为什么应该坚持写博客>,很有感触,觉得人生不能得过且过,以前为了各种原因,家庭,孩子 ...
- js基础知识温习:Javascript中如何模拟私有方法
本文涉及的主题虽然很基础,在很多人眼里属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题.这里会涉及到对象属性的封装.原型.构造函数.闭包以及立即执行表达式等知识. 公有方法 公有方法 ...
- 基础知识系列☞Abstract和Virtual→及相关知识
转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...
随机推荐
- P4295 [SCOI2003]严格N元树 DP
思路:DP 提交:\(5\)次 错因:2次高精写错(我太菜了),2次写错特判 题解: 设\(f[i]\)表示深度\(\leq i\)的严格\(n\)元树的数目,有 \[f[i]=pow(f[i-1], ...
- ES6模块
1. ES6模块是什么? ES6在语言层级上出现了“模块”的概念. javascript中一个文件就是一个模块,如果模块中使用了ES6的语法import或者export, 这个文件就是一个ES6模块. ...
- 查看文件被哪个进程lock住
How do you know who or what is locking a remote file? http://serverfault.com/questions/1948/how-do-y ...
- [USACO17JAN] 晋升者计数 dfs序+树状数组
[USACO17JAN] 晋升者计数 dfs序+树状数组 题面 洛谷P3605 题意:一棵有点权的树,找出树中所有\((u,v)\)的对数,其中\(u,v\)满足\(val(u)\le val(v)\ ...
- SDUT2176 -> 递归的函数
递归的函数 Time Limit: 1000 msMemory Limit: 65536 KiB Problem Des ...
- LR性能测试课程及视频教程
LR性能测试课程及视频教程课程如下: 1.性能测试核心技术-2.性能测试脚本开发-3.LR场景设计-4.LR指标分析. 1.性能测试是通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各 ...
- ES6 import、export的写法
大家都知道来到ES6版本,ES就原生支持JS Module的概念. import和export的写有哪些呢,我们看看 import: import from 和 var 变量一样,也会存在提升,这意味 ...
- 存在日期类型的JSON数据,进行SpringMVC参数绑定时存在的问题和解决方案
这篇文章已经过时了. 请参考比较合适的前后端交互方式. 首先是发送AJAX请求的html页面 <!DOCTYPE html> <html> <head> <m ...
- PHP 之验证码类封装
一.效果图 二.类代码 <?php /** * Created by PhpStorm. * User: Yang * Date: 2019/8/13 * Time: 10:51 */ clas ...
- HTTP之持久连接
HTTP/1.1 允许 HTTP 设备在事务处理结束之后将 TCP 连接保持在打开状态,以便为未来的 HTTP 请求重用现存的连接.在事务处理结束后仍然保持在打开状态的 TCP 连接被称为持久连接.非 ...

