强化学习的一些基础知识点,以前学过了就学过了,未做总结,遗忘成本高。
马尔可夫决策过程
马尔可夫性质:是指在一个随机过程中,给定现在状态以及过去所有状态情况下,其未来状态的条件概率分布仅依赖于当前状态。
马尔可夫链:马尔可夫过程是一组具有马尔可夫性质的随机变量序列
马尔可夫奖励过程
这里分清三个概念,奖励、回报、价值:
奖励:表示到达某个状体,立即获取多大的奖励。
奖励函数:
回报:在一个回合范围
状态价值函数:有了回报就可以定义状态的价值了,对于马尔可夫奖励过程,状态价值函数被定义为回报的期望。
贝尔曼方程:从上面的价值函数中推导而来,利用全期望公式证明推导,此处不给出推导过程,直接给出结果:
但是,求解这样一个方程是很难的,若状态空间较小,可以通过矩阵形式求解解析解,因此一般采样迭代的方法求解这种状态非常多的马尔可夫奖励过程。(动态规划、蒙特卡洛、时序差分等)。
马尔可夫决策过程
马尔可夫决策过程相对于马尔可夫奖励过程多了决策,未来的状态不仅依赖于当前的状态,也依赖于当前状态智能体采取的动作。
马尔可夫决策过程的价值函数,注意区分马尔可夫奖励过程的价值函数,
动作价值函数:在某个状态采取某个动作,有可能得到的回报的一个期望:
Q函数的贝尔曼期望方程:
这个定义了当前状态和未来状态在动作价值函数中的关系。当前时刻Q函数和未来时刻Q函数之间的关联:
策略评估:已知马尔可夫决策过程以及要采取的策略
预测与控制:二者为递进关系,预测是已知一个马尔可夫决策过程和策略
策略迭代:分两步,首先进行策略评估,对当前搜索到的策略函数进行估值。得到估值后,再进行策略改进,即把Q函数计算出来,进行进一步改进,不断重复,直到策略收敛。
价值迭代:直接使用贝尔曼最优方程进行迭代,寻找到最佳的价值函数,找到最佳价值函数后再提取出最佳策略。
表格型方法
有模型和无模型:理解区分这两者概念就好,实际应用中基本都是采取无模型方法。有模型是指状态转移概率和状态奖励概率均已知,即和环境交互产生的结果是完全可以推导出来的。
无模型预测
蒙特卡洛策略评估
蒙特卡洛是基于采样的方法,给定策略
时序差分
时序差分方法的目标是对于某个确定策略
时序差分误差:
无模型控制
在不知道马尔可夫决策过程模型的情况下如何优化价值函数,得出最佳的策略。但是不知道奖励函数和状态转移函数,怎么估计价值函数呢。于是考虑用蒙特卡洛方法或时序差分方法直接估计动作价值函数,再用贪心策略进行策略更新,交替往复直至收敛或达到终止条件。
Sarsa:同策略时序差分控制
很简单,就是将时序差分方法更新价值函数
Q学习:异策略时序差分控制
异策略也叫做离线策略。异策略算法包含两种策略:目标策略和行为策略,目标策略指代的是需要学习的策略,而行为策略是探索环境的策略,负责和环境进行交互采集轨迹。
策略梯度
策略梯度算法是基于策略的方法,对策略进行参数化,比如参数为
给定actor的参数
在一个回合/轨迹中,会得到奖励
我们需要最大化期望奖励,首先计算期望奖励
期望奖励求梯度的推导公式如下,其中有一些重要的步骤省略未详细说明,关于期望奖励求梯度的具体推导可以查阅相关资料。
策略梯度的一些实现技巧
添加基线
因为不希望奖励总是正的,而是有正有负,从而提高获得正奖励的概率,降低获取负奖励的概率。
分配合适的分数
前面的公式显示在同一个回合/轨迹里面,所有的状态动作对使用同样的奖励进行加权,这是不公平的,因为有的动作是好的,有的动作是不好的,在此轨迹中贡献是不一样的,如果都赋予同样的奖励是不行的。
REINFORCE:蒙特卡洛策略梯度
采用的是回合更新的方式,先获取每个步骤的奖励,然后计算每个步骤的未来总奖励
重要性采样
假设不能从分布
将重要性采样用在异策略的情况中则有:
根据全概率公式有:
上式是梯度,用式子
近端策略优化
若两个分布相差太多,重要性采样的结果就会不好,于是近端策略优化就是要避免异策略的两个策略相差太多。
PPO做的就是加入一个KL散度,约束
在PPO论文中主要有两个改进点:1、近端策略优化惩罚,2、近端策略优化剪裁。
- 近端策略优化惩罚用到一个自适应KL散度,用来动态调整KL散度前面的权重
。事先规定两个阈值 和 ,如果 ,增大 ,如果 ,减小 。
近端策略优化惩罚可以表示为:
- 近端策略优化裁减,其实就是计算KL散度复杂,采用裁减的方式减少计算复杂度:
深度Q网络
因为在现实中基于价值估计的强化学习无法罗列所有的状态,并且状态空间往往是连续的,所以不能用表格形式来存储更新价值函数。可以采用一个函数
基本步骤:首先用个初始的策略
目标网络
对于一个收集到的数据,比如在状态
探索
指的是在某个状态采取某个动作,它得到的值是正的奖励,那么它就会比其它动作
经验回放
回放缓存指代的是有某个策略
深度Q网络技巧
双深度Q网络(DDQN)
竞争深度Q网络(dueling DQN)
优先经验回放
即在从经验回放池采样数据的时候不是均匀采样,而是有一定的优先权。比如在之前采样过的一些数据,训练的时序差分误差特别大,那么代表这些数据不好训练,应该给予更大概率被采样到。
在蒙特卡洛方法和时序差分方法中取得平衡
就是将步长N作为一个超参数,在蒙特卡洛方法和时序差分方法之间平衡。
噪声网路
注意的是,在刚开始之前,就采样噪声,且固定噪声网络,直到整个回合结束,才能重新采样噪声
演员-评论家算法
优势演员-评论员算法
策略梯度:
稀疏奖励
设计奖励
就是人为的设置一些奖励来引导智能体,往最终获取固定奖励方向学习,但这有个缺点,需要相关领域知识来设计奖励,不然是不知道如何设计奖励能引导智能体的。