读人工智能全传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. 基于知识的系统技术倒不能说是失败了,毕竟许多成功的专家系统也在这一时期内建立起来,此后也逐步有更多的专家系统出现

posted @ 2024-07-08 07:07  躺柒  阅读(13)  评论(0编辑  收藏  举报