经验回放(Experience replay)

Experience replay 经验回放

根据论文2017 EMNLP中Learning how to Active Learn: A Deep Reinforcement Learning Approach利用强化学习来解决主动学习问题

“we use an experience replay memory M to store each transition (s, a, r, s') as it is used in an episode, after which we sample a mini-batch of transitions from the memory and then minimize the loss function...”

使用Deep Q-learning方法,从每一episode中得到的奖励来迭代更新Q(s,a). DQN算法中,(具体方法后续更出)继将每一个episode中使用的(s,a,r,a')存储于M中,再从M中抽取mini-batch转换来最小化损失函数。

基于价值的深度强化学习不仅仅是把 Q-Learning 中的价值函数用深度神经网络近似,还做了其他改进。

这个算法就是著名的 DQN 算法,由 DeepMind 在 2013 年在 NIPS 提出。DQN 算法的主要做法是 Experience Replay,其将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。

experience_replay

Experience Replay 的动机是:1)深度神经网络作为有监督学习模型,要求数据满足独立同分布,2)但 Q Learning 算法得到的样本前后是有关系的。为了打破数据之间的关联性,Experience Replay 方法通过存储-采样的方法将这个关联性打破了。

主要作用是克服经验数据的相关性(correlated data)和非平稳分布(non-stationary distribution)问题。它的做法是从以往的状态转移(经验)中随机采样进行训练。优点:1. 数据利用率高,因为一个样本被多次使用。2. 连续样本的相关性会使参数更新的方差(variance)比较大,该机制可减少这种相关性。注意这里用的是随机采样,这也给之后的改进埋下了伏笔。摘自博客

在用mini-batch SGD做优化时,都假设样本之间相对独立,每一次根据所获得的(s_t,a_t,r_t,s_{t+1})来更新Q-value,本质就是stochastic gradient descent (SGD)。一般在用mini-batch SGD做优化时,都假设样本之间的相对独立,从而使得每个mini-batch内数据所含的噪声相互抵消,算法收敛的更快。

在这个问题中,之所以加入experience replay是因为样本是从游戏中的连续帧获得的,这与简单的reinforcement learning问题(比如maze)相比,样本的关联性大了很多,如果没有experience replay,算法在连续一段时间内基本朝着同一个方向做gradient descent,那么同样的步长下这样直接计算gradient就有可能不收敛。因此experience replay是从一个memory pool中随机选取了一些 experience,然后再求梯度,从而避免了这个问题。摘自知乎回答

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值