深度强化学习 Intro

PPO 里面的 GAE 是怎么算的?代表了什么?

✏️极大似然估计

https://www.bilibili.com/video/BV1iz421h7gb/?spm_id_from=333.337.search-card.all.click&vd_source=bd8e3cdb5bbacad892e151f2df59cf05

https://www.bilibili.com/video/BV1TQ4y1v7H5/?spm_id_from=333.337.top_right_bar_window_custom_collection.content.click&vd_source=bd8e3cdb5bbacad892e151f2df59cf05

目前,在可靠性(stability)和采样效率(sample efficiency)这两个关键因素上,PPO 和 SAC 是表现最优的策略学习算法

术语速查

概述

https://rail.eecs.berkeley.edu/deeprlcourse/deeprlcourse/static/slides/lec-1.pdf

Deep RL = Classical RL + Advanced optimization algorithm

强化学习 v.s. 监督学习

特征监督学习强化学习
数据特性i.i.d(独立同分布)非i.i.d(基于历史经验)
标注信息每个样本都有确切标签只有成功/失败的反馈,ground truth is unknown
学习过程静态数据集学习动态交互学习
反馈及时性即时反馈延迟反馈
数据分布固定分布随策略变化而变化

RL 不只是能做游戏,机器人,还可以用来控制交通流量(MIT 教授),大语言模型,图像生成模型

核心思想:通过不断与环境交互,从经验中学习做出最优决策

方向:Learing-based control, which is a big open problem

奖励从哪里来?游戏(得分 easy);倒水(?difficult)

人类学习的特殊性

如何去构建一个智能机器?

Leaning 是智能的基石,人理解世界的本质其实就是学习的过程

挑战

  1. 缺少同时使用数据(深度)和优化(强化)的方法;
  1. 人学得很快,而 deep RL 方法学得慢;
  1. 人擅长复用知识,而 deep RL 很难在不同任务之间迁移;
  1. 不清楚奖励函数应该是什么;
  1. 不清楚预测的作用

MDPs 马尔可夫决策过程

马尔可夫链: M={S,T}\mathcal{M} = \{\mathcal{S}, \mathcal{T}\}

S\mathcal{S} - state space

T\mathcal{T} - transition operator, p(st+1st)p(s_{t+1}|s_{t})

马尔可夫过程:M={S,A,T,r}\mathcal{M} = \{\mathcal{S}, \mathcal{A}, \mathcal{T}, r\}

S\mathcal{S} - state space

A\mathcal{A} - action space

T\mathcal{T} - transition operator, p(st+1st)p(s_{t+1}|s_{t})

rr - reward function

部分可观察的马尔可夫过程:M={S,A,O,T,E,r}\mathcal{M} = \{\mathcal{S}, \mathcal{A}, \mathcal{O}, \mathcal{T}, \mathcal{E}, r\}

强化学习定义

通过从与环境交互过程中进行学习

each step, agent obtains an observation, takes an action, and obtains a reward

强化学习的框架主要由以下几个核心组成:

这四个元素共同构成了马尔可夫决策过程(Markov Decision Process, MDP)最核心的数学模型。

注:MDPs 很好的一个性质:memoryless property 与历史无关

强化学习的目标是在给定的马尔可夫决策过程中找到最优策略。这个策略是从状态到动作的映射,旨在最大化累积回报,其数学表达式如下:

vπ(s)=E[GtSt=s]v_\pi(s) = \mathbb{E}[G_t|S_t=s]

强化学习中的随机性

用期望把随机性积掉

强化学习目标

策略优化的目标是最大化期望回报

其中:

πθ\pi_{\theta} 中的 θ\theta 表示我们需要学习的策略中的参数

p(st+1,at+1st,at)=p(st+1st,at)πθ(at+1st+1)p(s_{t+1}, a_{t+1}|s_t,a_t) = p(s_{t+1}|s_t,a_t) \cdot \pi_{\theta}(a_{t+1}|s_{t+1})

状态 1 转换到状态 2 = 状态转移算子 * 策略

目标:某条轨迹分布下的奖励总和

当时间趋于无穷时,奖励总和趋于无穷,无法优化。解决方法:除以 T{T}  或者使用折扣因子

计算整个轨迹的奖励函数,然后使用梯度上升更新策略参数

通过神经网络来学习策略,然后使用反向传播来更新策略参数

期望

强化学习的目标:优化一个期望函数

Q 函数:在给定状态 ss 下采取特定动作 aa 后,所能够获得的长期回报(或累积奖励)的期望值

V 函数:在给定状态 ss 下的总体价值,即按照策略执行后续动作所能获得的长期回报的期望值

我们可以通过 Q 函数来改进策略:

  1. 直接选最优动作:如果我们知道策略 π\pi 的 Q 函数 Qπ(s,a)Q^\pi(s, a),就可以在每个状态 ss 下选择收益最高的动作 aa。假设 π(as)=1\pi'(a|s) = 1,若 a=argmaxaQπ(s,a)a = \arg\max_a Q^\pi(s, a) ,那么可以知道新策略的效果至少与原策略一样好,甚至更优。(为什么会更优?)
  1. 调整概率倾向于好动作:如果直接选最优动作不现实,可以通过增加收益高于平均值的动作的概率来改进策略。当 Qπ(s,a)>Vπ(s)Q^\pi(s, a) > V^\pi(s) 时,说明该动作比平均收益高,我们就提高其选择概率,从而让策略逐渐倾向于选择“好动作”。
greedy 方法:每次都选择最大 value 对应的 action,即 a=argmaxaQπ(s,a)a = \arg\max_a Q^\pi(s, a)

Q / V function

Q-function 叫做动作价值函数;V-function 叫做状态价值函数

如何控制 agent

学到 policy π(as)\pi(a|s)Q(s,a)Q^*(s,a) 两者之一即可

强化学习算法分类

算法评估维度

采样效率:需要多少样本来获得一个表现良好的策略

稳定性和易用性:是否震荡?能否收敛?

观测可用性:全观测还是部分观测

On-Policy v.s. Off-Policy

On-Policy 特点:

  1. 不使用历史数据,在采样效率上表现较差;
  1. 直接优化策略表现(即以采样效率换取可靠性);
  1. 之后提出的 On-Policy 算法都是在不断弥补采样效率的不足

Policy Gradient → TRPO → PPO

Off-Policy 特点:

  1. 典型算法:Q-Learning 和 DDPG → TD3 → SAC
  1. 通过对 Bellman 方程的优化,实现对历史数据的有效利用;
  1. 问题:满足 Bellman 方程并不能保证一定有很好的策略性能,不稳定(从经验上讲,满足 Bellman 方程能得到不错的性能、很好的效率)。TD3 和 SAC 是基于 DDPG 进行改进,在一定程度上有效缓解了这些问题

为什么 less efficient 算法还存在?采样效率快的算法在实际应用中可能会面临更高的计算成本

基于学习的策略

按照学习目标划分:基于策略(Policy-Based)和基于价值(Value-Based)

与策略迭代相比,价值迭代不考虑不同动作的概率,而是直接选择价值最高的动作

https://www.baeldung.com/cs/ml-value-iteration-vs-policy-iteration

Policy iteration

Value iteration