智能体结构

智能体的结构

迄今为止我们通过描述行为—在任何给定的感知序列下采取的行动—讨论了智能体,现在我们不得不将知难而进,去讨论智能体内部是如何工作的,AI的任务是设计智能体程序,通过它来把感知信息映射到行动的智能体函数,我们假设改程序在某种具备实际传感器和执行器计算装置上运行-我们称之为体系结构。

智能体=体系结构+程序

显而易见,我们选择的程序必须适合体系结构。如果程序要能够进行诸如行走这样的行动。那么体系结构最好有腿。体系结构也许只是一台普通的个人计算机,或者一辆自动驾驶汽车,车上载有一些计算机,摄像头和其他传感器。总而言之,体系结构为程序提供来自传感器的感知信息,运行程序,并且把程序产生的行动选择传送给执行器。在我写的文章中绝对多数的章节都是关于智能体的程序的,其实和机器学习程序大同小异。

1:智能体程序

其实我们设计的智能体程序都具有相同的骨架,他们从传感器得到感知信息作为输入,返回一个行动交给执行器。注意智能体程序和智能体函数之间的差别。智能体程序在于当前感知为输入,而智能体函数是以整个历史为输入的。智能体程序只把当前感知作为输入是因为环境无法得到更多的东西。如果智能体的行动依赖于整个感知序列。那么该智能体不得不记住全部感知的信息。

*智能体程序骨架还有其他的选择。例如我们可以让智能体程序成为协同程序。他们的环境和运行时异步的,每个这样的程序有一个输入和输出端口,并由一个从输入端口读取感知信息再把行动写到输出端口的循环过程组成。

我们将用一段在附录B中定义的简单伪代码去描述智能体程序,在上图中我们显示了一段相当普通的智能体程序,他记录感知序列,然后使用感知序列作为牵引,到行动表里查询该决策应该做什么。行动表明确的表示了每个智能体程序实现的智能体函数。要用这种方式来建造理性智能体。作为设计者,我们必须构造包括各种可能的感知序列的适当行动的函数表。

当我们考虑到为什么构造智能体的表驱动的方法是注定要失败是有益的,这个时候我们令P为可能的感知信息的集合。T为智能体的寿命(智能体收到感知信息的总量)。查找表将包括从1到T所有P的集合个条目。即便是国际象棋这样的在一个世界上微小的,良好表现的片段,查找表也将要至少包括10的150次方的条目。这些令人望而生畏的容量,意味着:1:这个世界没有一个实际的智能体可以保存该表的空间。2:设计者没有时间来创建该表。3:没有智能体能够从他的经验中学习正确的表条目。4:既是环境足够简单,可以得到一个可行的表容量,设计者仍然得不到关于如何该条目的指导

除了这些,AI的关键挑战是如何搞清楚编写程序,在可接受的范围内,从少量的代码而不是大量的表目中产生出理性的行为,我们有很多的例子是显示出在其他的领域上述做法是可行的,但是我们的问题是AI是否可以像我们人类一样可以产生一般的智能行为?但是我相信这个答案是肯定的。

在这个文章的以下部分,我想概述四种基本的智能体程序,他们几乎涵盖了所有智能系统的基础准则:

1:简单反射型智能体

2:基于模型的反射型智能体

3:基于目标的智能体

4:基于效用的智能体

然后我们将概括的解释如何把这些智能体转换成学习智能体。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏函数式编程语言及工具

scala泛函编程是怎样被选中的

      现在计算机技术发展现象是:无论硬件技术如何发展都满足不了软件需求;无论处理器变得能跑多快,都无法满足软件对计算能力的需要。按照摩尔定律(Moore...

22170
来自专栏二进制文集

《代码大全》读书笔记

早就听说过这本书,但是一直没有勇气读。一方面是因为书太厚,另一方面听说是十几年前的书就没有了兴趣。

25440
来自专栏Java程序员的架构之路

作为程序员,无论你在哪个阶段,这些书都值得你看

我们都想要自己的编程技能能上升到更高级别的水平,但往往不知道从何下手,本文,我将推荐6本书,无论是是什么程序员,这些书都可以让你的能力得到提升

6400
来自专栏IT派

7 月编程语言指数榜:Python 与 Java 逐渐拉开差距

PYPL 已发布7月编程语言指数榜,Python 在今年5月首次超越 Java 拿下榜首位置后,保持上涨趋势,正逐渐与 Java 拉开差距。

8810
来自专栏程序人生 阅读快乐

Python高性能编程

Python语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理、机器学习、科学计算、推荐系统构建等。 本书共有12章,围绕如何进行代码优化和加快...

11920
来自专栏web前端教室

学会JS只是知道了“是什么”,并不意味着你会用JS做什么

假设有这样一个需求,“在一堆人里,选出5个人,每个人给一个包子”。这个需求如果用js来描述,该怎么做呢? 如果用中文来描述,应该是类似这样的一个东西: func...

23770
来自专栏编程

C和C加加的学习过程总结,内有实用学习路线

总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。 一家之言,欢迎拍砖哈。 1、可以考虑先学习C. ? 大多数时候,我们...

24860
来自专栏应用案例

C语言C加加新手入门基础学习书籍资料推荐

接下来会陆续介绍各自编程语言和各个领域的学习建议,本文先讲C语言。 ? ? 1、C语言适合当第一门编程语言学习 、C语言语法相对简单,但又比较完整和严谨,包含该...

435100
来自专栏微信公众号:Java团长

如何学好java语言?

IT行业的朋友,应为本事就有编程语言的技术,学习Java语言不是困难的事情。所谓的懂一门语言就会其他语言。为什么这么说,应他们有一些编程的基本知识,他们知道如何...

17520
来自专栏北京马哥教育

所有人都说Python 简单易学,为何我觉得难?

记得刚学Python的时候,几乎所有人都说Python 简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难。 学习之前网上的教材看了...

53970

扫码关注云+社区

领取腾讯云代金券