没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
13
实现
DQN
和
A2C
的强化学习方法
1. 实验环境
硬件配置
◦ 处理器:2*AMD EPYC 7773X 64-Core
◦ 内存:1.5TB
◦ 显卡:8*NVIDIA GeForce RTX 3090 24GB
工具环境
◦ Python:3.10.12
◦ Anaconda:23.7.4
◦ 系统:Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic x86_64)
◦ IDE:VS Code 1.85.1
◦ gym:0.26.2
◦ Pytorch:2.1.2
2. 实现
2.1 Breakout for Atari 2600
Breakout 是一款经典的雅达利游戏,也就是我们所熟知的“打砖块”。玩家
需要左右移动在屏幕下方的短平板子将一颗不断弹跳的小球反弹回屏幕上方,使
其将一块块矩形砖块组成的六行砖块墙面打碎,并防止小球从屏幕底部掉落。在
Atari 2600 版本的 Breakout 中,玩家共有 5 次小球掉落机会,一旦用完就标志游
戏结束,每打掉一块砖块得 1 分,全部打掉则游戏胜利结束。
图 2-1 Breakout for Atari 2600 游戏示意图
14
在由
OpenAI
编写和维护的公开库
Gym
中,具备对
Atari Breakout
游戏的强
化学习环境实现,无需自行编写。
2.2 Double Deep-Q Network
Deep-Q Network (DQN)方法是一种利用深度神经网络进行动作价值函数近
似的 Q-Learning 强化学习方法。从价值函数学习的角度来说,在最朴素的
Q-Learning 方法中,对于状态空间和动作空间离散且简单的环境,可以使用 Q
table 直接学习动作价值函数,从而使用贪心策略从 Q table 中选择动作价值最高
的动作。然而更多情况下的动作价值函数并不能由 Q table 直接表示,因此衍生
出了动作价值函数近似方法,可以引入多样的近似手段实现动作价值函数的近似
逼近,这些手段包括简单的线性函数近似、更为强大的神经网络、决策树以及基
于傅里叶或小波变换的方法等。而本节所实现的 DQN,就是使用深度神经网络
来近似动作价值函数。从经验采样学习的角度来说,对动作价值函数的近似可以
在蒙特卡洛 (Monte Carlo)方法和时序差分 (Temporal Difference, TD)方法上进行
实现,而其中蒙特卡洛方法需要采样完整的一幕后才能进行学习,而时序差分方
法可以只采样部分步骤,特别是 TD(0)时序差分方法,在每步都可以进行价值函
数更新。而本节所实现的 DQN 就是一种 TD(0)时序差分方法。
下面将具体介绍如何实现 Double Deep-Q Network (DDQN)强化学习方法,用
于在 Breakout 游戏上进行训练和评估。
2.2.1 基于卷积神经网络的 Deep Q Network 实现
Deep Q Network (DQN)的输入连续 4 帧游戏屏幕图像的 4 通道 84*84 图像,
进入三个卷积层,在最后的全连接层展平输出动作概率,每层后均使用 ReLU 激
活函数激活。详细的 DQN 神经网络结构参数如表 2-1 和图 2-2 所示。
层类型\参数名称
输入通道数/
特征数
输出通道数/
特征数
核尺寸
步长
Conv1
4
32
8
4
Conv2
32
64
4
2
Conv3
64
64
3
1
Dense
7*7*64
512
\
\
Out
512
4
\
\
表 2-1 本节 Deep Q Network 结构参数
15
图 2-2 本节 Deep-Q Network 卷积过程示意图
2.2.2 Double DQN agent
在普通的
DQN agent
中,只有一个
Q-Network
用于估计动作价值函数时,存
在过估计问题,会导致学习到的策略不稳定。
Hasselt
等人
2015
年提出的
Double
Q-Learning
很好缓解了过估计问题
1
。其中
agent
使用主网络和目标网络,主网络
用于计算当前状态下每个动作的估计值,而目标网络则用于计算下一个状态的最
大动作价值的估计值。
动作选择方面,采用的是典型的
epsilon-greedy
策略。每步在当前状态下以
的概率选择随机动作,以
−
的概率通过贪心策略选择主网络给出的最大动作
价值对应的动作。
遵循 DQN agent 的经典设置,本节也采用了经验回放缓冲区 (Experience
Replay Buffer)方法,用于在训练时将采样的 轨迹缓存,并提供随机批量
采样供给网络进行小批量学习,可以有效提高训练稳定性和效率
2
。本节
Double
DQN 方法中的经验缓冲区在缓存满前并不开始训练,具有冷启动特征。
对于主网络的学习,使用 SmoothL1Loss,使用目标网络的价值估计结果作为
监督,与主网络的价值估计结果计算 loss,并对主网络进行梯度反向传播更新参
数。
1
Deep Reinforcement Learning with Double Q-learning
2
Playing Atari with Deep Reinforcement Learning
16
其中
是主网络在第
次迭代时,在状态
下采取动作
所估计的动作价
值,
是由奖励
和目标网络计算组合得到的目标值。特别地,由于目标网络每
隔
次迭代与主网络参数同步一次,因此除了初始时相同,其余时候的目标网络
参数为上次同步,即第
次迭代的参数。
2.2.3 模型训练技巧
平衡探索与利用:这是强化学习方法中几乎无法避开的主题,探索和利用的
平衡牵涉到模型性能和训练效率,因此需要设置合适地训练策略来使得 agent 平
衡探索和利用。在本节的实现中,探索与利用的平衡主要通过训练时选择动作所
使用的 epsilon-greedy 策略来实现,更具体而言是由参数 epsilon 控制。本节方法
首先在前期一定步数内只进行完全随机动作选择来进行探索。此外还采用了指数
衰减式的动态
epsilon
,使得训练前期可以进行最大化的探索,而在后期则最大
化利用
agent
学习的策略。如下式,在第
步时的
定义为:
其中
为
epsilon
在起步时的最大值,
为衰减结束时的最小值,
为衰减过程控制系数,
越大,衰减过程越长。当 t 不断增大,
的值将不
断逼近
。
Gym 环境配置:Gym 提供了 wrapper 方式对环境进行修改配置,结合训练
效率方面的考虑,需要对环境的可观测状态进行和每幕结束时机进行修改。
在
Breakout-v5
环境中,可观测状态主要是一幅三通道彩色图像,形状为
(210,
160, 3)
,值为
[0,255]
的
8bit
无符号整数。由于彩色在此游戏中并没有特殊含义,
去除后不影响游戏进行,因此首先将将图像的三通道彩色通过
OpenCV
库处理为
单通道灰度图,形状为(210, 160)。进一步地,为了节省存储空间,加快训练速
度,将该灰度图压缩变形为
(84, 84)
的方形图像。此外,在
Breakout
游戏中,玩
家每次有
5
次机会,当小球第
5
次掉落时游戏结束,只能重置。为了使得
agent
学习到不让小球掉落的重要性,训练时将每次小球掉落作为一幕的结束,而本文
若无特殊说明,则一幕仍指以第
5
次小球掉落为结束的一局游戏。
2.3 Advantage Actor-Critic
本节的 Advantage Actor-Critic (A2C)方法和上节的 Double DQN 方法相似,也
具有两个网络,一个为 Critic 网络,一个为 Actor 网络。但不同之处为 Critic 网
络用于近似价值函数,而 Actor 网络用于建模策略分布。 在 Actor-Critic 方法中,
使用优势函数 (Advantage Function)作为 baseline 来评估执行某个动作相对于在
给定状态下的平均动作的优势,并提供策略梯度,即为 A2C 方法。Advantage
的引入使得 Agent 能够更准确地了解每个动作相对于平均水平的好坏,从而更有
剩余19页未读,继续阅读
资源评论
一条独龙
- 粉丝: 2058
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 企业数据分类分级操作指南
- 201-springboot养老院管理系统.zip
- 186-基于Spring Boot的电影售票系统.zip
- 156-ssm贝儿米幼儿教育管理系统-java毕业设计.zip
- VID20241125095115.mp4
- 158-ssm仓库智能仓储系统-java毕业设计.zip
- C语言实现空瓶换水问题算法解析与应用
- springboot002旅游网站.zip
- 162-java 工商局商家管理系统.zip
- 一款基于django的多用户问题管理和流程管理系统项目资源.zip
- 056-java精品项目-基于ssm的航空售票系统-带.zip
- 260-springboot基于图像识别与分类的中国蛇类识别系统.zip
- 140-java项目-ssm高校二手交易平台-带论文.zip
- 211-基于Java的社区生鲜团购系统.zip
- springboot023攀枝花市鲜花销售系统.zip
- 152-便民医疗服务小程序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功