王树森强化学习笔记

【王树森】深度强化学习(DRL)_哔哩哔哩_bilibili

王树森深度强化学习笔记 - 知乎

深度强化学习

1、RL术语

X是随机变量,x是观测值

state s

Action a,a是agent做的,以马里奥为例,left right up

policy 即给定状态s,做出动作a的概率

reward 以马里奥为例,捡到金币+1,赢了+1w,输了扣1w

state transition 状态转移

强化学习中两个随机性来源:动作的随机性,状态转移的随机。随机产生a,随机产生s

trajectory:每一步是 直到游戏结束有

Return: cumulative future reward 是当前的回报,未来的回报具有不确定性,所以加了一个超参数

Acition-Value Function for policy ,对的期望,因为它与当前t时刻与未来每个时刻的A和S都有关,求期望得到动作价值函数的定义

Optimal action-value function Q最大的时候

State-Value function

总结就是,动作价值函数是状态下,采取动作,能够得到多少回报,当然这个值越大越好。而状态价值函数是只固定了状态,动作A是随机,因此状态价值函数的结果是,当前状态下,能够得到的平均回报

强化学习任务,一是学习策略函数,二是学习Q函数。学习两者之一即可。

value-based learning: DQN,任务是最大化Q 用到temporal different TD算法

Policy-based learning :任务是最大化 用到policy gradient,梯度上升

Actor-critic method: policy network + value network

2、Value-Based RL

用一个神经网络去近似

如果我们知道了那么很明显最优动作就是

但是我们现在没有 所以只能用一个神经网络去近似

但是怎么训练?用TD训练,目的是让TD error越小越好

类比driving time例子,TD公式一般类似于这样,左边是T时刻的估计,右边是TD target,包含一个真实值和T+1时刻的估计

而在强化学习中

注意到这里,为什么要求一个max?我的理解是,因为我们的目标就是训练一个最优的Q?

怎么训呢?

图1 图2

3、Policy-Based RL

策略函数是一个概率分布函数 给定状态s,做出动作a

如果状态有限,直接用一个表记录就行,超级马里奥需要用函数去近似

回顾一下状态价值函数

通过神经网络去近似策略函数

Policy-based learning:Learn that maximizes

那么算policy gradient的时候,需要用到梯度上升,不严谨的推导可以得到两个公式,分别对应离散和连续

𝕤

这里策略函数很复杂,积分求不出来,只能用MC去近似期望,MC就是抽一个或很多个样本,去近似期望

图3

步骤如下

图4

但问题是第三步中的Q咋算的?有两种方式

图5 图6

4、Actor-Critic methods

结合了价值学习和策略学习

图7 图8 图9

总结一下算法步骤,还有一个值得注意的点是,第九步中用或者都是可以的

前者是标准算法,后者被称为Policy Gradient with baseline,收敛的更快

图10 图11

5、AlphaGo

蒙特卡洛 Monte Carlo

第一个例子是均匀抽样估算Pi值

第二个例子是Buffon’s Needle Problem估算Pi值

第三个例子是求阴影面积

第四个例子是Monte Carlo求Pi

Monte Carlo可能是错的,但是离真实值很接近,我们不需要那么精确,在机器学习中够用了。

Random Permutation和 Fisher-Yates

推导待续

TD Learning

DQN高级技巧

大幅提升DQN的表现

回顾一下DQN,是学习一个Q star函数

1、Expeirence Replay 经验回放

img

两个好处:1.打破了序列的相关性 2.可以重复利用经验

2、Prioritized Expeirence Replay 优先经验回访

用非均匀抽样代替均匀抽样:用TD error去给经验值打一个权重,因为越少见的场景,TD error越大,这样的经验是比较重要的

两种抽样方式

img

img

2、DQN高估问题 Bootstrapping

img

两个高估来源

img

总结来说就是,DQN估计的时候,因为是估计,所以存在噪声,最大值被高估,最小值被低估

均匀高估和非均匀高估,而均匀高估其实是无所谓的

解决方法也有两种,分别是target network和double DQN

img

本质上都是再用一个新的netwrok去解决高估问题。区别就在于求TD Target的时候,更新参数的时候,有一些区别,细节如下。

img

3、Dueling Network

img img

回顾一下 以及最优的定义

是给定状态和动作下的期望回报

更进一步,只考虑了状态,对动作又做了一次期望

其实到这里就能够理解了,一个是单次动作得到的回报,一个是平均回报

然后假设已知了最优的策略函数,由此引申出优势函数的定义,其中可以理解为是一个baseline。而优势函数可以理解为采取动作的情况下,相对baseline的好坏,越好,优势越大

img img

Dueling Network定义

img

对网络结构的改进

img

根因是解决不唯一性,为了保证两个网络训练更稳定,实际使用中一般用mean而不用max,因为mean效果更好

img img img

策略梯度中的baseline

1、Policy Gradient with Baseline

目的:引入baseline,降低方差,收敛更快

复习一下

img

baseline的性质

img img

公式里面有期望,求起来会比较困难,实际使用过程中,会使用蒙特卡洛近似。

image-20250708010304508 image-20250708010220490

实际上使用的时候,都是用去计算梯度上升,如果baseline选的够好,的方差就会比较小,这样收敛的更快?

b的两种选择方式

image-20250708010534541 image-20250708010547454

2、REINFORCE with Baseline

总结就是三次近似

image-20250720131729027

两次蒙特卡洛近似,因为是无偏估计。

还一次神经网络近似。

image-20250720131848879

两个网络:一个策略网路,一个价值网络

怎么更新呢?

image-20250720132459390

3、Advantage Actor-Critic(A2C)

image-20250720132635872

怎么训练的?

image-20250720133307978

理论证明暂略。。。

4、REINFORCE with Baseline和A2C的异同

其实从上面5和6就能看出来区别,求TD target的时候,不一样

前者是完全基于观测,而A2C一部分是观测,一部分是网路的估计。

A2C和REINFORCE是相互特例

image-20250720153530935

连续控制

1、离散控制和连续控制

2、确定策略梯度Deterministic Policy Gradient, DPG

3、随机策略做连续控制

TRPO