🚋强化学习 总结
type
status
date
slug
summary
tags
category
icon
password
无模型学习 VS 有模型学习。
无模型:
- 价值迭代
- 策略迭代
有模型学习:
- on-policy
- SARSA
- REINFORCE
- Actor-Critic
- TRPO
- PPO
- off-policy
- Q-Learning
- DQN (Double DQN, Dueling DQN)
- DDPG
一、价值迭代
迭代的是值函数。
最优贝尔曼算子。
二、策略迭代
迭代的是策略。
- 策略评估:
先根据当前的策略 ,计算出 。
策略 对应的贝尔曼算子。
- 策略提升
三、SARSA
1. 时序差分
被称为时序差分。
2. -greedy
3. SARSA 算法

- 每走一步更新一下。
- -greedy 策略即为当前的策略。
- 需要维护 Q 值表格(状态和 Action 都必须是离散的)。
四、Q-Learning
与 Sarsa 算法唯一的不同在于
可以理解为:
- SARSA算法可以算是策略迭代,只不过没有完全等到策略评估完之后再进行策略提升,而是边评估边提升。
- Q-Learning可以算是价值迭代,直接估计 ,不一定使用 -greedy。
算法流程:

- 每走一步更新一下。
- 需要维护 Q 值表格(状态和 Action 都必须是离散的)。
五、DQN 算法
用神经网络,让 与 TD 目标 靠近。
状态空间可以连续,但是 Action 空间必须离散。
1. 经验回放
2. 目标网络
TD 误差目标本身包含神经网络的输出,容易导致训练不稳定。
两套网络: 和 。
损失函数改为
目标网络 每隔 步与训练网络 同步一次。
3. 算法流程

每次都从 Replay Buffer 中采样 个数据。
六、Double DQN
普通 DQN 容易导致对 的过高估计。
与普通 DQN 的唯一区别是,Double DQN 的优化目标从
换成了
七、Dueling DQN
引入优势函数 :
Dueling DQN 中,Q 网络被建模为:
其中, 是神经网络浅层参数, 和 是 和 的神经网络深层参数。
只对 加监督。
小改动:强制最优动作优势函数实际输出为0。
八、REINFORCE
设
则有
算法流程:

- 严格的在线算法!
- 采样完一个完整序列才可以更新!
九、Actor-Critic
策略梯度中,可以把梯度写成更加一般的形式
其中, 可以有很多形式:

REINFORCE 算法采用第 2 种,Actor-Critic 采用第 6 种。
- Actor 网络采用策略梯度法进行更新
- Critic 网络的训练目标:让 与 尽可能靠近。
算法流程:

每走一步即可更新!
十、TRPO
1. GAE——广义优势估计
2. 数学推导
新旧策略目标函数之间的差距
第一行约等于是将 和 下的状态分布进行近似,第二行等于是用重要性采样对动作分布进行处理。
为了让 和 足够接近,加入 KL 散度的限制。最终的优化问题是:
用共轭梯度法进行优化:略。
十一、PPO
1. PPO 惩罚

2. PPO 截断
若 ,要强制 比 大。
反之,要强制 比 小。
十二、DDPG
1. 数学推导
确定性策略 。
确定性策略梯度
其中, 是 Replay Buffer 里的状态分布。
2. 算法细节
- Actor 和 Critic 各自两个神经网络。 和 都用来计算 Q 网络的优化目标
- 目标网络采用软更新。
- 在确定性策略上引入随机噪声 。
算法流程:
