强化学习中值函数应用示例

news2024/10/6 8:29:34

一、Gridworld

        Gridworld是一个用于教授强化学习概念的简化的电子游戏环境。它具有一个简单的二维网格,智能体可以在其中执行动作并获得奖励。这个环境是有限的,因为它有一个明确的开始和结束状态,以及一组确定的动作和奖励。

        在Gridworld中,每个单元格代表一个状态,智能体可以在该状态执行四个可能的动作:向北、向南、向东或向西移动一个单元格。如果智能体执行的动作将它们移动到网格之外,它们的位置将保持不变,但它们将获得一个奖励1。另一方面,如果智能体从特殊状态A或B开始执行动作,它们将获得不同的奖励。

        从状态A开始,智能体执行的动作将使它们获得奖励+10,并将它们移动到A0单元格。类似地,从状态B开始,智能体执行的动作将使它们获得奖励+5,并将它们移动到B0单元格。

        通过这个简单的环境,学生可以学习强化学习的基本概念,如值函数、策略和最优解。此外,Gridworld还提供了用于评估和比较不同策略的工具,使学生能够更好地理解这些概念并应用它们来解决实际问题。

        在Gridworld图1中,使用了一个矩形网格来描绘一个简单的有限MDP(马尔可夫决策过程)的值函数。网格的每个单元格都对应于环境的一个状态。在每个单元格,有四个可能的动作:北、南、东、西,这些动作将确定性地将智能体移动到相应方向的一个单元格。如果动作会使智能体离开网格,那么其位置将保持不变,但也会获得一个奖励1。其他动作的奖励为0,除非它们将智能体从特殊状态A和B中移出。从状态A开始,所有四个动作都会产生奖励+10并将智能体移动到A0。从状态B开始,所有动作都会产生奖励+5并将智能体移动到B0。

图1

        假设智能体在所有状态下以相等的概率选择所有四个动作。图b显示了对于这个策略的值函数vπ,对于带折扣的奖励情况,折扣因子γ = 0.9。该值函数是通过求解方程计算得出的。请注意,靠近下边缘的负值是由于在该随机策略下,那里有很大可能性会撞到网格的边缘。状态A在该策略下是最好的状态,但其期望回报小于10,即其即时奖励,因为从A状态开始,智能体将被带到A0状态,从那里很可能会撞到网格的边缘。另一方面,状态B的估值超过5,即其即时奖励,因为从B状态开始,智能体将被带到B0状态,该状态具有正价值。从B0状态开始,由于可能撞到边缘而产生的预期惩罚(负奖励)超过了因可能撞到A或B而产生的预期收益。

二、高尔夫

        将打高尔夫球的过程表述为强化学习任务,我们会对每一击都施加一个惩罚(负面奖励),直到球进入洞中。状态为球的位置,一个状态的价值是,从此位置到球洞的击球次数。我们的行动是针对如何瞄准和挥动球杆的动作,当然,还包括选择哪种球杆。让我们假设这些都是给定的,只需要考虑球杆的选择,我们假设只能是推杆或驱动器。图2的上半部分显示了对于始终使用推杆的策略可能的状态值函数vputt(s)。在洞中的终端状态的价值为0。我们假设无论在球场的哪个位置,我们都可以推杆;这些状态的价值为e1。如果我们在绿地之外的位置,就无法通过推杆到达洞穴,因此其价值更大。如果我们可以通过推杆从某个状态到达绿地,那么该状态的价值必须比绿地的价值少1,即2。为了简化问题,我们假设可以非常精确和确定性地进行推杆,但范围有限。这给我们提供了图中标记为d2的尖锐等高线;位于该线与绿地之间的所有位置都需要恰好两次击球来完成这个洞。同样地,位于e2等高线以内的任何位置都必须具有价值3,依此类推,得到图中所示的所有等高线。推杆无法让我们从沙陷阱中脱身,因此沙陷阱的价值为负无穷大。总体而言,我们需要六次击球才能从发球台到达洞穴。

图2

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

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

相关文章

C++二分查找算法的应用:最长递增子序列

涉及知识点 二分查找 单调映射 源码下载 点击下载源码 题目 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如&#xf…

Rust 语言介绍及安装

目录 1、简介 1.1 为什么选择Rust 高性能 可靠性 生产力 1.2 用 Rust 构建应用 命令行 WebAssembly 网络 嵌入式 2、安装 Rust Windows 的 Linux 子系统(WSL) 检查Rust 是最新的 卸载Rust版本: Cargo:Rust 的构建工…

读图数据库实战笔记03_遍历

1. Gremlin Server只将数据存储在内存中 1.1. 如果停止Gremlin Server,将丢失数据库里的所有数据 2. 概念 2.1. 遍历(动词) 2.1.1. 当在图数据库中导航时,从顶点到边或从边到顶点的移动过程 2.1.2. 类似于在关系数据库中的查…

我在Vscode学OpenCV 初步接触

OpenCV是一个开源的计算机视觉库,可以处理图像和视频数据。它包含了超过2500个优化过的算法,用于对图像和视频进行处理,包括目标识别、面部识别、运动跟踪、立体视觉等。OpenCV支持多种编程语言,包括C、Python、Java等&#xff0c…

光谱图像论文浅读

文章目录 Hyperspectral Image Super-Resolution via Deep Spatiospectral Attention Convolutional Neural Networks Hyperspectral Image Super-Resolution via Deep Spatiospectral Attention Convolutional Neural Networks 通过上采样高光谱保留其光谱特征,采用…

在R中安装CmdStanR的步骤-R4.3.1-CmdStanR-0.6.1.900

报错未安装cmdstanr 安装包官网详细介绍: R Interface to CmdStan • cmdstanrhttps://mc-stan.org/cmdstanr/ 以下是在R中安装CmdStanR的步骤: 1. 首先,需要下载和安装C编译器 例如gcc。如果您已经安装了C编译器,则可以跳过此…

【数据结构--C语言】有序表算法及其应用

有序表是指其中的所有元素以递增或递减方式有序排列。为了简单,假设有序表以递增排列。 有序表的基本运算 InitLIst(&L):初始化有序表LDestoryList(&L):销毁有序表LListEmpty(L):判断空表ListLength(L):求有…

Mysql进阶-索引篇(上)

目录 索引概述 索引结构 数据结构 二叉树 红黑树 B-Tree BTree Hash 索引分类 聚集索引&二级索引 聚集索引选取规则: 具体结构 索引基础语法 SQL性能分析 SQL执行频率 慢查询日志 profile详情 explain 索引概述 介绍: 索引( index &…

基于哈里斯鹰算法的无人机航迹规划-附代码

基于哈里斯鹰算法的无人机航迹规划 文章目录 基于哈里斯鹰算法的无人机航迹规划1.哈里斯鹰搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用哈里斯鹰算法来优化无人机航迹规划。 …

IOC课程整理-18 Spring注解

1. Spring 注解驱动编程发展历程 2. Spring 核心注解场景分类 3. Spring 注解编程模型 https://github.com/spring-projects/spring-framework/wiki/Spring-Annotation-Programming-Model 4. Spring 元注解(Meta-Annotations) 元注解(Meta-A…

PostGreSQL:JSON|JSONB数据类型

JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许…

什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(1)

先看卷积是啥,url: https://www.bilibili.com/video/BV1JX4y1K7Dr/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 下面这个式子就是卷积 看完了,感觉似懂非懂 下一个参考视频:https://www.y…

linux PELT算法中的load计算

滑窗平均的累加计算 权重y按滑窗距离衰减,y^32 0.5,也就是经历32个周期将衰减一半的权重,假设本周期值是V,本周期的加权累加值为Vx,则: 一个完整周期是T,给一个基础值1…

【技能树笔记】网络篇——练习题解析(十)

【技能树笔记】网络篇系列前九篇 【技能树笔记】网络篇——练习题解析(一)-CSDN博客 【技能树笔记】网络篇——练习题解析(二)-CSDN博客 【技能树笔记】网络篇——练习题解析(三)-CSDN博客 【技能树笔记】网…

大数据Flink(一百零五):SQL性能调优

文章目录 SQL性能调优 一、 ​​​​​​​MiniBatch 聚合

2023 年值得关注的国外网络安全初创公司

网络安全初创公司试图解决的问题往往有点超前于主流。他们可以比大多数老牌公司更快地填补空白或新兴需求。初创公司通常可以更快地创新,因为它们不受安装基础的限制。 当然,缺点是初创公司往往缺乏资源和成熟度。公司致力于初创公司的产品或平台是有风…

JavaWeb 怎么在servlet向页面输出Html元素?

service()方法里面的方法体&#xff1a; resp.setContentType("text/html;charsetutf-8");//获得输出流PrintWriter对象PrintWriter outresp.getWriter();out.println("<html>");out.println("<head><title>a servlet</title>…

SDL事件处理以及线程使用(2)

事件使用 #include <stdio.h> #include <SDL.h>#define FF_QUIT_EVENT (SDL_USEREVENT 1) // 定义自定义事件#undef main int main() {SDL_Window* pWindow NULL;SDL_Init(SDL_INIT_VIDEO);// 创建窗口pWindow SDL_CreateWindow("Event Test Title&…

DAY38 动态规划 + 509. 斐波那契数 + 70. 爬楼梯 + 746. 使用最小花费爬楼梯

动态规划理论 动态规划&#xff0c;Dynamic Programming&#xff0c; DP&#xff0c; 如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推导…

OpenTiny Vue 支持 Vue2.7 啦!

你好&#xff0c;我是 Kagol。 前言 上个月发布了一篇 Vue2 升级 Vue3 的文章。 &#x1f596;少年&#xff0c;该升级 Vue3 了&#xff01; 里面提到使用了 ElementUI 的 Vue2 项目&#xff0c;可以通过 TinyVue 和 gogocode 快速升级到 Vue3 项目。 有朋友评论替换butto…