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方法的 ...
随机推荐
- 使用phpstudy搭建的外网网站 运行很慢 解决办法
将连接数据库的配置文件 localhost 修改为127.0.0.1 PHP5.3以上,如果是链接localhost,会检测是IPV4还是IPV6,所以会比较慢.解决办法是:链接数据的时候,不要填写 ...
- PHP 基础知识-数组
PHP 的数组主要分为: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组 索引数组: 有两种创建索引数组的方法: 索引是自动分配的(索 ...
- css引用优先级
/***************************************css注意事项*******************************************/ 浏览器优先级:设 ...
- python_反射:动态导入模块
官方推荐方法: test_mod.py def hi(): print('Hi') test.py import importlib q = importlib.import_module('test ...
- Entity Framework二、 模型优先 ,ObjectContext类
https://www.cnblogs.com/ejiyuan/archive/2009/05/27/1490786.html 1.ObjectContext 封装.NET Framework和数据库 ...
- windows系统上 安装 Redis
下载地址:https://github.com/microsoftarchive/redis/releases 下载完成后,把这个给解压出来 然后,使用 cmd 命令 进入 解压的redis目录 输入 ...
- 00_UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: # <class 'django.contrib.auth.models.Group'> QuerySet.
访问groups时,后端报警告 UnorderedObjectListWarning: Pagination may yield inconsistent results with an unorde ...
- mouseleave([[data],fn])
mouseleave([[data],fn]) 概述 当鼠标指针离开元素时,会发生 mouseleave 事件.该事件大多数时候会与mouseenter 事件一起使用. 与 mouseout 事件不同 ...
- JVM相关面试
来源:老码农 ,lingsui.github.io/2018/03/30/JVM面试题/ 1.你知道哪些或者你们线上使⽤什么GC策略?它有什么优势,适⽤于什么场景? 参考 触发JVM进行Full ...
- CF796C Bank Hacking 细节
思路十分简单,答案只有 3 种可能,但是有一些细节需要额外注意一下. code: #include <bits/stdc++.h> #define N 300002 #define set ...

