迭代策略评估(决定论)
决定论指的是,agent在某个状态做出一个行为必定到达另一个状态。
如果从100楼高的地方,跳楼,百分之百死掉,这是决定论。
如果是概率论,则做出一个行为可以能有不同的状态,比如假设有一头熊追我,如果我装睡(action),熊可能不吃我,也可能吃我。
迭代策略评估的核心是通过贝尔曼方程更新当前状态的价值,再用新的价值与旧的价值比较,也就是做差值,如果这个差的绝对值小于一个门槛(人为设置),就说明价值函数找到了。
为什么是这样?简单点说是靠贝尔曼方程的迭代。本质上是加权求平均值,可以理解为,平均值是一样的,迭代到最后数据已收集足够,平均值已经准确了,再迭代也不会变,或者变动很小,这个时候就没有必要迭代下去了,浪费时间。
# 初始化各个状态的价值。除终止状态外必为0外,可以设成随机。V = {}for s in grid.all_states():V[s] = 0# 开始循环while True:
# 用来存储差值。biggest_difference = 0for s in g.all_states():if not g.is_terminal(s):old_v = V[s]new_v = 0for a in ACTION_SPACE:for s2 in g.all_states():action_prob = 1 if policy.get(s) == a else 0r = rewards.get((s,a,s2),0)
#贝尔曼方程更新价值new_v = action_prob*trans_probs.get((s,a,s2),0)*(r+gamma*V[s2])V[s] = new_v
# 求差值der = np.abs(new_v-old_v)
求得了价值函数,还只考虑了决定论。还需要考虑行为可能到达不同的状态的情况,也就是 概率论.
迭代策略评估(决定论)相关推荐
- 小网格环境下的迭代策略评估的价值计算以及python实现(可视化)
用最简单的python语法实现小网格环境下的迭代策略评估(Iterative Policy Evaluation in Small Gridworld) 一 .小网格环境下的迭代策略简介 哈哈,能看到 ...
- 强化学习(三):策略评估与优化
本文章收录在黑鲸智能系统知识库-黑鲸智能系统知识库成立于2021年,致力于建立一个完整的智能系统知识库体系.我们的工作:收集和整理世界范围内的学习资源,系统地建立一个内容全面.结构合理的知识库. 作者 ...
- 强化学习 动态规划 策略评估 策略改进 策略迭代 有模型 无模型
目录 一.动态规划 1.1核心思想 1.2异步动态规划 二.策略评估与改进 2.1有模型学习与无模型学习 2.2策略评估 2.2.1输入 2.2.2输出 2.2.3迭代过程 2.3策略改进 2.3.1 ...
- 《因果学习周刊》第7期:因果学习中的离线策略评估
No.07 智源社区 因果学习组 因 果 学 习 研究 观点 资源 活动 关于周刊 因果学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...
- 浅谈云上攻防——对象存储服务访问策略评估机制研究
前言 近些年来,越来越多的IT产业正在向云原生的开发和部署模式转变,这些模式的转变也带来了一些全新的安全挑战. 对象存储作为云原生的一项重要功能,同样面临着一些列安全挑战.但在对象存储所导致的安全问题 ...
- 强化学习笔记:策略评估--贝尔曼方程求解示例
目录 1. 前言 2. MDP模型 3. 求解贝尔曼方程 1. 前言 策略评估(Policy Evaluation),简单来说,就是针对某个既定的策略求其状态值函数和动作值函数.求得了状态值函数和动作 ...
- 蒙特卡洛方法求解强化学习任务——基于离轨策略的蒙特卡洛策略评估
蒙特卡洛方法求解强化学习任务--基于离轨策略的蒙特卡洛策略评估 目录 基于离轨策略的蒙特卡洛策略评估 基于普通重要性采样的离轨策略方法 基于普通重要性采样的离轨策略方法总结 基于加权重要性采样的离轨策 ...
- 量化交易 第五课 策略评估指标
第五课 策略评估指标 概述 收益指标 回测收益率 年化收益率 基准收益率 风险指标 最大回撤 单位风险收益指标 夏普比率 概述 在量化策略回测研究中, 往往需要通过风险评价指标从各个角度客观, 全面地 ...
- 量化交易 第六课 策略评估指标计算
第六课 策略评估指标计算 概述 获取取票数据 回测收益率 回测年华收益率 最大回撤 夏普比率 概述 我们在创建策略的过程中, 需要通过不同的评估指标来验证策略的有效性. 这些指标可以帮助我们调整策略, ...
最新文章
- Exception loading sessions from persistent storage
- Joiner的简单了解
- 如何合并多个Django项目?
- [原创 URL重写步骤
- tomcat与apache区别
- binding.filter(filter) will trigger OData request to backend
- 如何把svn代码拉下来,Maven - 从SVN拉取代码
- 计算机网络层实验路由表苏州科技,苏州科技大学计算机网络实验报告课案.docx...
- JSON是什么?如何产生的?
- MySQL之慢查询日志和连接管理
- 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
- php include 导航栏,PHP全栈开发(八):CSS Ⅹ 导航栏制作
- iSaver for Mac(动态桌面屏保软件)
- arcgis缓冲区分析(结合案例)-国家边界缓冲区的建立
- 插个队 leetcode 142. 环形链表 II
- 高通音频驱动录音流程(一)
- 自动化构建工作流--grunt
- 电路图中电阻分类字母速记说明图文
- UBUNTU内核升级后,如何更新 kernel headers
- Hugo 建站经验之谈
热门文章
- 软件配置管理的目标和任务
- SpringBoot中获取时间对象Can not parse date while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS
- 企业AAA信用等级认证 发展一路“亮红灯
- BlackBerry视频播放编程
- 单片机基础知识之定时计数器和寄存器
- 顺序栈实现将十进制整数转换为r(2、8、16)进制数
- FPGA核心优点有哪些?FPGA可以取代DSP?
- php lotus notes,Lotus Notes 和 Domino Web Access 的比较
- summernote富文本中上传图片并保存到Oracle数据库的问题解决
- 【概率论与数理统计】第三章知识点复习与习题