趁着假期快速阅读了一些关于逻辑编程的文献,喜欢上了逻辑编程这种编程方式。 然后,顺藤摸瓜,果然, 神经网络+逻辑编程 ,学术界的研究也有了初步的成果,例如Logic Tensor Networks 、Neural Logic Machines 等等。
本文整理了逻辑编程、prolog语言快速入门、LTN的核心思想,分享给大家。

01

逻辑编程是什么?

programming of Logic
只要给出事实和规则,它会自动分析其中的逻辑关系,然后给出答案。 它描述了解决方案而不是计算步骤。 基于该描述,计算机解决了该问题。 从这点来说,描述问题的解决方案比设计解决问题的方法容易得多,在逻辑编程时,我们不需要关心寻找结果的过程,这就是逻辑编程具有吸引力的原因。
在逻辑编程中,我们需要建立建立变量(未知数)和值(知识)之间的约束关系,例如:
x * 2 + y * 2 == 16

就是一条建立好的约束关系,我们只需编写到这一步即可,剩下的逻辑编程语言会自动计算出有效的结果。
而非逻辑编程语言,需要我们一步一步告诉计算机确切地做什么,例如:
for(var x=0;x<16;x++){    for(var y=0;y<16;y++){    if(x*2+y*2==16){ console.log(x,y)    }   }
}

我们需要把具体的解决方案也编写完。是不是感觉逻辑编程很简单?只需要把解题的约束建立好。学习逻辑编程,可以先从Prolog学起。

02

Prolog 语言

我们来试验下逻辑编程,开发环境是mac,打开终端,输入:
brew install swi-prolog

安装过程有点漫长,等待安装完成。
开始体验,终端输入:
swipl

然后输入:
write("Hello  Mixlab").

注意,prolog的每条命令结尾需要添加一个 . 号
终端会打印出Hello Mixlab的字样,恭喜,prolog运行成功。
如何退出prolog? 终端输入:
halt.

即可退出prolog。

03

通过寻找凶手的例子,了解逻辑编程的核心思想

如何用prolog寻找凶手呢? 案件是这样的Boddy先生死于谋杀,现有6名嫌疑犯,每个人在不同的房间,每间房间各有一件可能的凶器。 我们不知道嫌疑犯、房间、凶器之间的对应关系。
下面将根据每次探案获得的线索,一步步输入prolog,最终找出谁是凶手。
这个过程是不是很像最近热播的《轮到你了》中用AI来寻找凶手的过程,也是一次次输入获得的线索,然后AI来推理。
6名嫌疑犯分别是:
三男 George、John、Robert
三女 Barbara、Christine、Yolanda
p rolog先定义6名嫌疑犯:
man(george).
man(john).
man(robert).
woman(barbara).
woman(christine).
woman(yolanda).

用2条规则来约定男人属于人,女人属于人:
person(X):- man(X).
person(X):- woman(X).

这样,最基本的变量(未知数)X和知识person、woman,已经建立关系。 我们可以把上面这几行代码写成一个test.pl文件,然后终端输入:
swipl
[test].

测试下:
person(shadow).

返回的是false,因为shadow没有录入man里,再试试输入:
person(john).

返回的是true。
详细的代码地址可以见文末。 我们继续往下
04

Logic Tensor Networks(LTN)

LTN逻辑张量网络,把知识和数据都被映射到向量空间,从而使得模型具备知识推理能力。 下面通过一个例子来理解它的核心思想。
通过上文的简单介绍,我们知道,需要把知识跟变量可能的值录入,程序就具备了逻辑推理能力。 例如,知识“apple”,按照逻辑编程的写法“ apple(x)”,它将任何对象x作为参数,如果该对象是苹果则返回true,否则返回false。
规则: 红苹果是甜的,可以表示为逻辑公式:
sweet(x):- apple(x),red(x)

此语句可解释如下:
“如果x是苹果和红色,那么这个x也必须是甜的。 ”
换句话说: 所有红苹果都是甜的。
如果apple(x)返回的不是true或者false,而是返回0到1之间的数字,这样,我们就可以通过0-1来表达x是apple的概率。
一旦我们把apple(x)的取值范围变为0-1,我们就可以利用神经网络进行分类,然后再使用我们的逻辑公式对其进行推理。 此外,我们可以使用逻辑公式来指导学习神经网络权重的过程。 我们可以优化神经网络的权重,使其正确地将x分类为apple。
我是喜欢上了逻辑编程的方式,还可以为AI加上推理能力,
逻辑编程+深度学习
欢迎加入mixlab无界社区一起探索。
参考资料
1 prolog经典示例
https://github.com/xmonader/prolog-rands/blob/master/crime.pl
2 Logic Tensor Networks: Deep Learning and Logical Reasoning from Data and Knowledge
https://arxiv.org/abs/1606.04422

从prolog到LTN,AI的逻辑推理能力1相关推荐

  1. 软件智能:aaas系统中AI的任务能力和工作

    概要(内容概述) <同一> 将设计目标确定为"软件智能"的aaas中,AI的任务和AI能力的工作原理大致如下: 不断思索抽象理论和现实世界之间的不可避免的不匹配的问题( ...

  2. ChatGPT和GPT-4的逻辑推理如何?浙大等最新《ChatGPT和GPT-4逻辑推理能力全面评测》论文解答,常规优异新数据差...

    来源:专知 运用逻辑推理能力进行全面的自然语言理解尝试.随着生成预训练Transformer 4(GPT-4)的发布,它在推理任务上被称为"先进"的,我们渴望了解GPT-4在各种逻 ...

  3. 浪潮发布重磅产品“元脑”,专注AI全栈能力输出

    整理 | 一一 出品 | AI科技大本营(ID:rgznai100) 4月16日,以"智慧凝聚"为题的IPF2019浪潮云数据中心合作伙伴大会在上海举办.大会重点聚焦浪潮" ...

  4. 近期活动盘点:高管AI大数据能力研修班、英伟达初创企业展示开启报名

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此 高级管理人员AI大数据能力研修班 截至2020年12月31日 项目背景 大数据是第四次产业革命的核心,物联网.人工智能.5G通信.区块链.数 ...

  5. 近期活动盘点:2019第六届世界互联网大会、智慧城市的人本尺度城市形态讲座、高管AI大数据能力研修班、英伟达初创企业展示开启报名...

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此 2019第六届世界互联网大会•数字经济产业合作系列活动 2019年10月19日-10月20日 2018年,我国GDP超过90万亿元,全国互联 ...

  6. 近期活动盘点:2019第六届世界互联网大会、面向智慧城市的人本尺度城市形态:理论方法与实践讲座、高级管理人员AI大数据能力研修班...

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此 2019第六届世界互联网大会•数字经济产业合作系列活动 2019年10月19日-10月20日 2018年,我国GDP超过90万亿元,全国互联 ...

  7. 报名 | 高级管理人员AI大数据能力研修班

    高级管理人员AI大数据能力研修班 招生简章 立项号:1925610893 主办单位:清华大学继续教育学院 一.  项目背景 大数据是第四次产业革命的核心,物联网.人工智能.5G通信.区块链.数字城市等 ...

  8. Nature封面:人类还在看提词器,AI的辩论能力却出现了重大进展

    来源:机器之心 编辑:魔王.陈萍 人类斗嘴还要看提词器,AI 引经据典的能力却已经比你高出不止一个段位了. 在人工智能打败专业国际象棋选手.围棋选手,并在多个电子游戏中大展身手之后,现在它冲着职业辩论 ...

  9. AI产品经理能力模型的重点素质:人文素养和灵魂境界

    本文是我第一次正式详述"人文素养和灵魂境界"对于AI产品经理的意义到底在哪里,摘自<AI产品经理的实操手册(2021版)>的1.1.3.3节. 在AI产品经理的能力模型 ...

最新文章

  1. Linux有问必答-如何创建和挂载XFS文件系统
  2. dubbo k8s 服务发现_服务化改造实践(二)| Dubbo + Kubernetes
  3. C++ 覆盖方法、重载方法的理解
  4. 【OFDM系列1】OFDM调制原理、参数、循环前缀、采样偏差、频偏及估计详解
  5. 有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”
  6. linux查看双机热备运行,linux双机热备,故障切换!!!
  7. iOS base64编解码
  8. 可视对讲行业洗牌进行时 企业应该何去何从?
  9. 大厂面试 | 阿里巴巴大数据工程师面试题汇总
  10. IP地址的分类及范围详解:A、B、C、D、E五类是如何划分的
  11. python浪漫代码表白npy_python实现npy格式文件转换为txt文件操作
  12. java山地车 故障,山地车骑行常见的10大问题及解决方案
  13. 斯坦福大学公开课:iOS8开发 第一课:课务,iOS8概述学习笔记
  14. H5页面、微页、轻应用、轻app、场景应用制作工具:
  15. PDF电子发票内容提取
  16. 以太网芯片W3100A到W3150A+的移植笔记(一)
  17. Android 信鸽推送集成
  18. 案例2:随机森林来填补缺失值
  19. 主播直播间抖音电商脚本运营话术模板表格方案管理计划
  20. 生成全局唯一ID的3个思路,来自一个资深架构师的总结

热门文章

  1. 软件I2C读写MPU6050代码
  2. 新生学大学计算机心得,大一新生上学期学习心得体会
  3. 算法模板总结(自用)
  4. 红外和可见光图像融合论文及代码整理
  5. xml中的sql 标签中应使用 尖括号,感叹号 注释. 其他方式会被当成sql语句执行.
  6. 人工智能 漆桂林_漆桂林
  7. 为什么选择做硬件而不是吃香的软件
  8. 深圳8千名滴滴司机被封号? 官方:只是平台整治
  9. java全选如何实现,checkbox全选实现
  10. linux系统fasta程序,代码分析_fasta_main