基于Pytorch的强化学习(DQN)之Q-learning
目录1. 引言2. 数学推导3. 算法1. 引言我们上次已经介绍了Saras算法,现在我们来学习一下和Saras算法非常相似的一个算法:Q-learning算法。Q-learning是一种用于机器学习的强化学习技术。 Q-learning的目标是学习一种策略,告诉Agent在什么情况下要采取什么行动。 它不需要环境模型,可以处理随机转换和奖励的问题,而无需进行调整。对于任何有限马尔可夫决策过程(F
目录
1. 引言
我们上次已经介绍了Saras算法,现在我们来学习一下和Saras算法非常相似的一个算法:
Q-learning算法。
Q-learning是一种用于机器学习的强化学习技术。 Q-learning的目标是学习一种策略,告诉Agent在什么情况下要采取什么行动。 它不需要环境模型,可以处理随机转换和奖励的问题,而无需进行调整。
对于任何有限马尔可夫决策过程(FMDP),Q学习找到一种最优的策略,即从当前状态开始,它在任何和所有后续步骤中最大化总奖励的预期值。在给定无限探索时间和部分随机策略的情况下,Q学习可以为任何给定的 FMDP 确定最佳动作选择策略。“Q”命名函数返回用于提供强化的奖励,并且可以说代表在给定状态下采取的动作的“质量”。
Q-learning算法与Saras算法区别在于Q-learning是学习最优动作价值函数 ,而Saras是学习动作价值函数
。
2. 数学推导
我们上次推导出了动作价值函数的递推公式,现在我们选取最优策略
,由最优动作价值函数的定义,我们得到
对于含有随机变量的我们先将其写成最大化的形式,由优化目标我们有:
于是得到
那么
这个式子中含有随机变量,我们使用蒙特卡罗算法来近似这个期望:由
我们得到
于是我们将
作为TD target 使用TD 算法具体步骤如下:
- 观测到state transtition
- 计算TD target
- 计算TD error
- 更新最优动作价值函数
上面的 可以从Q表中获取,我们只需要从第
行搜索出最大的
即可
3. 算法
- 用神经网络
来近似
- 计算TD target:
- 计算TD error:
- 损失函数loss:
- 梯度下降:
伪码如下

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)