强化学习问题总结(精选5篇)

山崖发表网工作总结2024-03-20 11:34:3514

强化学习问题总结 第1篇

两个网络:两个网络有一个共同点,输入状态S: 一个输出策略,负责选择动作,我们把这个网络成为Actor; 一个负责计算每个动作的分数,我们把这个网络成为Critic。

AC可以理解为TD版的PG,要在每步都得到G值,就需要增加一个神经网络Critic,用于输出Q(s,a),但由于Q的非负性,需要减去Q(s,)的期望即V(s),得到Critic的返回值Q(s,a) - V(s),但是同时估计Q值和V值不简便,将Q(s,a) = gamma * V(s') + r,这样返回的是TD-error = gamma * V(s') + r - V(s),可以理解为PG中的G值,这样就只需要计算V值。

Critic学习:

Actor学习:

强化学习问题总结 第2篇

Qlearning和SARSA估算的都是动作的Q值。Qlearning和SARSA的核心原理,是用下一个状态S_{t+1}的V值,估算Q值。但既要估算Q值,又要估算V值会显得比较麻烦,所以我们用下一状态下的某一个动作的Q值,来代表S_{t+1}的V值。

noisy-greedy策略

通过添加噪声使策略不是每次都选择最大Q值都动作,让智能体有更多探索的机。而且噪声随着训练步数的提升,当我们认为智能体对环境的了解已经足够充分,我们就可以慢慢减少噪音的大小。

强化学习问题总结 第3篇

动作A:被模型基于用户状态 s计算出来的一个推荐列表(多个item)

用户的反馈

推荐系统推荐所需要的信息(用户信息,商品信息等)

与真实环境交互或者采用有模型强化学习,先建立模型,然后与建立的虚拟模型进行交互

状态:车辆的信息

含有两类动作,1.控制左右2.控制油门刹车

奖励就是偏离最佳行驶路线的程度

在原本的reward函数中加入一项惯性(TD error),γV-V

对于状态,不能进行BN,因为BN的目的虽然是通过将数据分布保持标准正态分布提高网络的适应能力来加快网络的训练速度,但是它需要稳定的数据来进行方差和均值计算,但是强化学习恰好有训练数据不够稳定的特点,所以不适宜使用BN,但是可以使用普通的归一化来使得输入让神经网络更舒服。而且对于值函数也不需要进行归一化,但可以进行缩放.

序列总奖励保持在一个较高的稳定范围内

状态奖励对应

方法 

采样效率

MSE

最普通:IQL

基于通信:RIAL,DIAL,BiCNet

基于:MADDPG->COMA,VDN->QMIX->QTRAN

model-based需要首先构建模型,然后再进行学习(采用有模型和无模型方法都可以),有模型可以通过构建虚拟模型来代替现实模型来发挥其优势(黑盒模型),也可以采用白盒模型来进行学习。有模型方法不通用但是泛化能力强

主要解决了样本不好获取和样本效率低的问题。但是MFRL的效果往往优于MBRL

通过学习多个预训练任务,来使得模型在新任务上有很好的效果,类似于Few-shot learning,迁移学习,多任务学习

前面讲到,要做 meta RL 的训练,很重要的一点是希望在训练智能体的时候,就让智能体见到足够丰富的任务。因此,一个能够高效生成各种丰富任务的环境就显得很重要。往细了讲,就是希望能够生成不同的 P 和 R。

通过学习多个预训练任务,来使得模型在新任务上有很好的效果,类似于Few-shot learning,迁移学习,多任务学习

分为监督学习和逆强化学习

监督学习中,就是通过专家的标记的数据来训练agent,提高决策能力

Forward Training,SMILE,Dagger(边训练边扩充数据),GAIL(GAN框架)

逆向强化学习中,就是学习得到一个良好的reward函数

基于最大边际:学徒学习,神经网络逆向学习

基于最大熵

由原来的对一个智能体进行决策变成了对多智能体进行决策,这些多智能体之间可能是竞争,合作或者竞争和合作并存的关系。

在MDP框架之上进行了一定的改进

强化学习问题总结 第4篇

DDPG其实并不是PG,并没有做带权重的梯度更新,也就不会造成如PG中用不同版本策略进行更新导致错误的情况。而是在梯度上升,在寻找最大值。这也就解释了,为什么DDPG是一个离线策略,但可以多次更新却不用importance sampling。

滑动平均值更新:加权更新,因此即使有个别元素比较大,对均值的影响还是比较“温和”的。不会造成巨大的跳变。

强化学习问题总结 第5篇

DQN利用了经验回放对强化学习的学习过程进行训练(打破数据关联性,保证输入神经网络的数据独立同分布)

DQN独立设置了目标网络来单独处理时间差分算法中的TD偏差。(打破关联性,提高收敛能力)

DQN对Q-learning的修改主要体现在以下三个方面:

DQN利用深度卷积神经网络逼近值函数(表达能力增强,可以处理状态空间动作空间较大的问题)

DQN利用了经验回放对强化学习的学习过程进行训练(打破数据关联性,保证输入神经网络的数据独立同分布)

DQN独立设置了目标网络来单独处理时间差分算法中的TD偏差。(打破关联性,提高收敛能力)

而Sarsa是on-policy方法,Ql和DQN都是off-policy方法

保证总的回报期望不断增加而不减少。(TRPO,PPO)

Epsilon-greedy

UCB

entropy

好奇心机制

采用双Q策略

采用双Q策略

策略参数延迟更新

目标动作选择平滑

MAB问题只有一个状态,是在同一个状态不断执行不同的bandit选择,更倾向于寻找合适的探索利用机制

在经典bandit算法当中,我们要做的无非就是通过一类pull arm的策略,尽快找到比较好的“arm”(reward较高的arm),然后尽可能多的去拉这些比较好的arm就是了。贪心算法无非就是永远以当前对每个arm的reward的估计直接作为依据,而UCB算法则是考虑了置信度的问题,因此考虑的是每个arm reward的置信区间的上界。

bandit算法中主要有两类流行的算法,一类是贪心算法(如uniform exploration, -greedy算法),还有一类是基于upper confidence bound的UCB算法。

Epsilon-greedy

UCB

UCB公式

解决分布偏移问题

目标策略是用于优化的策略,是评估QV值时使用的策略

基于重要性采样的MC:

重要性采样系数:

基于重要性采样的TD:

=============================================================

下面我们分析下TD的重要性采样,理解行为策略如何向目标策略靠拢:

注意,当不为0而为0时,重要性采样不可用。

当,即两策略在状态时选择的概率一致,不需要矫正

当,即行为策略b的在状态时选择动作的概率要比目标策略高,那么小于1的重要性采样系数就会降低基于行为策略b得到的时序差分目标,从而引导代理后续降低行为策略b在状态时选择动作的概率。

当,即目标策略状态时选择动作的概率要比行为策略b高,那么大于1的重要性采样系数就会进一步增强基于行为策略b得到的时序差分目标,从而引导代理后续提高行为策略b在状态时选择动作的概率。

依靠奖励驱动,通过与环境交互来获取样本并对智能体进行训练并用来解决序列决策问题的算法。

它不需要训练集测试集,而是通过与环境交互来获取数据,因此这表明其获取的数据时不够稳定的。

适宜解决序列决策问题,因为传统的监督学习相当于通过单步学习来进行训练,效果肯定不如整个序列的值来进行训练

依靠奖励驱动,通过与环境交互来获取样本并对智能体进行训练并用来解决序列决策问题的算法。

它不需要训练集测试集,而是通过与环境交互来获取数据,因此这表明其获取的数据时不够稳定的。

数据之间是相关的

序列决策问题

MSE

部分不可观测马尔科夫决策过程,含有隐状态和观测状态。

马尔科夫性

sutton书

基于值的方法中是为了去最优的值函数,最优值函数代表从当前状态(或状态动作)出发,能够获取的奖励和,因此奖励和越大的预示着当前状态(或状态,动作)越应该被选择

策略迭代是通过策略评估策略改善两个分步骤来进行的,使用的是贝尔曼方程

值迭代只有一个步骤,使用的贝尔曼最优方程

如果不满足马尔科夫性,强行只用当前的状态来决策,势必导致决策的片面性,得到不好的策略。 为了解决这个问题,可以利用RNN对历史信息建模,获得包含历史信息的状态表征。表征过程可以 使用注意力机制等手段。最后在表征状态空间求解MDP问题。有点类似POMDP的感觉

有模型 无模型

有模型:策略迭代,值迭代

无模型:MC,TD

有模型方法。通过建立好的MDP模型(状态转移,奖励)和状态转移方程(贝尔曼方程)对于值函数表进行更新

无模型方法。采样整个序列,然后再进行更新(首次遇见,次次遇见)

无模型方法。也是采样整个序列,但是在决策序列的每一步都可以进行更新

动态规划属于有模型强化学习的范畴,蒙特卡洛和TD都属于无模型的范畴。

蒙特卡洛和TD都需要通过采样来获取数据进行学习

蒙特卡洛需要采样整个样本序列,无偏差,但是方差大

TD只需要采样一个动作,偏差大,但是方差小

MC是,TD不是

MC方差大,采样多

off可以使用不同的数据收集和策略评估更新策略,更加灵活,更加通用,但是采样效率低,而且会产生分布偏移问题,需要采用重要性采样来进行调整

采样几步之后在更新,n变大,偏差变小方差变大

λ=0 单步时序差分

λ=1 蒙特卡洛方法

sutton书

value-based的方法是先通过计算出值函数,然后再求策略policy-based的方法则是直接计算策略,更加直接,收敛速度更快,但是也更容易达到局部最优

value-based的方法方差小偏差大,policy-based方法无偏差方差大

value-based的方法一般用来解决离散动作问题,policy-based方法一般用于解决连续动作问题

replay buffer

目标网络

减少关联性,保证神经网络数据独立同分布,保留好较好的数据

前面有,可以根据s,a推,也可根据t推

最后的得出基于序列数据进行更新的REINFORCE方法

前面有

神经网络有数据独立同分布假设

有奖励延迟

奖励如果设置为是否赢得比赛,则是延迟奖励

double dqn:加一个target q net,用eval q选择q最大的a,用target q计算q值,用来缓解q值的过估计问题;

dueling dqn:引入状态奖励

n-step q:用n-step TD缓解q值估计的偏差;

PER dqn:用带优先级的经验回放,增加样本的学习利用率,增加探索性;

c51:用分布z代替标量来估计q值,实际中用直方图的形式来表示z;

nosiy dqn:用网络参数空间的噪声代替epsilon-greedy,增加探索性,探索的更平滑。

rainbow:集合上面全部的trick。还有分位数回归dqn、IQN。。。

DQN有一个显著的问题,就是DQN估计的Q值往往会偏大。这是由于我们Q值是以下一个s'的Q值的最大值来估算的,但下一个state的Q值也是一个估算值,也依赖它的下一个state的Q值...,这就导致了Q值往往会有偏大的的情况出现。

们在同一个s'进行试探性出发,计算某个动作的Q值。然后和DQN的记过进行比较就可以得出上述结论。

这种欺上瞒下的做法,实在令人恼火。于是有人想到一个互相监察的想法。

这个思路也很直观。如果只有一个Q网络,它不是经常吹牛嘛。那我就用两个Q网络,因为两个Q网络的参数有差别,所以对于同一个动作的评估也会有少许不同。我们选取评估出来较小的值来计算目标。这样就能避免Q网络吹牛的情况发生了。

另外一种做法也需要用到两个Q网络。Q1网络推荐能够获得最大Q值的动作;Q2网络计算这个动作在Q2网络中的Q值。

恰好,如果我们用上Fixed Q-targets,我们不就是有两个Q网络了吗?

所以你可以看到,这个优化在DQN上很容易实现。这就是doubleDQN和DQN的唯一的变化。

不能包含a(不引入偏差),可以减少方差

利用DQN的框架,引入了replay buffer和目标网络

是一种确定性策略的方法,回报期望的导数中不包含重要性采样项

Actor-Critic方法结合了基于值的方法(Critic)和基于策略梯度的方法(Actor),由于借用了基于值的方法,使得其可以进行单步更新。

提供对于actor中策略更新时对于值函数的估计,可以单步更新。

这也是其与普通的policy-based方法的区别,AC系列方法要求值函数Critic部分必须有估计误差

off-policy

类似于DQN,采集数据放到replay buffer中然后进行学习,采集数据采用的策略和学习的策略是不同的

DDPG的分布式版本

Actor收集数据序列(n步奖励更新)

Learner进行训练

多个Actor进行与环境交互,并计算梯度,随后每一个Actor周期性暂停学习,与中央参数服务器交互更新参数。

on-policy,因为在本地进行的梯度计算

每一个Actor周期性暂停学习,与中央参数服务器交互更新参数

GA3C并不在Actor本地计算梯度,Actor只负责产生数据

Q-A

解决分布偏移问题

目标策略是用于优化的策略,是评估QV值时使用的策略

基于重要性采样的MC:

重要性采样系数:

基于重要性采样的TD:

=============================================================

下面我们分析下TD的重要性采样,理解行为策略如何向目标策略靠拢:

当,即两策略在状态时选择的概率一致,不需要矫正

当,即行为策略b的在状态时选择动作的概率要比目标策略高,那么小于1的重要性采样系数就会降低基于行为策略b得到的时序差分目标,从而引导代理后续降低行为策略b在状态时选择动作的概率。

当,即目标策略状态时选择动作的概率要比行为策略b高,那么大于1的重要性采样系数就会进一步增强基于行为策略b得到的时序差分目标,从而引导代理后续提高行为策略b在状态时选择动作的概率。

注意,当不为0而为0时,重要性采样不可用。

引入优势函数

引入优势函数,并通过置信域方法进行优化

最大KL散度有无数个,不好进行计算

升级版,更加简单,有两种

第一种,clip版

第二种,直接将约束加入优化目标

PPO是DPPO的基本元素,DPPO是分布式强化学习算法。

显示全文

注:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意

点击下载文档

文档为doc格式

发表评论

评论列表(7人评论 , 39人围观)

点击下载
本文文档