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

news2024/12/26 10:04:52

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.coloradmin.cn/o/1905818.html

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

相关文章

BaseServlet的封装

创建BaseServlet的必要性 如果不创建BaseServlet,现在我们只要实现一个功能,我们就需要创建一个servlet! 例如:用户模块(登录,注册,退出录,激活,发送邮件等等功能) 也就是说,我们必须要创建一…

工程化-vue3+ts:代码检测工具 ESLint

一、理解ESLint ESLint是一个开源的JavaScript代码检查工具,用于帮助开发人员规范和统一编码风格。它可以检查代码中的潜在错误、不一致的编码习惯以及一些常见的代码问题。 ESLint使用基于规则的插件体系,可以根据项目的需求和个人的偏好配置不同的规…

数学系C++ 类与对象 STL(九)

目录 目录 面向对象:py,c艹,Java都是,但c是面向过程 特征: 对象 内敛成员函数【是啥】: 构造函数和析构函数 构造函数 复制构造函数/拷贝构造函数: 【……】 实参与形参的传递方式:值…

git杂记

git 安装: 在 Windows 上安装 Git 也有几种安装方法。 官方版本可以在 Git 官方网站下载。 打开 https://git-scm.com/download/win,下载会自动开始。 要注意这是一个名为 Git for Windows 的项目(也叫做 msysGit),和…

如何优化 PostgreSQL 中对于树形结构数据的查询?

文章目录 一、数据模型选择(一)邻接表模型(二)路径枚举模型(三)嵌套集模型 二、索引策略(一)对于邻接表模型(二)对于路径枚举模型(三)…

基于pi控制的数字锁相环simulink建模与仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff09…

ARM架构以及程序运行解析

文章目录 1. ARM架构 2. ARM处理器程序运行的过程 3. 示例 3. 基于ARM架构的STM32单片机 1. 运行模式 2. 寄存器组 3. STM32的基本结构 4. STM32的运行模式 4. 寄存器组详解 1. 未备份寄存器 2. 备份寄存器 3. 程序计数器 4. 程序状态寄存器 5. CPSR和SPSR寄存器…

【TB作品】51单片机 Proteus仿真 00001仿真实物PID电机调速系统

实验报告:Proteus 仿真 PID 电机调速系统 一、实验背景 PID(比例-积分-微分)控制器广泛应用于工业控制系统中,用于调节各种物理变量。本实验的目的是通过 Proteus 仿真软件设计并实现一个 PID 电机调速系统,以控制直…

记一次酣畅淋漓的UDF提权(Linux)

外网打点就不放了,翻了一下具备suid权限的命令,没啥结果。 可疑的命令是/usr/lib/dbus-1.0/dbus-daemon-launch-helper但是没有找到用这个命令提权的资料。 弹shell后翻找一下源码,/app/api.py文件中链接了mysql,事出反常必有妖&…

水冷液冷负载系统的六种基本类型

您可以选择六种基本类型的冷却系统,以满足负载的冷却需求。每个人都有其优点和缺点。本文旨在识别不同类型的冷却系统并确定它们的优缺点,以便您可以根据自己的需求做出明智的选择。 液体冷却系统有六种基本类型: 1.液对液 2.闭环干燥系统…

【论文阅读】AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising

论文:2406.06911 (arxiv.org) 代码:czg1225/AsyncDiff: Official implementation of "AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising" (github.com) 简介 异步去噪并行化扩散模型。提出了一种新的扩散模型分布式加…

J024_打印电影的全部信息

一、需求描述 展示多部电影的信息。 电影信息包括:电影名称、电影得分、电影票价格。 二、代码实现 2.1 Movie类 package com.itheima.collection;public class Movie {//电影名称private String name;//电影得分private int score;//电影票价格private double…

前端面试题(CSS篇五)

一、设备像素、css 像素、设备独立像素、dpr、ppi 之间的区别? 设备像素指的是物理像素,一般手机的分辨率指的就是设备像素,一个设备的设备像素是不可变的。 css像素和设备独立像素是等价的,不管在何种分辨率的设备上,…

LLaMA2模型开源商用:实力比肩ChatGPT,探索AI新高度

【大模型】可商用且更强的 LLaMA2 来了 LLaMA2 简介 论文 GitHubhuggingface模型列表训练数据训练信息模型信息 许可证参考 LLaMA2 简介 2023年7月19日:Meta 发布开源可商用模型 Llama 2。 Llama 2是一个预训练和微调的生成文本模型的集合,其规模从…

java中反射(Reflection)的4个作用

java中反射(Reflection)的4个作用 作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断任意一个类所具有的成员变量和方法作用4、在运行时调用任意一个对象的方法总结 💖The Begin💖…

shared_ptr 线程安全

为什么 shared_ptr 可以安全地在多个线程中共享? 循环引用 因为shared_ptr std::shared_ptr 的引用计数是线程安全的。这意味着你可以在多个线程中安全地拷贝、赋值和销毁 std::shared_ptr。然而,访问或修改 shared_ptr 所指向的对象时,需要…

SpringBoot彩蛋之定制启动画面

写在前面 在日常开发中,我们经常会看到各种各样的启动画面。例如以下几种 ① spring项目启动画面 ② mybatisplus启动画面 ③若依项目启动画面 还有很多各式各样好看的启动画面,那么怎么定制这些启动画面呢? 一、小试牛刀 ① 新建一个Spr…

聊聊数据库变更管控的白屏化

在前文中介绍了当涉及到数据库相关的变更如数据更新或者误删表等误操作时,通过延迟库或者闪回等功能来恢复业务,这些已经属于事后的故障处理了。当故障发生后,所要面临的是故障影响的不可控,所面临的损失也是不可预估的。就像最近…

【Excel】求和带文字的数据

目录标题 1. 给出样例2. CtrlE3. CtrlH → A替换为 → 全部替换 1. 给出样例 2. CtrlE 3. CtrlH → A替换为 → 全部替换

从零开始的python学习生活

pycharm部分好用快捷键 变量名的定义 与之前学习过的语言有所不同的是,python中变量名的定义更加的简洁 such as 整形。浮点型和字符串的定义 money50 haha13.14 gaga"hello"字符串的定义依然是需要加上引号,也不需要写;了 字符…