Q-learning算法介绍

这篇具有很好参考价值的文章主要介绍了Q-learning算法介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Q-learning基本思想

Q-learning是一种value-based算法,它学习一个最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a),那么能够获得最优策略 π ∗ ( s ) = arg ⁡ max ⁡ a ∈ A Q ∗ ( s , a ) , s ∈ S \pi^*(s)=\arg\max\limits_{a\in A}{Q^*(s,a)}, s\in S π(s)=argaAmaxQ(s,a),sS

Q-learning算法的基本思想是,鼓励最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)逐渐接近TD Target y t y_t yt,最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)全部基于预测,而TD Target y t y_t yt部分基于观测,比最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)更靠谱些

下面推导TD Target y t y_t yt
qlearning算法,强化学习,人工智能,算法,人工智能,强化学习
qlearning算法,强化学习,人工智能,算法,人工智能,强化学习
qlearning算法,强化学习,人工智能,算法,人工智能,强化学习
基于TD Target y t y_t yt学习最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)有两种方法,一种是用表格学,也就是Q-Table,另一种是神经网络学,也就是DQN用到的方法。

接下来,分别介绍这两种方法。

Q-Table

Q-Table学习最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)的基本思想是,建立一张Q表,更新Q值的方法是
Q ∗ ( s , a ) ⟵ Q ∗ ( s , a ) − α ⋅ ( Q ∗ ( s , a ) − y t ) Q^*(s,a) \longleftarrow Q^*(s,a)-\alpha\cdot(Q^*(s,a)-y_t) Q(s,a)Q(s,a)α(Q(s,a)yt)
y t y_t yt代入,进一步得到
Q ∗ ( s , a ) ⟵ Q ∗ ( s , a ) + α ⋅ ( r t + γ max ⁡ a ∈ A Q ∗ ( s , a ) − Q ∗ ( s , a ) ) Q^*(s,a) \longleftarrow Q^*(s,a)+\alpha\cdot(r_t+\gamma \max\limits_{a\in A}{Q^*(s,a)}-Q^*(s,a)) Q(s,a)Q(s,a)+α(rt+γaAmaxQ(s,a)Q(s,a))

其中 Q ∗ ( s , a ) − y t Q^*(s,a)-y_t Q(s,a)yt记作 δ t \delta_t δt,是TD error,这里没有将全部的TD error用于更新 Q ∗ ( s , a ) Q^*(s,a) Q(s,a),而是乘以了一个系数 α \alpha α,有点学习率的意味,是为了避免陷入局部最优解

更新式子中, r t + γ max ⁡ a ∈ A Q ∗ ( s , a ) r_t+\gamma \max\limits_{a\in A}{Q^*(s,a)} rt+γaAmaxQ(s,a)表示 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)现实, Q ∗ ( s , a ) Q^*(s,a) Q(s,a)表示 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)估计,这里很奇妙的地方是, Q ∗ ( s , a ) Q^*(s,a) Q(s,a)现实里边也包含了一个对下一步的最大估计,将对下一步衰减的最大估计和当前所获得的奖励当成这一步的现实,是不是非常迷人

DQN中的Q-learning

DQN的基本思想是,学习一个神经网络 Q ∗ ( s , a ; w ) Q^*(s,a; \textbf{w}) Q(s,a;w)近似最优动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a),示意图如下,神经网络的输入是状态 s s s,输出是对动作状态的打分
qlearning算法,强化学习,人工智能,算法,人工智能,强化学习
更新网络参数 w \textbf{w} w的方法如下:
qlearning算法,强化学习,人工智能,算法,人工智能,强化学习

Q&A

(1)on-policy和off-policy
Q-learning算法是一种off-policy,它产生动作的策略(动作策略)和评估改进的策略(目标策略)不是同一个策略
qlearning算法,强化学习,人工智能,算法,人工智能,强化学习

(2)TD/蒙特卡洛/动态规划
Q-learning采用了时间差分算法(Temporal-Difference,TD),它的基本思想是,在更新当前动作价值函数时,用到了下一个状态的动作价值函数

我关于TD/蒙特卡洛/动态规划的理解并不深刻,可以看看下面两篇参考资料:
https://zhuanlan.zhihu.com/p/25913410
https://www.jianshu.com/p/0bfeb09b7d5f

(3)有模型/无模型学习方法
Q-learning算法是一种无模型(model-free)学习方法,它无需提前获取完备的模型,主要是无法获取状态转移概率、奖励函数模型等,这更加符合现实应用,那么智能体不断与环境交互一定先验信息后再去探索学习

后记

强化学习涉及超多概念名词,它们很相似容易混淆,例如动作价值函数/策略价值函数、蒙特卡洛/动态规划、策略评估、on-policy/off-policy等等,让初学者眼花缭乱,我的建议是不要被名字表面蒙蔽,多刷几遍教学视频,脑子对以上名词留下印象而不必强求区分概念,然后动手写伪代码、画算法框图、写代码操作一种算法例子,例如Q-learning,动手实践后对区分概念印象更深。

推荐的教学视频:
(1)王树森讲解强化学习教程,它的特点是带有一点点数学理论推导,适合进阶
https://www.bilibili.com/video/BV12o4y197US/?p=9&vd_source=1565223f5f03f44f5674538ab582448c
(2)莫烦Python讲解的强化学习教程,很经典的人工智能教程了,有点科普,适合初学者了解强化学习的思想和概念
(3)李宏毅讲解的强化学习教程,很详细的数学理论,适合预期深入探索强化学习原理的学习者
(4)Sutton的强化学习著作,看过这部经典之后会觉得前面的教程有点快餐化的味道

我的建议是从适合初学者教程开始了解强化学习基本概念,培养一些兴趣之后逐步深入,一点点慢慢积累,遇到不理解的概念不要怕,间隔时间的反复看。

我在最初了解强化学习的时候就陷入了细节困境,琢磨不清楚怎么定义动作/价值/策略/状态/奖励,也困惑怎样设置初始值,然而这些不是强化学习的精髓和算法核心,我们可以默认理解了概念,看看后面怎么使用它们,初始化问题可以默认随机设置,看看后面有没有更好的设置方法,而把更多的注意力放在强化学习的算法迭代、设计思路上。

欢迎小伙伴们交流学习体会哟,欢迎小伙伴们批评指正、点赞、收藏、转发呐文章来源地址https://www.toymoban.com/news/detail-744108.html

到了这里,关于Q-learning算法介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 强化学习基础篇[2]:SARSA、Q-learning算法简介、应用举例、优缺点分析

    【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现 专栏详细介绍 :【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项

    2024年02月07日
    浏览(29)
  • 强化学习Q-learning入门

    本文为最近学习的强化学习 Q-learning 的学习笔记,主要用于总结和日常记录,本文主要讲解相应的必备入门知识。 闲话少说,我们直接开始吧! 我们小时候都经历过以下情形:我们做错了某年事,受到了惩罚,我们学习后,在遇到类似的状况,我们将不会再犯错。同样,许

    2024年02月08日
    浏览(41)
  • 强化学习Q-learning实践

    前篇文章介绍了强化学习系统红的基本概念和重要组成部分,并解释了 Q-learning 算法相关的理论知识。本文的目标是在 Python3 中实现该算法,并将其应用于实际的实验中。 闲话少说,我们直接开始吧! 为了使本文具有实际具体的意义,特意选择了一个简单而基本的环境,可

    2024年02月08日
    浏览(49)
  • 强化学习 - Q-learning(Q学习)

    强化学习中的 Q-learning (Q学习)是一种用于 学习在未知环境中做出决策的方法 。它是基于值函数的方法,通过学习一个值函数 Q,该函数表示在给定状态和动作下,期望的累积奖励。 以下是一个简单的 Q-learning 的实现教程,使用 Python 进行演示。这里我们考虑一个简单的驾

    2024年01月24日
    浏览(43)
  • 【强化学习】Q-learning训练AI走迷宫

    Q-learning? 最简单 的强化学习算法! 不需要 深度学习网络的算法! 带有概率性的 穷举 特性!(甚至还有一点点动态规划的感觉) Q-learning是一种基于强化学习的算法,用于解决 Markov决策过程 (MDP)中的问题。 这类问题我们理解为一种可以用 有限状态机 表示的问题。它具

    2024年01月22日
    浏览(47)
  • 【机器学习】强化学习(六)-DQN(Deep Q-Learning)训练月球着陆器示例

    概述 Deep Q-Learning(深度 Q 学习)是一种强化学习算法,用于解决决策问题,其中代理(agent)通过学习在不同环境中采取行动来最大化累积奖励。Lunar Lander 是一个经典的强化学习问题,其中代理的任务是控制一个着陆舱在月球表面着陆,最小化着陆过程中的燃料消耗。 以下

    2024年01月25日
    浏览(48)
  • Pytorch深度强化学习案例:基于Q-Learning的机器人走迷宫

    本专栏重点介绍强化学习技术的数学原理,并且 采用Pytorch框架对常见的强化学习算法、案例进行实现 ,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。 🚀详情:

    2024年02月04日
    浏览(45)
  • 强化学习应用(二):基于Q-learning的物流配送路径规划研究(提供Python代码)

    Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是使用一个Q值函数来估计每个状态动作对的价值。Q值表示在特定状态下采取某个动作所能获得

    2024年01月21日
    浏览(49)
  • 强化学习应用(四):基于Q-learning的无人机物流路径规划研究(提供Python代码)

    Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的表格来学习最优策略。Q值表示在给定状态下采取某个动作所能

    2024年01月17日
    浏览(41)
  • 强化学习应用(六):基于Q-learning的无人机物流路径规划研究(提供Python代码)

    Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的表格来学习最优策略。Q值表示在给定状态下采取某个动作所能

    2024年02月22日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包