深度强化学习基础-强化学习概论

285 阅读10分钟

什么是强化学习

强化学习(reinforcement learning,RL) 讨论的问题是智能体(agent)怎么在复杂、不确定的环境(环境)中最大化它能获得的奖励。如图1.1所示,强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在安装程序获取某个状态后,每个动作(action)输出一个动作,这个动作也就是决策(decision)。然后这个动作会在安装程序被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作感到的奖励。智能体的目的就是不要多地从安装程序获取奖励[1]。

image.png

强化学习的应用

1. 游戏

  • AlphaGo: 谷歌DeepMind开发的AlphaGo利用强化学习击败了围棋世界冠军李世石[2-3]。
  • Atari Games: Atari Games是指由Atari公司开发的一系列经典街机游戏.在强化学习研究中,Atari游戏常被用作基准测试平台。DeepMind在其突破性的论文中展示了如何使用深度Q网络(DQN)在多个Atari游戏中达到甚至超越人类水平的表现。这一工作展示了深度强化学习在处理高维输入数据(如图像)时的强大能力,并成为强化学习领域的重要里程碑。

image.png

2. 机器人

  • 机器人控制: 强化学习被用于训练机器人进行复杂的任务,如抓取、行走、飞行等。通过试错学习,机器人可以适应动态变化的环境[2]例如:NICO 机器人学习抓取任务的过程。该任务的目标是将桌面上的物体抓取到指定的位置,机器人通过每次输出相应关节的参数来活动手臂,然后通过摄像头观测当前的状态,最后通过人为设置的奖励(例如接近目标就给一个奖励)来学习到正确的抓取策略。。
  • 自主导航: 机器人可以学习如何在复杂的环境中导航,避免障碍,找到最优路径。

image.png

3. 自动驾驶

  • 路径规划: 强化学习用于确定从起点到终点的最优路径,考虑路况、交通信号和动态变化的环境。例如,在仓库物流中,自动导引车(AGV)通过强化学习优化搬运路径,提高效率。在动态环境中,实时调整路径以避开突然出现的障碍物,优化行驶速度和转向角度。
  • 行为决策: 复杂交通场景中(如城市道路、高速公路),车辆通过强化学习做出决策,包括变道、超车、避让行人等。例如,Waymo的自动驾驶车队使用强化学习优化决策算法,提高安全性和驾驶效率。在共享道路环境中,自主车辆学习与人类驾驶员和行人互动,通过预测他们的行为来调整自身行动。

4. 金融

  • 交易策略: 使用强化学习开发智能交易策略,根据市场情况调整投资组合,实现高收益。在股票交易中,我们的目标是通过买卖股票来最大化我们的资产。在这个过程中,我们需要不断地观测当前的股票价格,然后根据当前的价格来决定买入或卖出股票的数量,最后通过股票价格的变化来更新我们的资产。在这个过程中,我们的资产会随着股票价格的变化而变化,这就是奖励或惩罚,每次的买卖就是决策[3]。
  • 风险管理: 优化金融产品的风险管理,动态调整策略以应对市场波动。

强化学习研究领域

1 多智能体强化学习

多智能体强化学习研究的是多个智能体在共享环境中相互作用和学习的过程。每个智能体需要学习如何在与其他智能体竞争或合作的情况下优化其行为策略。

2 从数据中学习

从数据中学习是指智能体通过观察专家的示范数据来学习最优策略,而不是完全依赖于环境中的试错过程。

3 探索策略

探索策略研究的是智能体如何在未知环境中高效地探索,以便快速收集有用的信息,优化其行为策略。

4 实时环境

实时环境中的强化学习要求智能体能够在动态变化的环境中实时学习和决策。

5 多任务强化学习

多任务强化学习研究的是智能体在同时学习和执行多个任务时的有效性和效率。

序列决策

在一个强化学习环境里面,智能体的目的就是选取一系列的动作来最大化奖励,所以这些选取的动作 必须有长期的影响。但在这个过程里面,智能体的奖励其实是被延迟了的,就是我们现在选取的某一步动作,可能要等到很久后才知道这一步到底产生了什么样的影响。

image.png 在与环境的交互过程中,智能体会获得很多观测。针对每一个观测,智能体会采取一个动作,也会得到一个奖励。所以历史是观测、动作、奖励的序列:

𝐻𝑡=𝑜1,𝑎1,𝑟1,,𝑜𝑡,𝑎𝑡,𝑟𝑡𝐻_𝑡=𝑜_1,𝑎_1,𝑟_1,…,𝑜_𝑡,𝑎_𝑡,𝑟_𝑡

智能体在采取当前动作的时候会依赖于它之前得到的历史,所以我们可以把整个游戏的状态看成关于这个历史的函数:

𝑆𝑡=𝑓(𝐻𝑡)𝑆_𝑡=𝑓(𝐻_𝑡)

一些关键概念

强化学习(reinforcement learning,RL):智能体可以在与复杂且不确定的环境进行交互时,尝试使所获得的奖励最大化的算法。

动作(action): 环境接收到的智能体基于当前状态的输出。

状态(state):智能体从环境中获取的状态。

奖励(reward):智能体从环境中获取的反馈信号,这个信号指定了智能体在某一步采取了某个策略以后是否得到奖励,以及奖励的大小。

探索(exploration):在当前的情况下,继续尝试新的动作。其有可能得到更高的奖励,也有可能一无所有。

利用(exploitation):在当前的情况下,继续尝试已知的可以获得最大奖励的过程,即选择重复执行当前动作。

深度强化学习(deep reinforcement learning):不需要手动设计特征,仅需要输入状态就可以让系统直接输出动作的一个端到端(end-to-end)的强化学习方法。通常使用神经网络来拟合价值函数(value function)或者策略网络(policy network)。

全部可观测(full observability)、完全可观测(fully observed)和部分可观测(partially observed):当智能体的状态与环境的状态等价时,我们就称这个环境是全部可观测的;当智能体能够观察到环境的所有状态时,我们称这个环境是完全可观测的;一般智能体不能观察到环境的所有状态时,我们称这个环境是部分可观测的。

部分可观测马尔可夫决策过程(partially observable Markov decision process,POMDP):即马尔可夫决策过程的泛化。部分可观测马尔可夫决策过程依然具有马尔可夫性质,但是其假设智能体无法感知环境的状态,只能知道部分观测值。

动作空间(action space)、离散动作空间(discrete action space)和连续动作空间(continuous action space):在给定的环境中,有效动作的集合被称为动作空间,智能体的动作数量有限的动作空间称为离散动作空间,反之,则被称为连续动作空间。

基于策略的(policy-based):智能体会制定一套动作策略,即确定在给定状态下需要采取何种动作,并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。

基于价值的(valued-based):智能体不需要制定显式的策略,它维护一个价值表格或者价值函数,并通过这个价值表格或价值函数来执行使得价值最大化的动作。

有模型(model-based)结构:智能体通过学习状态的转移来进行决策。

免模型(model-free)结构:智能体没有直接估计状态的转移,也没有得到环境的具体转移变量,它通过学习价值函数或者策略网络进行决策。

根据强化学习智能体的不同,我们可以将其分为哪几类?

(1)基于价值的智能体。显式学习的是价值函数,隐式地学习智能体的策略。因为这个策略是从学到的价值函数里面推算出来的。

(2)基于策略的智能体。其直接学习策略,即直接给智能体一个状态,它就会输出对应动作的概率。当然在基于策略的智能体里面并没有去学习智能体的价值函数。

(3)另外还有一种智能体,它把以上两者结合。把基于价值和基于策略的智能体结合起来就有了演员-评论员智能体。这一类智能体通过学习策略函数和价值函数以及两者的交互得到更佳的状态。

基于策略迭代和基于价值迭代的强化学习方法有什么区别?

(1)基于策略迭代的强化学习方法,智能体会制定一套动作策略,即确定在给定状态下需要采取何种动作,并根据该策略进行操作。强化学习算法直接对策略进行优化,使得制定的策略能够获得最大的奖励;基于价值迭代的强化学习方法,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。

(2)基于价值迭代的方法只能应用在离散的环境下,例如围棋或某些游戏领域,对于行为集合规模庞大或是动作连续的场景,如机器人控制领域,其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。

(3)基于价值迭代的强化学习算法有 Q-learning、Sarsa 等,基于策略迭代的强化学习算法有策略梯度算法等。

(4)此外,演员-评论员算法同时使用策略和价值评估来做出决策。其中,智能体会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,从而取得更好的效果。

有模型学习和免模型学习有什么区别?

针对是否需要对真实环境建模,强化学习可以分为有模型学习和免模型学习。有模型学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;免模型学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。总体来说,有模型学习相比免模型学习仅仅多出一个步骤,即对真实环境进行建模。免模型学习通常属于数据驱动型方法,需要大量的采样来估计状态、动作及奖励函数,从而优化动作策略。免模型学习的泛化性要优于有模型学习,原因是有模型学习需要对真实环境进行建模,并且虚拟世界与真实环境之间可能还有差异,这限制了有模型学习算法的泛化性。

引用参考

[1] datawhalechina.github.io/joyrl-book/…

[2] datawhalechina.github.io/easy-rl/#/

[3] speech.ee.ntu.edu.tw/~tlkagk/cou…