一、强化学习概念
强化学习(Reinforcement learning,RL)讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的 环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的 状态(state) 对 动作(action) 的 反应(reward), 来指导更好的动作,从而获得最大的 收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习。

在强化学习过程中,智能体跟环境一直在交互。智能体在环境里面获取到状态,智能体会利用这个状态输出一个动作,一个决策。然后这个决策会放到环境之中去,环境会根据智能体采取的决策,输出下一个状态以及当前的这个决策得到的奖励。智能体的目的就是为了尽可能多地从环境中获取奖励。

强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。
监督学习 是从外部监督者提供的带标注训练集中进行学习。 (任务驱动型)
非监督学习 是一个典型的寻找未标注数据中隐含结构的过程。 (数据驱动型)
强化学习 更偏重于智能体与环境的交互, 这带来了一个独有的挑战 ——“试错(exploration)”与“开发(exploitation)”之间的折中权衡,智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间。 (从错误中学习)
强化学习主要有以下几个特点:
试错学习:强化学习一般没有直接的指导信息,Agent 要以不断与 Environment 进行交互,通过试错的方式来获得最佳策略(Policy)。
延迟回报:强化学习的指导信息很少,而且往往是在事后(最后一个状态(State))才给出的。比如 围棋中只有到了最后才能知道胜负。
二、强化学习核心术语

环境(Environment) 是一个外部系统,智能体处于这个系统中,能够感知到这个系统并且能够基于感知到的状态做出一定的行动。
智能体(Agent) 是一个嵌入到环境中的系统,能够通过采取行动来改变环境的状态。
状态(State)/观察值(Observation):状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。
动作(Action):不同的环境允许不同种类的动作,在给定的环境中,有效动作的集合经常被称为动作空间(action space),包括离散动作空间(discrete action spaces)和连续动作空间(continuous action spaces),例如,走迷宫机器人如果只有东南西北这 4 种移动方式,则其为离散动作空间;如果机器人向 360◦ 中的任意角度都可以移动,则为连续动作空间。
奖励(Reward):是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了智能体在某一步采 取了某个策略的表现如何。
策略(Policy):策略是智能体用于决定下一步执行什么行动的规则。
1、确定性策略:在给定状态下,智能体总是执行同一个确定的动作。一般表示为:a=π(s)a=π(s)
2、随机策略:在给定状态下,智能体以一定概率分布选择动作。一般表示为:a∼π(⋅∣s)a∼π(⋅∣s),其中 $\pi(a \mid s)$ 表示在状态 s下选择动作 a 的概率。
状态转移(State Transition):状态转移描述了环境在智能体执行动作后如何变化的过程。状态转移可以是确定的,也可以是随机的,通常假设为随机过程,其随机性来源于环境的不确定性。状态转移可以用状态转移密度函数来表示:p(s′∣s,a)p(s′∣s,a)上式表示:在当前状态 $s$ 下执行动作 $a$ 后,环境转移到下一个状态 s' 的概率密度。
注意:环境的变化规律通常是未知的,这也是强化学习需要与环境交互学习的原因。
回报(Return):回报又称累积未来奖励(Cumulated Future Reward),一般用 U 表示,定义为:U=Rt+Rt+1+Rt+2+⋯+RTU=Rt+Rt+1+Rt+2+⋯+RT 。。 其中 R_t 表示第 t 时刻获得的即时奖励,T 为终止时刻。智能体的目标就是最大化回报 U。
折扣回报(Discounted Return):由于未来的奖励往往不如当前等值的奖励更有价值(即时间偏好),因此通常对未来的奖励赋予更低的权重。引入折扣率 $\gamma \in [0, 1]$,折扣回报定义为:Ut=Rt+γRt+1+γ2Rt+2+⋯=∑k=0∞γkRt+kUt=Rt+γRt+1+γ2Rt+2+⋯=k=0∑∞γkRt+k,,, 当 $\gamma = 0$ 时:只关心当前奖励(短视)。当 $\gamma = 1$ 时:平等看待所有未来奖励(远视)。
核心公式汇总
| 概念 | 符号 | 公式 | 说明 |
|------|------|------|------|
| 确定性策略 | a = π(s) | 状态到动作的映射 | 在状态 s 下确定执行动作 a |
| 随机策略 | a ∼ π(·\|s) | 动作概率分布 | 在状态 s 下以概率 π(a\|s) 选择动作 a |
| 回报 | U_t | U_t = Σ γᵏ R_{t+k} | 从时刻 t 开始的折扣累积奖励 |
价值函数(Value Function)
举例说明:在象棋游戏中,定义赢得游戏得 $+1$ 分,其他动作得 $0$ 分,状态是棋盘上棋子的位置。仅从 $0$ 和 $+1$ 这两个数值并不能知道智能体在游戏过程中到底下得怎么样,而通过价值函数则可以获得更多洞察。
价值函数使用期望对未来的收益进行预测:
一方面,不必等待未来的收益实际发生就可以获知当前状态的好坏;
另一方面,通过期望汇总了未来各种可能的收益情况。
使用价值函数可以很方便地评价不同策略的好坏。
状态价值函数(State-Value Function)
对于策略 $\pi$,状态价值函数 $V^\pi(s)$ 表示从状态 $s$ 开始,按照策略 $\pi$ 行动所获得的期望折扣回报:
Vπ(s)=Eπ[Ut∣St=s]=Eπ[∑k=0∞γkRt+k | St=s]Vπ(s)=Eπ[Ut∣St=s]=Eπ[k=0∑∞γkRt+kSt=s]
动作价值函数(Action-Value Function)
动作价值函数 $Q^\pi(s, a)$ 表示在状态 $s$ 下执行动作 $a$,之后遵循策略 $\pi$ 所获得的期望折扣回报:
Qπ(s,a)=Eπ[Ut∣St=s,At=a]=Eπ[∑k=0∞γkRt+k | St=s,At=a]Qπ(s,a)=Eπ[Ut∣St=s,At=a]=Eπ[k=0∑∞γkRt+kSt=s,At=a]
最优价值函数
最优状态价值函数:$V^*(s) = \max_\pi V^\pi(s)$
最优动作价值函数:$Q^*(s, a) = \max_\pi Q^\pi(s, a)$
三、强化学习算法分类

按照环境是否已知划分:免模型学习(Model-Free) vs 有模型学习(Model-Based)
Model-free就是不去学习和理解环境,环境给出什么信息就是什么信息,常见的方法有policy optimization和Q-learning。
Model-Based是去学习和理解环境,学会用一个模型来模拟环境,通过模拟的环境来得到反馈。Model-Based相当于比Model-Free多了模拟环境这个环节,通过模拟环境预判接下来会发生的所有情况,然后选择最佳的情况。
一般情况下,环境都是不可知的,所以这里主要研究无模型问题。
按照学习方式划分:在线策略(On-Policy) vs 离线策略(Off-Policy)
On-Policy是指agent必须本人在场, 并且一定是本人边玩边学习。典型的算法为Sarsa。
Off-Policy是指agent可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习,也没有必要是边玩边学习,玩和学习的时间可以不同步。典型的方法是Q-learning,以及Deep-Q-Network。
按照学习目标划
Policy-Based的方法直接输出下一步动作的概率,根据概率来选取动作。但不一定概率最高就会选择该动作,还是会从整体进行考虑。适用于非连续和连续的动作。常见的方法有Policy gradients。
Value-Based的方法输出的是动作的价值,选择价值最高的动作。适用于非连续的动作。常见的方法有Q-learning、Deep Q Network和Sarsa。
更为厉害的方法是二者的结合:Actor-Critic,Actor根据概率做出动作,Critic根据动作给出价值,从而加速学习过程,常见的有A2C,A3C,DDPG等。
经典算法:Q-learning,Sarsa,DQN,Policy Gradient,A3C,DDPG,PPO

四、强化学习经典算法
下面我们挑选一些有代表性的算法进行讲解:
基于表格、没有神经网络参与的Q-Learning算法
基于价值(Value-Based)的Deep Q Network(DQN)算法
基于策略(Policy-Based)的Policy Gradient(PG)算法
结合了Value-Based和Policy-Based的Actor Critic算法。
五、强化学习应用场景
强化学习核心算法速查表
按应用场景分类(快速选型)
按选择优先级排序(新手建议)
第1步(入门首选)
↓
Q-learning 或 DQN(理解基础概念)
↓
第2步(主流通用)
↓
PPO(最推荐,平衡性最好)
↓
第3步(连续动作)
↓
SAC 或 TD3(机器人/自动驾驶)
↓
第4步(特殊场景)
↓
AlphaZero(棋类)/ MADDPG(多智能体)/ DPO(LLM)参考文献
知乎:https://zhuanlan.zhihu.com/p/466455380
蘑菇书RL:https://datawhalechina.github.io/easy-rl/#/
菜鸟教程:https://www.runoob.com/ml/ml-basic-framework-of-reinforcement-learning.html