首页 AI学术青年与开发者社区

DQN的control

使用Q-learning 当状态空间和动作空间是离散且维数不高,使用Q-table存储每个pair的Q值

使用DQN:当状态空间和动作空间是高位连续时候;使用Q-table来存储Q值难度太大

使用DQN 化简,类似于MC、TD、Q-learning采用交替的策略,这里值函数的近似,通过神经网络初始化参数,通过e-greedy获得agent 动作,获得动作和环境交互,通过近似神经网络计算,最后获得最优。参数w,使用e-greedy 改进方式。

deep learning 和RL 结合存在问题:

DL 是监督学习需要训练集,强化学习不需要训练集只通过环境进行返回奖励值reward,同时也存在着噪声和延迟的问题,所以存在很多状态state的reward 都是0也就是样本稀疏

DL每个样本互相独立,而RL当前状态的状态值是依赖后面的状态返回值 ;当我们使用非线性网络来表示值函数的时候可能出现不稳定的问题。

基于马尔克夫决策过程,前后之间相互依赖,依赖性如何解决?非线性不稳定如何解决?边更新边用不稳定。

DQN的control

解决方法:

借鉴Q-learning方法,使用reward来构造标签;通过experience replay 经验池的方法来解决相关性及非静态分布问题;使用一个MainNet产生当前Q值,使用另外一个Target产生Target Q.

首先考虑Q-learning agent采样后获得episode 学习得到Q值,然后把每一个对应的Q值更新Q表,然后扔了当前episode 不断重复。

experience Replay: DRL中,没有内存存储Q表,需要查找算法,先交互放到Replay Buffer,不直接参与运算,只作为存储,没有查找,每次都是取episode,之后计算label的groundtruth 的Q值直接采样即可。Q-learning中当前状态获得的reward存储下来,只要两个Q值可以计算就可以计算了,每次学习采样一定的episode,学习获得收敛;这样保证不同的相互依赖的,Q值更新得到两个状态,根据马尔克夫性,只存储两个状态是合理的。

Q-target :由于我们Q值得更新有神经网络的参数更新而定,因此在神经网络学习的过程中需要有一个groundtruth作为目标,而产生这个真实Q值得网络称为Q-target

Agent 和环境交互得到很多episode,存到replay,每次通过replay的采样,采样batch次数,一般自己设置为32,64.进入神经网络后得到Q值,送入Qtarget,得到Q真实值,对Qnet求导,这个网络参数,这个网络参数等于w规定时期才更新,平常不更新

Q值函数的近似q(S,A,w)=qπ(S,A),随即梯度下降找local min

如果是特征向量,因为最后输出是线性的全连接层,那么代表的是参数,*特征向量;target替代真实qπ;TD(λ) 反向传播不同

DQN experience replay fixed Q-targets

初始化参数,采样batch 动作,存到四元组,使用随机梯度算法替换w,DQN in Atari 最早用于该小游戏,像人类一样玩;end-to-end learning of values Q(s,a) form pixels last 4 frames 保证连续;output Q(s,a) 18 joystick/button positions

Reward 是 change in score

三层卷积神经网络+2层全链接构成Q值函数,图像数据不固定,多几层全连接,直接向量级;若3层提取浅层特征;有些情况需要更多层。训练效果 Replay Fixed-Q效果最好

 

Double Q learning 考虑DQN参数更新,使用max操作时候估计的值函数的值比真实值函数的值要大一些,因此这就产生了过估计问题。

考虑overestimation 如果值函数每一点的值都被过估计了相同的幅度,最优策略是贪婪策略,即找到最大Q值对应的动作,这是不影响我们获得最优策略

因为RL目标——获得最优策略,不是得到值

就算Q值被过估计了,如果每一点过估计的值均匀,不影响最终决策

Double Q learning 更新表达式改进 选择动作:将动作的选择和动作的评估分别用不同的值函数来实现

[展开全文]
PoleToWinF1 · 2019-07-02 · Deep Q network 0

授课教师

暂无教师
微信扫码分享课程