强化学习代码实战(3) --- 寻找真我

前言

本文内容来自于南京大学郭宪老师在博文视点学院录制的视频,课程仅9元地址,配套书籍为深入浅出强化学习 编程实战 郭宪地址

正文

我们发现多臂赌博机执行一个动作之后,无论是选择摇臂1,摇臂2,还是摇臂3之后都会返回原来的状态,也就是说它的状态并没有改变,而右边的寻金币游戏,从1到2,智能体执行动作之后位置(状态)发生了变化,而强化学习就是寻找当前状态下最优的动作,或者说不同状态下最优动作合集(策略)。

从下图右可以看出,P和R都和s,a有关系,无模型就是因为缺P和R。

实际应用中,对于游戏一般用截取的图像信息作为s,但通常不能只用一帧图像作为s,比如说在大小球的游戏中,一帧图像,无法判断小球移动方向和球速,最起码要两帧,在实际应用中,为了提高精确度,一般用四帧图像作为s。AlphaGo中用过去八手双方棋局作为状态。

动作的定义

策略的定义:策略就是给定状态s时,动作集上的分布,比方说,找金币,智能体在状态5时,采用确定性策略,此时向西走概率为1,向其他方向为0,为改状态下的动作概率分布。

值函数定义:就是在策略Π下,智能体从状态s出发,用采用策略Π的累计回报的期望,简单理解,从状态s出发,不同的选择函数(策略,该策略是动作选择策略),会选择不同的动作,转移到不同的状态,最后会找到很多条路径(s,a),选则累计回报最大的路径。

值函数和行为值函数的区别:值函数只和s有关,行为值函数和s,a相关。但两者都是对策略Π的度量。

我们看一下寻找梦中的他游戏的环境设置,

状态空间:对下图进行10×10的网格划分也就是说会有100个不同的状态空间,所以最多会遍历100步,

动作空间:有上下左右四个选择

状态转移概率:此处主要说一下,鸳鸯在碰到障碍物时,不会移动到障碍物位置,而是继续保持原本状态,同样在即将出界时,也是保持原本状态。比方说,向东连续走两个格,第三个格有障碍物,不会移动到障碍物位置,而是保持原本位置不变。

立即回报:碰到障碍物时回报为-1,找到他时回报为1,正常移动回报为0

策略表示:使用了词典函数(待理解)

值函数:设置了10×10的矩阵,对应一百个表格(属于表格型强化学习)

环境渲染用到了pygame包,使用时共三个步骤

1.获取当前图片所在目录

2.获取图片文件名

3.下载图片,并转换成surface对象

最后要继续使用pygame绘制窗口

1.display.set_mode:绘制窗口幕布

2.blit:图片显示在窗口中

3.display.update:幕布更新函数

代码可从视频链接自取

参考文献

1.深入浅出强化学习 编程实战 郭宪

  1. 博文视点学院
相关推荐
写点什么呢21 小时前
Word使用记录
word·1024程序员节
开开心心就好1 天前
内存清理工具点击清理,自动间隔自启
linux·运维·服务器·安全·硬件架构·材料工程·1024程序员节
开开心心就好2 天前
内存清理工具开源免费,自动优化清理项
linux·运维·服务器·python·django·pdf·1024程序员节
张萌杰5 天前
深度学习的基础知识(常见名词解释)
人工智能·深度学习·机器学习·1024程序员节
开开心心就好6 天前
免费无广告卸载工具,轻便安全适配全用户
linux·运维·服务器·网络·安全·启发式算法·1024程序员节
开开心心就好7 天前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节
徐子童9 天前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
扫地的小何尚10 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI11 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好12 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节