强化学习基础技术系列原理摘要总结

最近在制作强化学习方面的分享内容,这里做一个文字的摘要总结版本,可以方便关键知识的复习和记忆检索。也希望对相关方向感兴趣的读者有所帮助,同时引文的链接中有详细的视频内容分享,欢迎从事相关方向的读者朋友们多提意见和建议。

1、MDP,马尔可夫决策过程,是基于状态(state, observation)、行为(action)、状态行为转移概率矩阵(state transition probability, 可以定义为维度为3的多维数组,如第1个维度为当前状态,第2个维度为下一个状态,第3个维度为所有行为)以及即时奖励reward,和策略pi(policy),马尔可夫决策过程描述了一个随机过程控制的场景,有actor,agent,environment等,actor和environment进行交互,agent是actor背后的大脑,负责帮助actor进行决策。当马尔可夫决策过程中状态行为转移概率矩阵和即时reward已知的时候,我们可以采用bellman方程的动态规划迭代方法去采用策略迭代或价值迭代去求解最优决策。当模型状态未知时,也可以采用免模型的算法,如蒙特卡咯和时间差分的方法去求解。

2、当马尔可夫决策过程的状态未知时,我们一般采用免模型法,如基于蒙特卡洛的基于整个回合序列的统计近似方法,以及基于更小step的时间差分方法,如Sarsa和q learning都可以基于时间差分法去迭代优化Q函数,不同点在于Sarsa为on policy的方法,也就是同策略方法,而Q learning为异策略方法。同策略(on policy)可以理解为基于当前的同一个训练的网络去学习error(如Sarsa中下一个状态也会通过智能体执行当前策略行为获取相应的Q值),而异策略(off policy)可以理解为当前训练网络(训练网络)和基于之前的网络获取的动作价值函数的状态(目标网络)结合去学习error。

3、DQN网络算法,介绍了其目标网络和训练网络的异策略训练方法以及算法代码流程描述,并基于CartPole模拟器环境用MLP网络进行了DQN算法的实现,这里有基于队列实现的一个ReplayBuffer(经验回放池,基于双端队列数据结构实现),经验回放池的数据进行采样会随机抽取数据返回,保证训练时数据之间的独立性,易于网络的训练,不会使得网络过于拟合最近的采样数据(经验回放池的早期数据在池满被移除之前也可以复用多次),早期的数据将会自动从队列中移除也满足了采样数据的时效性。在实现过程中,训练网络用于采集收据放入ReplayBuffer,目标网络顾名思义用于计算训练网络所需要回归的目标,其基于回放池中取出的reward和nextstate,并将nextstate输入给目标网络并计算出最大的action的输出,经过公式计算得出训练网络需要回归的target。具体的相关代码实现可以参考引文3

4、PolicyGradient和actor-critic算法,基于Policy network的基于期望回报的最大化,根据蒙特卡洛采样方式将完整回合轨迹的累积回报与其概率进行加权,通过采集很多个轨迹得出回报的期望,并使期望最大化来优化策略网络。原始的公式中,是对整个轨迹的回报进行的期望的计算,整个轨迹中每一个时刻的状态行为分配相同的权重会存在一些不合理的因素,关于具体的推导过程可以参考视频分享,其中要说明的是基于蒙特卡洛的REINFORCEMENT算法中的公式通过一些列的考虑进行的调整,比如对于某个状态下的行为的“好坏”将考虑其从该状态下执行行为后的期望回报作为因子(之前发生的事情与执行这个动作没有关系,和-logp_theta(s|a)去相乘去算损失,如果期望回报较大,增大概率p_theta(s|a)会获得更大的回报,这是-logp_theta(s|a)为正值而且会随着p_theta(s|a)增大变小,所以总体的loss变小,达到我们期望回报增大的目的。在策略梯度算法中,为了减小回报的方差,引入了基线的概念,可以理解对回报做了归一化处理,使得训练的结果更加稳定(有的游戏中所有步骤的即时回报都是正值),而将价值函数作为基线的策略梯度的改进算法称为actor-critic算法。actor-critic算法为一种框架算法,后续的PPO以及TRPO都用到了策略网络和价值网络进行的联合的训练,也归属于这一类算法。

5、PPO算法,策略梯度是同策略算法,其采集的数据只能利用一次,采集数据的成本过高,为了能够更高效率复用数据,PPO算法采用了异策略的方案,提供了训练网络和参考网络,并且对参考网络上采集的数据进行了多次复用,为了限制训练网络和参考网络的参数差异不要太大(能更好利用重要性采样进行数据复用),这里采用了一种软约束(加了KL散度约束两个网络的参数,同时还可以动态调整设置重要性因子阈值对KL散度约束项进行自适应的调整)。广义优势函数基于多步时序差分的思想,将不同步骤的优势函数进行加权求和。

6、TRPO算法,TRPO算法出现在PPO算法之前,和PPO算法有不少的思想是相同的(也基于重要性采样原理多次复用采集数据),为了限制新旧策略网络的参数不要差异太大,这里使用了硬约束,和软约束不同,硬约束显示要求两个策略网络参数的差异范围(亦即Trust Region一词的由来)。大体的思路是分别基于目标函数和约束函数的一阶和二阶泰勒展开,采用共轭梯度的方法去求解(共轭梯度用于求解大规模对称正定的线性方程组,这里为H(detlta_theta)=g),最终求得更新的方向delta_theta,用于更新策略参数。

以上内容内容的视频分享内容请参考引文1,相关代码实现请参考引文2。

References


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *