强化学习算法的简单总结,主要包括基于值函数/策略函数的学习方法、Actor-Critic算法。
强化学习笔记: 强化学习基础 、基于值函数的学习方法、基于值函数的学习方法
强化学习的目标
强化学习的目标是学习到一个策略
基于值函数的学习方法
策略迭代
已知模型。利用贝尔曼方程(算均值
)迭代计算出
值迭代
已知模型。利用贝尔曼最优方程迭代算出
蒙特卡罗
未知模型。从
时序差分算法
无需知道完整轨迹就能对策略进行评估。
时序差分学习=动态规划-贝尔曼估计
贝尔曼估计轨迹总回报
增量计算
SARSA
同策略的时序差分算法,是Q学习的改进。
1、当前状态
2、执行动作
4、依概率选择新动作
5、更新Q函数
6、更新状态和动作:
Q学习
1、当前状态
2、执行动作
3、不依概率选择新动作,而是直接选择最大的值函数
4、更新Q函数
5、更新状态:
Q网络
使用神经网络
DQN
深度Q网络:
- 目标网络冻结-稳定目标值。
训练网络, 目标值网络。定期更新参数 - 经验池的经验回放-去除样本相关性- 每次采集一条数据放入经验池,再从经验池取数据进行训练。
生成新数据加入经验池
1、状态
2、执行动作
3、
采经验池中采样一条数据计算
1、从
2、计算实际目标值
3、损失函数
如下,梯度下降法去训练Q网络
状态前进
更新目标Q网络的参数
每隔C步更新:
基于策略函数的学习方法
策略搜索
本质上是一个优化问题
,无需值函数可以直接优化策略。参数化的策略可以处理连续状态和动作。
策略梯度 :是一种基于梯度的强化学习方法。
策略连续可微假设:假设
最大化策略的期望回报
策略梯度
REINFORCE算法
期望用采样的方式来近似,随机采样N个轨迹。
1、根据
2、在每一时刻更新参数 (0~T)
先计算当前时刻的回报
缺点:
- 需要完整的轨迹
- 不同轨迹之间的策略梯度方差大,导致训练不稳定
带基准函数的REINFORCE算法
每个时刻
基准函数
- 为了减小策略梯度的方差
- 引入与
无关的基准函数 - 越相关方差越小,所以选择值函数
每一时刻的策略梯度为:
1、根据策略
2、在每一时刻更新参数
计算当前时刻的轨迹回报基准函数(值函数)
进行修正,得到
更新值函数
更新策略函数
缺点
: 需要根据策略采集一条完整的轨迹。
Actor-Critic算法
演员-评论家
算法结合了策略梯度
和时序差分
算法。不需要一条完整的轨迹,可以单步更新参数,无需等到回合结束才进行更新。
演员
根据
评论员
根据真实奖励
之前的标准
,打分(估计回报):
使评分更加接近环境的真实回报。
演员
演员根据评论的打分,调整自己的策略
1. 执行策略,生成样本
2. 估计回报,生成
3. 更新值函数和策略
4. 更新折扣率和状态