读人工智能全传06逻辑编程

1. 现代逻辑

1.1. 到了20世纪初,现代逻辑的基本框架已经大致建立起来,当时确立的逻辑运算系统,直至如今仍然能够支撑数学家几乎所有的逻辑推理工作

1.1.1. 这个系统被称为一阶逻辑,一阶逻辑是数学和推理的通用语言

1.1.2. 这个框架涵盖了亚里士多德、弗雷格、德·摩根、布尔和其他人的所有类型的推理

1.1.3. 在人工智能领域,一阶逻辑似乎以同样的方式提供了统一框架,为当时世界各地各式各样、不成体系的知识表述方案提供了统一框架

1.1.4. 基于逻辑的人工智能范式由此诞生,其最早和最具影响力的倡导者之一,就是约翰·麦卡锡

1.2. 人工智能开发中一个常见的误区,就在于开发者为系统所选择的术语对人类而言太容易理解了,反而增加了许多不必要的误解,这让我们以为机器人也能轻而易举读懂语言本身,而事实并非如此

1.3. 机器人的感应系统负责将感应器所提供的原始信息转化成机器人能使用的内部逻辑形式

1.3.1. 通过机器人的逻辑推理系统(推理机)来决定机器人的实际行为

1.4. 逻辑人工智能的核心思想就在于机器人的行为是基于逻辑推理的结果:它必须推断出自己接下来应该做什么

2. 逻辑编程

2.1. 逻辑编程使用的是一种非常有名的语言:PROLOG

2.2. PROLOG主要是由美籍英国研究员鲍勃·科瓦尔斯基(Bob Kowalski),以及两名来自法国马赛的研究员,阿兰·科尔默劳尔(Alain Colmerauer)和菲利普·罗塞尔(Philippe Roussel)发明的

2.3. 可以用PROLOG编写出非常简洁优雅的程序

2.3.1. 1974年大卫·沃伦(David Warren)编写的战机计划系统可以解决积木世界内的规划问题,只需要100行PROLOG代码

2.3.2. 如果要用Python之类的语言编写同样的系统,大概需要数千行代码以及数月的工作

2.4. 用PROLOG编写的程序不仅仅是程序,还是逻辑公式

2.4.1. PROLOG程序看上去实现了麦卡锡对基于逻辑的人工智能的设想

2.5. 在20世纪70年代末到80年代初,PROLOG开始崭露头角,直到它挑战麦卡锡倍加推崇的LISP语言

2.5.1. 人工智能黑客首选的编程语言

2.6. 虽然PROLOG没有征服程序员的世界,但不能将它视为失败

2.6.1. 在世界各地,程序员每天都在愉快地使用PROLOG编写高效的程序,并感激这种语言的强大和优雅

2.7. PROLOG最大的贡献却是无形的:逻辑编程为计算机提供了一个全新的思路,就如何解决计算问题而言,它有着跟传统计算机完全不同的观点

3. Cyc

3.1. 知识型人工智能时代最著名的实验

3.1.1. Cyc工程是天才的人工智能研究员道格·莱纳特(Doug Lenat)的智慧结晶,莱纳特拥有卓越的科学能力、坚定不移的信心以及优秀的说服能力,让旁人能够接受他的愿景

3.1.2. Cyc工程的雄心壮志确实令人难以置信,要实现莱纳特的构想,Cyc的知识库需要对“共识现实”,即我们所理解的整个世界进行完整描述

3.1.3. 大部分的时间和人力都会消耗在手动知识录入上,即告诉Cyc我们的世界是怎样的,以及我们是怎么理解它的

3.2. 宏伟的目标会掩盖其荒谬的本质

3.2.1. 首要的问题在于,以前从来没人试图将人类所有的基础常识组织汇编

3.2.1.1. 你得定义将使用到的所有词汇,还有各种术语,它们之间是怎么关联的
3.2.1.2. 定义基本术语和概念,并围绕它们组织整个知识体系,被称为本体工程
3.2.1.3. 随着项目的推进,时不时还得推翻重来

3.3. 其实在大规模知识工程中,Cyc算是拥有复杂技术的一次实践

3.3.1. 它教会了我们在开发和组织基于大型知识基础的知识系统中的各种方法

3.4. 从严格精准的意义上来说,Cyc假说——通用人工智能的本质是知识体系问题,可以通过一个合适的基于知识的系统来解决——既没有被证实,也没有被证伪

3.4.1. Cyc不能成为通用人工智能成功案例并不能证明这个理论是错误的,只能证明这种方式没有用而已

3.5. 从某种意义上说,Cyc项目是领先于时代的

3.5.1. Cyc项目开始30年以后,谷歌发布了知识图谱,这是一个庞大的知识库,知识图谱里面汇集了大量关于实体世界的信息(地点、人物、电影、书籍、重大事件等),这些信息被用来丰富谷歌搜索引擎的查找结果

3.5.1.1. 知识图谱并没有以通用人工智能为目标,目前也不清楚它涉及了多少基于知识系统的至关重要的世界观推理
3.5.1.2. 知识图谱多多少少还是携带了Cyc的基因

3.5.2. Cyc和谷歌知识图谱最关键的区别在于,知识图谱中的知识并非手工编码的,而是自动从维基百科等网页中提取出来的

3.6. 不管我们回顾历史时如何尽力客观评价Cyc项目,可悲的事实总是无法改变

3.6.1. Cyc项目在人工智能发展史中之所以留下浓墨重彩的一笔,源于它是一个人工智能被过度炒作的极端案例,它完全辜负了人们寄予的不切实际的厚望

4. 破灭

4.1. 基于知识的人工智能被证明实际应用非常有限

4.2. 在逻辑上,增加更多的信息永远不会消除你之前得到的任何结论

4.3. 但是增加的信息(即“翠迪是一只企鹅”)确确实实使我们需要撤销之前的结论(即“翠迪会飞”)

4.4. 常识推理还有另外一个问题,在我们遇到矛盾的时候就会凸显

4.4.1. 逻辑完全失效:它不能应对这样的场景,也无法告知我们任何有意义的结论

4.4.2. 矛盾是我们每天都会遇见的现实

4.4.2.1. 在数学中,如果遇见矛盾,就意味着你犯了错

4.5. 事实证明,构建和部署专家系统比最初想象的困难得多

4.5.1. 最主要的难题是后来被称为知识获取的问题

4.6. 到了20世纪80年代末,专家系统的繁荣已经结束

4.6.1. 基于知识的系统技术倒不能说是失败了,毕竟许多成功的专家系统也在这一时期内建立起来,此后也逐步有更多的专家系统出现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知识的向量表示

1、one-hot表示,空间太大 2、bag词袋模型,无法表示词的语义 3、词的语义由什么决定?词由他的上下文决定?分布式语义 4、CBow,通过前面几个词和后面几个词,预测中间几个词 5、skip-gram,通过…

Matlab协方差矩阵分解法生成随机场

Matlab协方差矩阵分解法生成随机场 相关系数矩阵 % function outcohesion(x,y,mu,theta) % end % xyload(F:\Research-OUC\基于机器许学习模型的海底斜坡可靠度研究\基于comsol的斜坡稳定性分析\comsol网格操作\grid_operate-matlab.mphtxt); % xxy(:,1); % yxy(:,2); Xlinspac…

Adobe Premiere Pro 2024 v24.5 (macOS, Windows) - 专业视频编辑软件

Adobe Premiere Pro 2024 v24.5 (macOS, Windows) - 专业视频编辑软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adob…

【Selenium配置】WebDriver安装浏览器驱动(ChromeEdge)

【Selenium配置】WebDriver安装浏览器驱动(Chrome&Edge) 文章目录 【Selenium配置】WebDriver安装浏览器驱动(Chrome&Edge)Chrome确认Chrome版本下载对应driver把解压后的chromedriver文件放在chrome安装目录下&#xff0…

算法简介:什么是算法?——定义、历史与应用详解

引言 在现代计算机科学中,算法是一个核心概念。无论是编程还是数据分析,算法都扮演着至关重要的角色。在这篇博客中,我们将深入探讨算法的定义、历史背景以及它在计算机科学中的地位和实际应用。 什么是算法? 算法是解决特定问题…

在线制作网页PHP源码+IAPPv3源码

好久以前刚学PHP的时候搞的,现在翻出来并修复了一下就分享出来了,希望可以给初学者一点借鉴学习例子,虽然不是很好哈,但拿来耍耍应该还算可以吧。 使用教程 环境是PHP就行,直接把源码上传到服务器(虚拟主…

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测 目录 Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-LSTM多变量时间序列预测,Transf…

JavaWeb开发基础7个Web术语解析

7个Web术语 Website: static vs dynamic HTTP HTTP Requests GET vs POST Servlet Container Server: Web vs Application Content Type Website: static vs dynamic 网站内容包括文本、图片、音频、视频,通过URL来访问。网站分为静态网站和动态网站。 静态网…

【计算机组成原理实验】——实验 MIPS 指令系统和 MIPS 体系结构

实验 MIPS 指令系统和 MIPS 体系结构 一、实验目的 了解和熟悉指令级模拟器。 熟练掌握 MIPSsim 模拟器的操作和使用方法。 熟悉 MIPS 指令系统及其特点,加深对 MIPS 指令操作语义的理解。 熟悉 MIPS 体系结构。 二、实验平台 实验平台采用指令级和流水线操作…

通用的职位招聘小程序ui模板

蓝色简单的校园招聘,行业招聘,职位招聘手机小程序页面模板。包含:职位列表、职位详情、基本信息填写、登录、个人主页、消息页面等功能 通用的职位招聘小程序ui模板

洛谷 P3613 学习用map代替大大大数组的好题

题目链接:P3613 【深基15.例2】寄包柜 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目截图: 题意分析: 非常简单的存入和取出操作 唯一的 “难点” 在于 数组开不到 a[100007][100007],会暴内存 非常巧妙的引入 map 来解决…

详解Java垃圾回收(GC)机制

一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。 二、哪些内…

【Java】了解异常

初始异常 我们平时应该已经接触过一些 “异常” 了,这里列举一些例子。 算术异常: 数组下标越界异常: 访问空指针异常: 所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。 异常的基本用法 捕获异常 try{ 有可能…

Open3D 删除点云中重叠的点(方法一)

目录 一、概述 二、代码实现 三、实现效果 3.1原始点云 3.2处理后的点云 3.3计算结果 一、概述 在点云处理中,重叠点(即重复点)可能会对数据分析和处理的结果产生负面影响。因此,删除重叠点是点云预处理中常见且重要的步骤。…

缺失行处理(R和python)

R(complete.cases) rm(listls()) # 创建一个包含缺失值的数据框 # df <- data.frame( # x c(1, 2, NA, 4), # y c(NA, 2, 3, 4), # z c(1, NA, 3, 3) # ) # # # 使用complete.cases函数筛选包含缺失值的数据行 # missing_rows <- !complete.cases(df) # # # …

Java的垃圾回收机制解说

Java 内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭&#xff1b;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的&#xff08;尽管在运行期会由 JIT 编译器进行一些优化&…

使用vue3-treeselect问题

1.当vue3-treeselect是单选时&#xff0c;使用watch监听绑定value&#xff0c;无法监听到值清空 对照后将:value改为v-model&#xff0c;如图 2.使用vue3-treeselect全部清空按钮如何置空select的值&#xff0c;使用watch监听 多选&#xff1a;pageInfo.officeName(val) {// …

【手写数据库内核组件】0201 哈希表hashtable的实战演练,多种非加密算法,hash桶的冲突处理,查找插入删除操作的代码实现

hash表原理与实战 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 hash表…

【TB作品】51单片机 Proteus仿真 MAX7219点阵驱动数码管驱动

1、8乘8点阵模块&#xff08;爱心&#xff09; 数码管测试程序与仿真 实验报告: MAX7219 数码管驱动测试 一、实验目的 通过对 MAX7219 芯片的编程与控制&#xff0c;了解如何使用单片机驱动数码管显示数字&#xff0c;并掌握 SPI 通信协议的基本应用。 二、实验器材 51…

多项式求和之九(给定程序中函数 fun 的功能是:求出以下分数序列的前 n 项之和,并通过函数值返回 main 函数。)

代码 #include <stdio.h> /********found********/ double fun(int n){double a2,b1,c,s0;while(n>0){n--; /********found********/ssa/b;ca;aab;bc;}return s; } void main(){int n;scanf("%d",&n);printf("%lf\n",fun(n)); }友情提示 1、…