大家好,今天和大家分享一个深度强化学习算法 DQN 的改进版 Double DQN,并基于 OpenAI 的 gym 环境库完成一个小游戏,完整代码可以从我的 GitHub 中获得:
https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Model
1. 算法原理
1.1 DQN 原理回顾
DQN 算法的原理是指导机器人不断与环境交互,理解最佳的行为方式,最终学习到最优的行为策略,机器人与环境的交互过程如下图所示。
机器人与环境的交互过程是机器人在 时刻,采取动作
并作用于环境,然后环境从
时刻状态
转变到
时刻状态
,同时奖励函数对
进行评价得到奖励值
。机器人根据
不断优化行为轨迹,最终学习到最优的行为策略。
整个强化学习过程可简化为马尔可夫决策过程(MDP)。其中所有状态均具备马尔可夫性。MDP 可用一个五元组 表示,各元素意义如下:
(1)S 是有限状态集合,即机器人在环境中探索到的所有可能状态。 表示机器人在 t 时刻的状态。
(2)A 是有限动作集合,即智能体根据 采取的所有可能动作集合。
表示机器人在t 时刻状态采取的行为
(3)P 是状态转移概率,定义如下:
(4)R 是奖励函数,即机器人基于 采取
后获得的期望奖励,定义如下:
(5)γ 代表折扣因子,值域 [0,1],即未来的期望奖励在当前时刻的价值比例。
MDP 中,价值函数包括状态价值函数和动作价值函数。动作价值函数(Q 函数)表示在策略 的指导下,根据状态
,采取行为
所获得的期望回报。策略
表示状态到行为的映射,相当于机器人的决策策略,并根据不同的状态选择不同的行为,即
。机器人在策略
的指导下,<