问题1:什么是DQN算法?
DQN 是指基于深度学习的 Q-learning 算法,主要结合了值函数近似 (Value Function Approximation)与神经网络技术,并采用了目标网络和经历回放的方法进行网络的训练。
首先,初始化两个网络Q估计、Q;接着,带有探索性的去获取一堆经验(st, at ,rt, st+1);然后,存储经验于buffer中;然后,从buffer中采样数据,计算目标 y = ri + max a Qˆ (si+1, a);然后,更新Q值,让Q接近目标值,更新C次之后,把Q估计设置为Q值。
问题2:为什么要提出DQN算法?
在 Q-learning 中,我们使用表格来存储每个状态 s 下采取动作 a 获得的奖励,即状态-动作值函数Q(s, a)。然而,这种方法在状态量巨大甚至是连续的任务中,会遇到维度灾难问题,往往是不可行的。因此,DQN 采用了价值函数近似的表示方法。
简述:target network
固定目标网络,即固定目标 rt + Qπ (st+1, π (st+1)) 的值,然后在做梯度下降的时候,只调另一个网络的参数,让模型的输出值跟目标值更接近,进而最小化它的均方误差 (mean square error),在更新 100 次以后把这个参数复制到目标网络中,更改目标值,重新训练。
简述:Experience Replay
Experience Replay 会构建一个 Replay Buffer,Replay Buffer 又被称为 Replay Memory。Replay Buffer 存放有来自不同策略的经验数据,Buffer 只有在它装满的时候,才会把旧的资料丢掉。
从这个buffer里面采样一堆经验,根据这些经验去更新 Q-function。