Q-Learning 原理干货讲解

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

强化学习


本文是强化学习和Q-Learning算法的概念及原理
项目实战案例可查看下一篇文章:Q-Learning 单路径吃宝箱问题–棋盘格吃宝箱问题–拓扑节点较优路径问题

一. 强化学习概述


1.1 什么是强化学习


基于环境的反馈而行动,通过不断与环境的交互、试错,最终完成特定目的或者使得行动收益最大化。强化学习不需要训练数据,但是它需要每一步行动环境给予的反馈,是奖励还是惩罚,反馈可以量化,基于反馈不断调整训练对象的行为。

1.2 强化学习的特点


  • 试错学习:强化学习需要训练对象不停地和环境进行交互,通过试错的方式去总结出每一步的最佳行为决策,整个过程没有任何的指导,只有反馈。所有的学习基于环境反馈,训练对象去调整自己的行为决策。
  • 延迟反馈:强化学习训练过程中,训练对象的“试错”行为获得环境的反馈,有时候可能需要等到整个训练结束以后才会得到一个反馈,比如Game Over或者是Win。
  • 时间是强化学习的一个重要因素:强化学习的一系列环境状态的变化和环境反馈等都是和时间强挂钩,整个强化学习的训练过程是一个随着时间变化,而状态&反馈也在不停变化。
  • 当前的行为影响后续接收到的数据:强化学习当前状态以及采取的行动,将会影响下一步接收到的状态,数据与数据之间存在一定的关联性。

1.3 强化学习术语


简单解释强化学习来说,即:智能体在于环境的交互过程中为了达到目标而进行的学习过程

  • Agent(智能体):强化学习训练的主体就是Agent

  • Environment(环境):强化学习所处的环境

  • goal(目标):强化学习要实现的目标

进一步理解,智能体在当前状态下采取行动可以获得反馈,最终需要达到目标

  • State(状态):当前环境和智能体所处的状态

  • Action(行动):基于当前的状态,智能体可以采取什么行动

  • Reward(奖励,也可以理解为反馈):智能体采取行动后获得的奖励或惩罚
    Q-Learning 原理干货讲解

二. 强化学习决策及算法

2.1 马尔科夫决策过程


强化学习的整个训练过程都基于一个前提,我们认为整个过程都是符合马尔可夫决策过程(Markov Decision Process,MDP)

核心思想

Q-Learning 原理干货讲解

马尔可夫决策过程的核心思想是:

下一步的State只和当前的状态State以及当前状态将要采取的Action有关,如上图所示State3只和State2以及Action2有关,和State1以及Action1无关

2.2 价值函数


2.2.1 Value Based 算法

介绍

价值函数分为两种,一种是V状态价值函数,一种是Q状态行动函数。Q值评估的是动作的价值,代表agent做了这个动作之后一直到最终状态奖励总和的期望值;V值评估的是状态的价值,代表agent在这个状态下一直到最终状态的奖励总和的期望。价值越高,表示我从当前状态最终状态能获得的平均奖励将会越高,因此我选择价值高的动作就可以了

2.2.2 Policy Based 算法

Policy决定了某个state下应该选取哪一个action。策略Policy为每一个动作分配概率,例如:π(s1|a1) = 0.3,表示在状态s1下选择动作a1的概率是0.3,而该策略只依赖于当前的状态,不依赖于以前时间的状态,因此整个过程也是一个马尔可夫决策过程

三. Q-learning

3.1 算法讲解


Q-learning 算法

Q-learning是一种基于动作函数(即Q函数)的强化学习方法,即通过判断每一步 actionvalue来进行下一步的动作,具体步骤如下:

  1. 建立Q表,行是每种状态,列是每种状态的行为,值是某状态下某行为估计获得的奖励
  2. 每次进行状态转移时有e_greedy概率选当前状态最优方法,有 1- e_greedy选随机方法
  3. 选完之后就更新当前状态下对应所选行为的Q值(估计值)

Q函数更新方法

在讲解函数的更新方法前,Q函数中有两个操作因素需要重点关注

  • α:称之为学习率,决定了在更新Q值时,当前状态和动作对于新估计值的贡献程度。值为0意味着代理不会学到任何东西,只依赖于初始的Q值或之前学习到的知识;值为1意味着意味着完全采用新观察到的奖励或更新的目标值,忽略之前学习到的估计值。
  • γ:称之为折扣因子或者衰减率,它定义了未来奖励的重要性。值为0意味着只考虑短期奖励,其中1的值更重视长期奖励。

在实际算法中,Q函数的具体的更新函数为

实际更新Q值 = 当前Q值 + 学习率 *(立即回报 + 预测后继状态的最大Q值 - 当前Q值)

定义公式化更新函数

Q ( S t , A t ) ← Q ( S t , A t ) + α [ R + γ ∗ M a x Q ( S t + 1 , a t + 1 ) − Q ( S t , A t ) ] Q(S_t,A_t)←Q(S_t,A_t)+α[R+γ*MaxQ(S_{t+1},a_{t+1})−Q(S_t,A_t)] Q(St,At)Q(St,At)+α[R+γMaxQ(St+1,at+1)Q(St,At)]

Q-Learning 原理干货讲解

实现步骤

在实际算法中,Q-learning算法的实现步骤如下:

Step 1 :给定折扣因子 γ 、学习率 α、奖励矩阵 Q
Step 2 :令状态行动 Q 函数初始化为 0
Step 3 :开始迭代
	3.1 随机选择一个状态 s
	3.2 若从该状态无法达到目标,则执行以下几步
		(1)从当前状态所有可能的行为中选取一个行为 a
		(2)从选定的行为 a ,得到下一个状态 r
		(3)按照 Q 函数的更新方法进行值更行
		(4)设置当前状态 s 为 r

四. 参考文献


本次学习参考了部分文章,较原始代码进行了部分改良或全部改良,添加了大量注释方便初学者学习,原参考文章链接:

强化学习系列(一):基本原理和概念

机器学习算法(三十):强化学习(Reinforcement Learning)文章来源地址https://www.toymoban.com/news/detail-512374.html

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

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

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

相关文章

  • 【强化学习】Q-Learning算法详解

    1 Q-Learning算法简介 1.1 行为准则 我们做很多事情都有自己的行为准则,比如小时候爸妈常说:不写完作业就不准看电视。所以我们在写作业这种状态下,写的好的行为就是继续写作业,知道写完他,我们还可以得到奖励。不好的行为就是没写完就跑去看电视了,被爸妈发现,

    2024年01月16日
    浏览(70)
  • 【强化学习】——Q-learning算法为例入门Pytorch强化学习

    🤵‍♂️ 个人主页:@Lingxw_w的个人主页 ✍🏻作者简介:计算机研究生在读,研究方向复杂网络和数据挖掘,阿里云专家博主,华为云云享专家,CSDN专家博主、人工智能领域优质创作者,安徽省优秀毕业生 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话

    2024年02月10日
    浏览(72)
  • 【强化学习】常用算法之一 “Q-learning”

      作者主页: 爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主 爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域. https://blog.csdn.net/Code_and516?type=blog 个人简介:打工人。 持续分

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

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

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

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

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

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

    2024年02月04日
    浏览(61)
  • 强化学习路径优化:基于Q-learning算法的机器人路径优化(MATLAB)

    Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的结果,因此在Q-learning算法中更新Q表就是机器人与环境的交互过程

    2024年02月14日
    浏览(59)
  • 强化学习基础篇[2]:SARSA、Q-learning算法简介、应用举例、优缺点分析

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

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

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

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

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

    2024年02月02日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包