顺序以周博磊老师强化学习纲要课程为主,增加王树森老师强化学习基础的知识补充,和蘑菇书的知识补充,作为学习记录
第五章:策略优化基础
主要内容:
- 基于策略优化的强化学习
- 常见策略优化算法:Policy Gradient
- 存在问题及解决办法
- Actor-critic
一、基于策略函数的强化学习
- 回顾
- 基于价值函数的RL:
- 得到Q函数,对Q函数进行优化,获得Q值极大的动作
- 实际上,更重要的是策略,基于价值函数的最终目的也是获得使价值函数最高的策略,属于隐式的学习策略函数
- 对比:
- 基于价值函数的RL
- 学习价值函数
- 通过价值函数隐式学习策略
- 基于策略函数的RL
- 不学习价值函数(即不关注某个状态的价值)
- 直接学习策略函数
- Actor-Critic 既学习价值函数又学习策略
- 基于价值函数的RL
- 基于价值函数的RL:
- 基于策略函数的优化
- 优势:
- 强化学习中基于策略函数进行优化会使得优化更容易
- 无论数据多少都可以得到一个策略函数,数据越多效果越好(而在价值函数中,为了完成对Qtable的估计,是需要有很多数据的)
- 策略梯度方法在高维空间更有效(相对于高维动作空间,value只有单值,过于稀疏,而policy是向量)
- 策略梯度方法输出是概率(随机策略)(stochastic policy)(概率的优势会在之后提到)
- 缺点:
- 经常得到局部最优解,而不是全局最优解(因为建模时用的不是最优函数)
- 方差较大,导致结果不够稳定
- 分类:
- Determinstic policy:输出是一个确定的行为
- Stochastic policy:输出是各个行为的概率,执行时通过概率对行为进行采样
- 在某些场景中确定策略更容易输,随机策略才是最佳策略(优势之一)
- 优化方法
- 优化策略实际优化的客观函数:π_θ(s,a)
- 如何衡量策略π_θ的价值?
- 在可结束回合中:取得开始的价值
- 在连续环境中
- 使用平均价值:
- 每一步获得的平均奖励
- 其中d是指当马尔可夫链到达稳态后,每个状态出现的概率
- 从轨迹τ的角度来说(MC采样方法)
- 策略价值为:
- 此时,基于策略函数的RL的目的就是找到最优θ(实现极大化奖励)
- 即,基于策略函数的RL的重点在于优化参数θ使其可以最大化函数J(θ)
- 最大化实现方法:
- 函数可微:梯度上升(gradient ascend)
- 函数不可微,或微分难以得到: 一些无需微分的黑箱优化方法
- Cross-entropy method(CEM)
- Hill climbing
- Evolution algorithm
- Cross-Entropy Method
- 是一种进化策略方法,核心是参数优化的过程
- 是一种基于参数扰动的搜索算法,给参数合理扰动(变体),在扰动中搜索和选择较好的集合,利用交叉熵指导更新v,使扰动方向越趋近于目标优化方向
- 是免梯度方法,从进化角度解决优化问题
- 采样,存在关于参数θ的分布,采样后得到多组θ
- 该分布可由初始化得到
- 6.对每个θ使其与环境交互,存储结果
- 8.极大似然优化更新参数,排序后取前10%对应的参数
- 迭代对选取参数进行优化
- 有时候CEM方法比可以微分优化的效果都好(在有些环境中)
- 周老师给出的代码:https://github.com/cuhkrlcourse/RLexample/blob/master/my_learning_agent.py
- Finite Difference
- 无法计算梯度,利用一种近似方法求梯度
- 在每个维度增加一个很小的随机扰动,用来近似梯度,用近似梯度进行优化
- 该方法效率较低且存在噪声,但对任何policy都是有效的
- 其他查询到的知识:有限差分法FDM
- 用数值解逼近微分方程真实解的方法
- 将求解区域离散为差分网格
- 以有限个网格结点代替连续的求解域
- 用网格上的差商代替格点上的空间导数
- 整理后变为差分代替微分
- 可微分:策略梯度方法
- 计算梯度:
- 似然函数:(对概率取log)
- 得到score function:
- 策略函数形式:
- Softmax policy
- Gaussian policy
- 术语:
- MLE:最大似然估计
- LL:log likelihood 对数似然函数
- 通过MLE估计参数通常会采用LL作为目标函数,
- 如max_θlogp(x;θ) 记L(θ)=logp(x;θ)
- 求解最优的最直接方法就是令其对参数的导数为0,
- 即dL(θ)/dθ=0
- 此时dL(θ)/dθ就是score function (目标函数求对数似然的一阶导数)
- Softmax policy
- 基于目前已知的动作的平均奖赏对探索和利用进行折中
- 每个动作平均奖赏相当,则被选概率也相当
- 若某个动作平均奖赏明显高于其他动作,被选取概率也更高
- τ趋近于0时算法趋于仅利用;趋于无穷大时算法趋于仅探索
- Q(i)记录当前动作完成后的平均奖赏
- Gaussian policy
- 对连续动作空间,动作选择是高斯分布函数,是很好的选择
- 对状态特征量进行加和、
- 方差可以参数化也可以是固定的
- 取策略时对连续空间进行采样
- 得到对应的score function
- 优势:
二:常见策略优化算法:Policy Gradient
- 策略优化经典算法:Policy Gradient
- 对于只走一步的MDP
- 采样起始状态s
- 一步后得到奖励r=R(s,a)
- 得到客观函数:
- 求梯度:
- 对于多步MDP(策略函数会与环境进行交互,实际上会产生一个轨迹)
- 首先,经过一次回合后可以得到轨迹τ
- 由此可以表示出某个轨迹τ发生的概率
- 接下来表示轨迹τ的奖励
- 仅完成单次回合:
- 事实上,我们会采样多次回合,我们要调整参数θ使奖励R(τ)越大越好,R(τ)是随机变量,计算它的期望值
- 推导过程:
- 此时,我们的目的是:
- 因为希望奖励越大越好,所以使用梯度上升来更新参数,用来最大化奖励
- 该式子等同于期望值:(好处就是log连乘变连加)
- 使用采样估计期望值:(一般期望算不出来常用MC)
- 此时对轨迹概率进行拆分:(log连乘变连加)(无用量求导后消去)
- 所以梯度式进一步改变为:
- 书上的表达式为:
- 此时就得到了score function
- 利用score function对参数进行更新
- 一般策略梯度采样数据只用一次,利用数据更新参数后,丢掉数据,接着重新采样再去更新参数
- 对于只走一步的MDP
- 对比(分类问题和强化学习)(estimator)
- 解决分类问题时,目标函数就是需要极大化或极小化的对象;
- 强化学习和分类问题的唯一不同是在损失前面乘以权重,即整场游戏的总奖励(而不是单步奖励)(加权后的极大似然估计,尽量采样到可以达到更高奖励里去)
三、存在问题及解决方法
- 存在问题:此时的policy gradient 是基于MC采样方法得到的,事实上该方法虽然无偏,但会导致噪声较大,方差较大
- 当前公式:
- 解决方法:如何降低方差使其更稳定
- 利用时序上的因果关系,去掉不必要的项
- 包含一个baseline,减小R的方差
- 方法一:时序因果关系
- 原函数:
- 此时,对于在状态s_t下发生的所有动作a_t来说,它们乘以的权重都是第t次游戏的所有奖励
- 这种加权方式很明显存在问题,执行该动作之前得到的奖励不是该动作的贡献
- 根据折扣回报的思想,我们可以进一步优化梯度:
- 原梯度:
- 时序因果性:t’的策略不会影响t’之前的奖励
- REINFORCE算法
- 基于MC policy gradient的算法
- 回合更新方式,先获得每个步骤的奖励,再计算每个步骤的未来总奖励G
- 利用G对参数θ进行更新
- 由于:
- 代码计算中,实际是从后往前推,先算T时刻G,一直算到G1
- 方法二:使用Baseline
- 原函数:
- 当所有动作奖励均为正时,某动作未采样到导致其概率下降(相对下降)
- 引入baseline函数,使奖励有正有负:(b的要求在于与动作a无关)
- 这样做即使未采样到,正向动作也不会概率下降
- 一种baseline函数是我们所期望结果,对于本章就是对实际得到一系列奖励的平均值(因为期望不好算所以变成了MC采样进行计算)
- 通过推导可知
- 引入baseline不会改变policy gradient的值(因为减b的部分恒等于0)
- 不会改变期望但会使方差更小(为什么),从而使梯度更稳定,即强化学习训练也更稳定
- baseline同时可以用参数w进行拟合,优化过程中同时优化参数θ和w
- 优势函数:G-b
四、引入Critic (Actor-critic)
- 对Gt的替代
- 即得到Actor-Critic算法
- 书中,将优势函数即记为,用网络估计A
- 该网路称为评论员critic
- Actor-Critic算法(将value function和policy function结合)
- 对critic: 功能:进行策略评估,当前策略可能获得价值
- 估计critic参数w的方法(重用策略评估方法)
- MC策略评估
- TD learning
- Least-squares 策略评估
- 这些就是基于价值函数的强化学习方法
- QAC方法
- AC函数拟合
- 方法一:对策略函数和价值函数分别拟合
- 方法二:将两个拟合函数组合起来,分享特征提取部分
- 通过baseline减少AC的方差
- policy gradient的应用
- 克服不可微分的计算成分
- policy gradient本身是基于MC采样的算法,用采样的方法替代不可微分的方法
- 两种流派
- 基于价值函数的RL
- 使用动态规划和bootstraping等方法对价值函数进行优化
- 通过Q函数获取最佳策略,更关注价值函数的估计
- Deep Q-learning
- 基于策略函数的RL
- 基于策略优化,机器学习与深度学习等
- 最终都靠近Actor-Critic方法
- 具体取决于自身的应用方面
- 基于价值函数的RL