人工智能:一种现代的方法 第二章 智能体

news2024/11/25 20:51:44

文章目录

    • 前言
    • 人工智能:一种现代的方法 第二章 智能体
      • 2.1 环境与智能体
      • 2.2 理性概念
      • 2.3环境的性质
        • 2.3.1任务环境的规范描述:PEAS
        • 2.3.2环境的性质
      • 2.4智能体结构

前言

本章属于本书的开篇,有两个不便于理解的地方一是讲述的概念过于抽象,且本书的例子有点老套,所以本人以自动驾驶为例来理解本章的概念。二是本文的伪代码不太好看懂,于是改为c伪代码

人工智能:一种现代的方法 第二章 智能体

2.1 环境与智能体

智能体(intelligent agent):可以感知其环境,自主行动以实现目标,并可以通过学习提高其性能或使用知识的事物

  • 通过传感器感知环境,任何给定时刻Agent的感知序列【输入】
  • 通过执行器对所处环境产生影响,Agent的动作执行对环境进行改变【输出】
  • 根据感知信息,为达到目标,选择环境中最好的可能行为【Agent函数】

智能体通过感知器(sensors)来感知环境,这可能包括摄像头、麦克风、红外线传感器,或者从数据库或网络获取的数据等。智能体通过执行器(actuators)来影响环境,这可能包括马达、扬声器,或者向数据库或网络发送数据等。

环境是智能体所在的上下文,智能体通过与环境交互来实现其目标。环境可以是物理世界,也可以是一个虚拟的世界,如一个计算机游戏或一个网络环境。环境为智能体提供了感知的来源,并接受智能体的行动。

以自动驾驶汽车为例

请添加图片描述

智能体是自动驾驶系统。它的目标可能是将乘客安全、准时地送达目的地。为了实现这个目标,它需要感知并理解其周围的环境,并做出适当的决策和行动。

自动驾驶系统通过各种感知器来感知环境,这可能包括摄像头(用于识别道路、行人、其他车辆等)、雷达和激光雷达(用于测量物体的距离和速度)、GPS(用于确定车辆的位置),以及各种车载传感器(用于测量车辆的速度、方向、燃油消耗等)。自动驾驶系统通过执行器来影响环境,这可能包括控制汽车的转向、加速、刹车等。

环境是自动驾驶汽车所在的道路和周围的世界。环境为自动驾驶系统提供了感知的来源,并接受其行动。环境包括了其他的车辆、行人、道路、交通信号、天气条件等。

2.2 理性概念

对每一个可能的感知序列,根据已知的感知序列提供的证据和Agent具有的先验知识,理性Agent应该选择能使其性能度量最大化的动作,理性Agent是相对的

以自动驾驶汽车为例

  • 感知序列:自动驾驶汽车通过各种传感器收集到的连续环境信息。这些信息可能包括周围车辆的位置和速度、道路状况、交通信号等。
  • 先验知识:自动驾驶汽车在驾驶中应用的已知信息。这可能包括交通规则(如红灯停、绿灯行)、驾驶策略(如保持安全距离、不超速行驶)、以及通过机器学习从大量驾驶数据中学习到的模型(如其他车辆的行为模式、道路状况的影响等)。
  • 性能度量:用于评估自动驾驶汽车行驶性能的标准。这可能包括行驶的安全性(如没有交通事故)、准时性(如按时到达目的地)、舒适性(如避免急刹车和急转弯)等。
  • 理性的决策:在这个上下文中,一个理性的自动驾驶汽车应该根据其感知序列和先验知识,选择那些预期会最大化其性能度量的行动。

2.3环境的性质

2.3.1任务环境的规范描述:PEAS

在人工智能中,PEAS代表了“性能度量(Performance Measure)”,“环境(Environment)”,“执行器(Actuators)”,“传感器(Sensors)”。这是一个用来描述智能系统的框架。

以自动驾驶汽车为例

  • 性能度量(Performance Measure): 这是用来评估Agent行为的标准。例如,对于一个自动驾驶汽车,性能度量可能包括安全性(事故的数量),效率(到达目的地的时间),法规遵守(遵守交通规则)等。
  • 环境(Environment): Agent所在的环境。对于自动驾驶汽车,环境可能包括道路,其他车辆,行人,交通信号等。
  • 执行器(Actuators): Agent与环境交互的方式。对于自动驾驶汽车,执行器可能包括用来控制车辆的方向盘,油门,刹车等。
  • 传感器(Sensors): Agent获取环境信息的方式。对于自动驾驶汽车,传感器可能包括摄像头,雷达,激光雷达等。
人工智能系统性能度量环境执行器传感器
自动驾驶汽车安全性,效率,法规遵守道路,其他车辆,行人,交通信号方向盘,油门,刹车摄像头,雷达,激光雷达
股票交易机器人利润,风险控制股市,经济新闻,公司财报买卖命令市场数据,新闻,财报
自动扫地机器人清洁效率,电池使用效率家庭环境,障碍物马达,吸尘器摄像头,红外线传感器,碰撞传感器
机器人手臂精确度,速度,安全性工作台,工件,其他设备电机,抓取器摄像头,触摸传感器,距离传感器
推荐系统用户满意度,点击率,购买率用户数据,商品数据显示推荐商品用户行为数据,商品点击数据
2.3.2环境的性质
环境性质描述例子
完全可观察 vs 部分可观察完全可观察的环境是指Agent可以获取环境的所有信息,而部分可观察的环境是指Agent只能获取环境的部分信息。完全可观察:棋类游戏,部分可观察:扑克牌游戏
单Agent vs 多Agent单Agent环境是指只有一个Agent在进行决策,而多Agent环境是指有多个Agent同时进行决策。单Agent:一个自动驾驶汽车在空旷道路上行驶,多Agent:多个自动驾驶汽车在同一条道路上行驶
确定的 vs 随机的确定的环境是指在给定状态和行动下,下一个状态是确定的,而随机的环境是指在给定状态和行动下,下一个状态是随机的。确定的:棋类游戏,随机的:股市
片段式的 vs 延续式的片段式的环境是指任务可以分解成多个独立的片段,每个片段的结果不影响其他片段,而延续式的环境是指任务是连续的,前一步的结果会影响后一步。片段式的:扔骰子的游戏,延续式的:下棋的游戏
静态的 vs 动态的静态的环境是指环境的状态在不采取行动的情况下不会改变,而动态的环境是指环境的状态在不采取行动的情况下会改变。静态的:棋类游戏,动态的:股市
离散的 vs 连续的离散的环境是指状态或行动的空间是离散的,而连续的环境是指状态或行动的空间是连续的。离散的:棋类游戏,连续的:自动驾驶汽车的驾驶
已知的 vs 未知的已知的环境是指环境的规则或动态是已知的,而未知的环境是指环境的规则或动态是未知的。已知的:棋类游戏,未知的:探索未知的环境

2.4智能体结构

  • 简单反射Agent
  • 基于模型的反射Agent
  • 基于目标的Agent
  • 基于效用的Agent

自动驾驶为例
请添加图片描述

智能体类型行为举例
简单反应型智能体根据当前感知做出反应红灯停,绿灯行
基于模型的反应型智能体根据当前和过去的感知以及内部的世界模型做出反应知道红绿灯的周期,预测何时灯会变绿,然后决定是否需要完全停车或者是减速等待
基于目标的智能体根据目标和当前的环境状态做出反应知道红绿灯的周期,如果预计等待时间过长,可能会选择绕行以达到尽快到达目的地的目标
基于效用的智能体根据效用函数做出反应,效用函数会考虑多个目标和目标之间的权衡知道红绿灯的周期,如果预计等待时间过长,但绕行会增加燃油消耗,会根据效用函数权衡是否绕行

简单反应型智能体:

// 简单反应型智能体函数
char* SIMPLE_REFLEX_AGENT(char* percept) {
    // 如果感知到红灯,停车
    if (strcmp(percept, "red") == 0) {
        return "stop";
    }
    // 如果感知到绿灯,开车
    else if (strcmp(percept, "green") == 0) {
        return "go";
    }
}

基于模型的反应型智能体:

// 基于模型的反应型智能体函数
char* MODEL_BASED_REFLEX_AGENT(char* percept) {
    // 持久性变量:状态和模型
    static char* state;
    static char* model;

    // 更新状态
    state = UPDATE_STATE(state, percept, model);

    // 如果状态是红灯,停车
    if (strcmp(state, "red_light") == 0) {
        return "stop";
    }
    // 如果状态是绿灯,开车
    else if (strcmp(state, "green_light") == 0) {
        return "go";
    }
    // 如果状态是红灯即将结束,准备开车
    else if (strcmp(state, "red_light_almost_over") == 0) {
        return "prepare_to_go";
    }
}

基于目标的智能体:

// 基于目标的智能体函数
char* GOAL_BASED_AGENT(char* percept) {
    // 持久性变量:状态、模型和目标
    static char* state;
    static char* model;
    static char* goal;

    // 更新状态
    state = UPDATE_STATE(state, percept, model);

    // 如果目标是快速到达目的地
    if (strcmp(goal, "reach_destination_fast") == 0) {
        // 如果状态是红灯,并且红灯的持续时间超过阈值,绕道
        if (strcmp(state, "red_light") == 0 && LIGHT_DURATION(state) > THRESHOLD) {
            return "detour";
        }
        // 否则,遵循交通信号
        else {
            return "follow_traffic_lights";
        }
    }
}

基于效用的智能体:

// 基于效用的智能体函数
char* UTILITY_BASED_AGENT(char* percept) {
    // 持久性变量:状态、模型和效用函数
    static char* state;
    static char* model;
    static int (*utility_function)(char*);

    // 更新状态
    state = UPDATE_STATE(state, percept, model);

    // 获取可能的动作
    char* actions[] = POSSIBLE_ACTIONS(state);

    // 计算每个动作的效用值
    int utility_values[sizeof(actions)/sizeof(char*)];
    for (int i = 0; i < sizeof(actions)/sizeof(char*); i++) {
        utility_values[i] = UTILITY(actions[i], state, utility_function);
    }

    // 返回效用值最大的动作
    return actions[ARGMAX(utility_values)];
}

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

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

相关文章

再不记录就忘啦在浙工商的第一年啦!

再不记录就快忘啦在浙工商的第一年啦&#xff01; 文章目录 再不记录就快忘啦在浙工商的第一年啦&#xff01;&#x1f6a9;这是前言&#xff01;&#xff01;&#xff01;&#x1f468;‍&#x1f680;杭漂选手新生入场【2019.08-2019.10】&#x1f9d8;‍♂️开始步入适应期【…

[机缘参悟-118] :如何做到:从无到有,从0到1设计一个新系统或产品?如何做到总是能快速的解决复杂技术难题?

目录 前言&#xff1a; 一、在软件工程化理论和实践上 二、在担任过的嵌入系统的岗位角色上&#xff08;横向、广度&#xff09; 三、在嵌入式设备的功能分层上&#xff08;纵向、深度&#xff09; 四、在嵌入式通信产品/设备类型上 五、在软硬件产品的项目管理上 六、在…

ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群

引入消息中间件后如何保证其高可用&#xff1f; 基于zookeeper和LevelDB搭建ActiveMQ集群。集群仅提供主备方式的高可用集群功能&#xff0c;避免单点故障。 http://activemq.apache.org/masterslave LevelDB&#xff0c;5.6版本之后推出了LecelDB的持久化引擎&#xff0c;它使…

css-inpu边框

效果图&#xff1a; input {width: 225px;height: 25px;background-color: #1469bd00;border: #aca9a97d solid 1px;color: white;font-size: 15pt;box-sizing: conte-box; }input:focus {border-style: solid;border-color: #03a9f4;box-shadow: 0 0 15px #03a9f4;outline: …

基于分钟级降水预报API 的智能农业水资源管理探究

前言 随着农业现代化的发展&#xff0c;越来越多的农业生产活动需要依赖于科学技术的支持。其中&#xff0c;智能农业水资源管理就是依托新型技术手段&#xff0c;实现对水资源的更加精准预报、科学调度的一种管理模式。而基于分钟级降水预报API的智能农业水资源管理&#xff…

【elasticsearch+kibana基于windows docker安装】

创建网络&#xff1a;es和kibana容器互联 docker network create es-net加载镜像 docker pull elasticsearch:7.12.1运行 docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -v $…

有趣的数学 sign是什么函数

在数学中&#xff0c;函数sign指的是符号函数&#xff0c;它的定义如下&#xff1a;对于任意实数x&#xff0c;若x>0&#xff0c;则sign(x)1&#xff1b;若x0&#xff0c;则sign(x)0&#xff1b;若x<0&#xff0c;则sign(x)-1&#xff1b;简单来说&#xff0c;sign函数就…

node版本管理神器|nvm安装使用教程

文章目录 导文安装前提下载安装包进行安装第一步&#xff0c;下载安装包&#xff0c;[nvm下载地址](https://github.com/coreybutler/nvm-windows/releases)第二步&#xff0c;进行安装&#xff0c;点击nvm-setup.exe文件&#xff0c;接受用户协议第三步&#xff0c;选择安装目…

是时候扔掉你的密码了

引言 “密码是人类历史的不朽篇章&#xff0c;它的早期迹象几乎与文字的诞生同期”。正如密码史学家乔尔里维尔所说&#xff0c;密码&#xff0c;作为信息的保护工具&#xff0c;已经存在了数千年。古代人类早期就开始认识到信息的重要性&#xff0c;同时也意识到了保护这些信息…

Win11安装网络打印机

https://support.microsoft.com/zh-cn/windows/%E5%9C%A8-windows-%E4%B8%AD%E5%AE%89%E8%A3%85%E6%89%93%E5%8D%B0%E6%9C%BA-cc0724cf-793e-3542-d1ff-727e4978638b

辐射骚扰整改思路及方法:辐射超标与问题定位 ?

某产品首次EMC测试时&#xff0c;辐射、静电、浪涌均失败。本篇文章就“辐射超标与问题定位”问题进行详细讨论。 一、辐射超标 50MHz 、100MHz 、130MHz 、200MHz&#xff0c;4个频点明显超标&#xff0c;其中130MHz 左右最明显&#xff0c;超出 19dB&#xff1b;后将电路板…

CRM软件:打造高效率团队

对于一家企业来说团队配合紧密&#xff0c;沟通无障碍是业绩增长的基础&#xff0c;要做到高效率团队协作除了需要管理者制定策略还要依赖数字化工具的加成&#xff0c;比如利用CRM软件打造高效团队。 直观展示工作进度 大多数企业每个月都要制作工作报告、频繁召开会议不断的…

plt.imshow()的用法和参数介绍

函数说明 plt.imshow()是Matplotlib中的一个函数&#xff0c;用于显示图像。它可以传递一个二维或三维数组作为image参数&#xff0c; 并将图像数据显示为图形&#xff0c;并对图像进行不同的可视化设置。 关于二维/三维数组的解释说明 image支持的数组形状包括&#xff1a;…

马斯克的AI大模型登场

(有兴趣的可以直接访问官网&#xff1a;Announcing Grok (x.ai)) 对于大火的人工智能&#xff0c;一向冲锋在前的马斯克却表现得慎之又慎。今年4月&#xff0c;马斯克成立xAI&#xff0c;加入AI大战。经过半年多的酝酿&#xff0c;当地时间11月4日&#xff0c;马斯克旗下社交媒…

如何使用 Loadgen 来简化 HTTP API 请求的集成测试

引言 在编写 HTTP 服务的过程中&#xff0c;集成测试 1 是保证程序正确性的重要一环&#xff0c;如下图所示&#xff0c;其基本的流程就是不断向服务发起请求然后校验响应的状态和数据等&#xff1a; 为大量的 API 和用例编写测试是一件繁琐的工作&#xff0c;而 Loadgen 2 正…

-- Could NOT find livox_ros_driver (missing: livox_ros_driver_DIR)

原因 缺少livox_ros_driver 包 解决办法如下 livox_ros_driver 地址 https://github.com/Livox-SDK/livox_ros_driver 下载下来放入ros的工作目录

pyspark连接mysql数据库报错

使用pyspark连接mysql数据库代码如下 spark_conf SparkConf().setAppName("MyApp").setMaster("local")spark SparkSession.builder.config(confspark_conf).getOrCreate()url "jdbc:mysql://localhost:3306/test?useUnicodetrue&characterE…

嵌套合并视频:高效技巧,让您成为视频剪辑大师

随着数字媒体的普及&#xff0c;视频剪辑已经成为一项必备的技能。在众多视频剪辑技巧中&#xff0c;嵌套合并视频是一项核心技能&#xff0c;它可以将多个视频片段合并成一个完整的视频。本文将介绍一些高效技巧&#xff0c;帮助您轻松掌握嵌套合并视频的方法&#xff0c;成为…

Excel中截取特殊字符之前、之间、之后的数据

1、第一个数据&#xff0c;“*” 之前的数据&#xff0c; 公式 &#xff1a;LEFT(J2,FIND("*",J2)-1) 2、第二个数据&#xff0c;两个 “*” 之中的数据&#xff0c; 公式 &#xff1a;MID(J2,FIND("*",J2)1,FIND("*",J2,FIND("*",…

vue项目npm install报错解决

一、报错信息 node-sass4.14.1 postinstall: node scripts/build.js 二、解决方式 &#xff08;1&#xff09;删除未成功安装的 node_modules 文件&#xff1b; &#xff08;2&#xff09;为 node-sass 单独设置镜像源&#xff1b; npm config set sass_binary_sitehttps:/…