Deep Q-learning学习笔记

Q-learning作为典型的value-based algorithm,训练出来的是critic(并不直接采取行为,评价现在的行为有多好),因此提出了state value function的概念,方便对每个状态进行评估
Policy-based是不断的增加reward高的行为发生的概率,而Q-learning是不断的寻找新的actor使得V增大,具体的分类见deeprl 基础
Q-learning要解决的最首要问题是如何估计state value function

如何估计每个状态的Value

目前主流有两种方法

MC:蒙特卡洛

完整的玩完一整局的游戏,然后对期间出现过的状态进行统计,从该状态开始计算在之后的所有时间里获得的reward,就是他的value 在这里插入图片描述
缺点:必须将一个episode玩完才能得到结果,如果游戏非常长则不能得到多少有效数据。而且,采样不是无穷多的,很可能一些重要样本没采到,那么训练损失会很大。

TD:Temporal-difference (TD) approach

迅速更新value-function,无需等待整局游戏的结束,但是在state s t s_t st出现的时候,要估计在这之后他会获得的reward,因此可能会不准确。
在这里插入图片描述

compare MC VS TD

在这里插入图片描述
知道了如何估计value-function,现在可以正式介绍何为Q-function

Q-function

通常情况下,输入一个状态state,一个action,Q-function将他们映射到一个值上,表示当前情况的value在这里插入图片描述
Q:在state s这里采取的action不一定就是a,但是我们强制采取action a得到的然后让他自由的玩下去看他会得到多少reward。
有两种写法
(1)左侧是标准写法输入s,a预测Q值
(2)右侧对于discrete action才能用,输出一堆值对应着每个可能的action。

Q-learning

在这里插入图片描述
其实并不存在新的π’,这个π’只是通过argmax运算Q-value得出来的一系列action组成的π。即有Q就能找到π’。而且理论上,一定可以找到找到一个新的π’,这个π’一定比原来的π更好 。

Tips 1:target network

本来是一个network,左侧的network参数变化,右侧网络参数同样会变化,这种target变化的情况不好训练,因此将右侧的网络进行固定。将左侧网络训练N次之后,再更新右侧的网络参数。也就是不要他们一起动。(一开始两个network其实是一样的)
本来是一个network,左侧的network参数变化,右侧网路哦参数同样会变化,这种target变化的情况不好训练,因此将右侧的网络进行固定。将左侧网络训练N次之后,再更新右侧的网络参数。也就是不要他们一起动。(一开始两个network其实是一样的)

Tip2:Exploration

在这里插入图片描述
利用这个action更新公式会有一个问题,一开始全都没有sample,Q值都是0,这时sample到了a2,之后a2会被一直select,其他的没有任何的机会。这时候用policy-gradient就没法更新,根本没有搜集到有效的数据。

在这里插入图片描述
sample到的数据多了后,actor就越来越有把握,也就可以变小(noise on action),这是一种随机的乱试,不是完全按照Q-function一直进行的,比较奇怪。

在这里插入图片描述
在一个episode的开始加上noise,中间保持不变,(noise on parameters),系统的进行尝试,explore in a consistant way

在这里插入图片描述
有点像policy-gradient,越厉害的action几率越高,Q-value有正有负,即使很差的我们也给他一个几率。保证采样比较全面

3.Tip3:Replay Buffer

在这里插入图片描述
1、不断的与环境进行互动,将经验存在buffer中,一般buffer会比一个episode中产生的所有数据大很多,也就是存着很多组数据。满的时候丢弃旧的。
2、在每一个interation中,sample很多data(包括很多过去的资料),更新Q。
3、(1)RL最费时的是与环境做互动,train的速度很快,这样可以将历史数据进行多次利用。(2)我们希望用来训练的数据diverse,而很和数据就很diverse。
4、问题:当前的π和历史的π显然都不一样,用历史数据训练当前数据?
是可以的,experience只是搜寻了某个场景采取的动作会收获的奖励,并不涉及具体的π,因此不必要和π保持统一,可以用来训练。

Algorithm

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值