1. 有/无模型学习
有模型学习
方法:动态规划
无模型
方法:蒙特卡洛、时序差分
2. 同/异策学习
- 同策回合更新(策略$\pi$和环境交互得到==完整轨迹==,然后学习更新价值函数$V^{\pi}$)
- 每次访问回合更新
- 首次访问回合更新
- 带起始探索的同策回合更新(避免陷入局部最优)
- 基于柔性策略的同策回合更新(避免陷入局部最优)
- 异策回合更新(行为策略$\pi’$和环境交互得到==完整轨迹==,目标策略$\pi$学习更新价值函数$V^{\pi}$)
- 重要性采样 李宏毅讲的很好
- 异策回合更新策略评估 # 利用行为策略估计目标策略的动作状态价值对函数和状态价值对函数
- 异策回合更新最优策略的求解 # 评估 + 改进 改进部分是依据每个状态下的最大价值动作。
3. 回合更新/时序差分更新
- 回合更新(无偏差但方差大,和环境完整的交互一个回合)
- 利用蒙特卡洛方法,对完整的G进行无偏差估计,但是方差较大
- 时序差分更新(有偏差,但方差小,收敛快,n步就和环境交互n次)
- 同策,策略$\pi$生成轨迹,然后策略$\pi$学习更新$q(s,·)$,然后根据q值更新策略
- $TD(\lambda)$(除极端的无穷外是时序差分,同策)
- SARSA算法 = 单/多步时序差分(策略评估)+ 策略改进 (同策)
- 期望SARSA算法:$U_t=R_{t+1}+\gamma \sum_{a\in \mathcal{A}}\pi(a|S_{t+1})q(S_{t+1},a)$ 也有单步和多步 (同策)
- 异策,行为策略$b$和环境进行交互得到轨迹,然后依据此轨迹对策略$\pi$进行学习更新q值,然后根据q值对策略进行更新
- 单步/多步时序差分
- SARSA算法/期望SARSA算法
- Q-learning
- Double Q-learning
- 同策,策略$\pi$生成轨迹,然后策略$\pi$学习更新$q(s,·)$,然后根据q值更新策略
- 资格迹
- 资格迹和以上时序差分策略都可以结合,不管是同策还是异策。
4. 基于价值/策略/二者结合
基于价值的
- 蒙特卡洛方法估计G
- 动态规划
- $TD(\lambda)$
- SARSA
- Q-learning
- Double Q-learning
基于策略(回合更新,利用策略交互不断得到完整轨迹,多个回合更新目标是使策略$\pi$的期望$E(G)$最大
- 同策回合更新策略梯度算法
- 异策回合更新策略梯度算法
执行者/评论者方法 = 价值更新 + 策略更新 (价值更新部分使用深度强化学习方法+单步时序差分,策略更新也是用深度强化学习方法)
动作价值执行者评论者算法 $E(\Psi_t \nabla \ln\pi(a_t|s_t;\theta)), \Psi_t=\gamma^tq_{\pi}(s_t,a_t)$
A2C-优势执行者/评论者算法 $\Psi_t=\gamma^t[q_{\pi}(s_t,a_t)-v_{\pi}(s_t)]$
时序差分执行者/评论者算法 $\Psi_t=\gamma^t[r_{t+1}+\gamma v_{\pi}(s_{t+1})-v_{\pi}(s_t)]$
A3C-异步优势执行者/评论者算法;利用多个agent同时搜集经验更新自己的参数并传给一个总的agent,可以单/多步时序差分
带资格迹的执行者评论者算法
基于代理优势的同策算法
- 邻近策略优化PPO2,在目标中添加描述分布差异的指标,$E_{\pi(\theta_{old})}[\min(\frac{\pi(A_t|S_t;\theta_{new})}{\pi(A_t|S_t;\theta_{old})}a_{\pi(\theta_{old})}(S_a,A_t), a_{\pi(\theta_{old})}(S_a,A_t)+\varepsilon|a_{\pi(\theta_{old})}(S_a,A_t)|)]$
信任域算法
自然策略梯度算法NPG,最大化代理优势,并添加约束条件,KL散度小于$\delta$,但NPG是对目标函数进行泰勒一阶近似,约束条件进行泰勒二阶近似。对近似后的问题进行求解。
$\mathbf{\theta} \leftarrow \mathbf{\theta} + \sqrt{\frac{2\delta}{\mathbf{g^TF^{-1}g}}}\mathbf{F^{-1}g}$
带共轭梯度的自然策略梯度算法
利用共轭梯度算法求解$\mathbf{F^{-1}g},\mathbf{Fx=g}$,$\mathbf{\theta} \leftarrow \mathbf{\theta} + \sqrt{\frac{2\delta}{\mathbf{x^TFx}}}\mathbf{x}$
信赖域策略优化TRPO,在NPG的基础上修改得到,因为其近似问题可能不一定导致问题有最优解,在个别情况下可能使情况更糟,TRPO对迭代式进行改进
$$
\boldsymbol{\theta_{k+1} = \theta_k}+\alpha^j \sqrt{\frac{2\delta}{\boldsymbol{[x([\theta_k])^T]Fx([\theta_k])}}}\boldsymbol{x([\theta_k])}
$$
其中$\alpha$是学习参数,$j$是某个非负整数,对于自然策略梯度$j$总是0,TRPO用一下方法确定$j$的值:从非负整数d到0,1,2…中依次寻找首个满足期望KL散度约束并且能够提升代理梯度的值。不过由于一般近似的不错,所以一般为0,个别情况为1,其他值几乎没有。Kronecker因子信任域执行者/评论者算法 ACKTR,将Kronecker因子近似曲率算法用到信任域策略优化算法中,减少计算量
重要性采样异策执行者/评论者算法
- 异策执行者/评论者算法,将目标期望$E_{\pi(\boldsymbol{\theta})}(\Psi_t \nabla \ln\pi(a_t|s_t;\theta))$,变为$E_b(\frac{\pi(A_t|S_t;\boldsymbol{\theta})}{b(A_t|S_t)}\Psi_t \nabla \ln\pi(a_t|s_t;\theta))$
- 带经验回放的异策执行者/评论者算法(ACER)
柔性执行者/评论者算法(SAC)
确定性策略
- 同策确定性算法
- 异策确定性算法
- 深度确定性策略梯度算法(DDPG)
- 双重延迟深度确定性策略梯度算法(TD3)
5. 深度强化学习/非深度强化学习
- 深度Q学习
- 双重深度Q网络
- 对偶深度Q网络
- 对于某个状态S,有些action可能采样不到,但通过对偶深度Q网络也可以更新
- Noise Net
- 对采样的Q网络的参数添加噪声,探索
- Distributional Q_function
- 该方法认为Q(s, a)有一个分布,即相同的状态和行为的价值,是一个分布,用神经网络估计这个分布