强化学习笔记4

Q学习

1、基本概念

DQN(Deep Q-Network): 基于深度学习的Q-learning算法,其结合了 Value Function Approximation(价值函数近似)与神经网络技术,并采用了目标网络(Target Network)和经历回放(Experience Replay)的方法进行网络的训练。
State-value Function: 本质是一种critic。其输入为actor某一时刻的state,对应的输出为一个标量,即当actor在对应的state时,预期的到过程结束时间段中获得的value的数值。
State-value Function Bellman Equation: 基于state-value function的Bellman Equation,它表示在状态 s_t下带来的累积奖励 G_t的期望。
Q-function: 其也被称为state-action value function。其input 是一个 state 跟 action 的 pair,即在某一个 state 采取某一个action,假设我们都使用 actorπ ,得到的 accumulated reward 的期望值有多大。
Target Network: 为了解决在基于TD的Network的问题时,优化目标
在这里插入图片描述
左右两侧会同时变化使得训练过程不稳定,从而增大regression的难度。target network选择将上式的右部分即 r_t​ +Qπ(s_(t+1),π(s
(t+1)) 固定,通过改变上式左部分的network的参数,进行regression。也是一个DQN中比较重要的tip。
Exploration: 在我们使用Q-function的时候,我们的policy完全取决于Q-function,有可能导致出现对应的action是固定的某几个数值的情况,而不像policy gradient中的output为随机的,我们再从随机的distribution中sample选择action。这样会导致我们继续训练的input的值一样,从而”加重“output的固定性,导致整个模型的表达能力的急剧下降,这也就是探索-利用窘境(Exploration-Exploitation dilemma)问题。所以我们使用Epsilon Greedy和 Boltzmann Exploration等Exploration方法进行优化。
Experience Replay(经验回放): 其会构建一个Replay Buffer(Replay Memory),用来保存许多data,每一个data的形式如下:在某一个 state s_t,采取某一个action a_t, 得到了 reward r_t,然后跳到 state s
(t+1)。我们使用 π 去跟环境互动很多次,把收集到的数据都放到这个 replay buffer 中。当我们的buffer”装满“后,就会自动删去最早进入buffer的data。在训练时,对于每一轮迭代都有相对应的batch(与我们训练普通的Network一样通过sample得到),然后用这个batch中的data去update我们的Q-function。综上,Q-function再sample和训练的时候,会用到过去的经验数据,所以这里称这个方法为Experience Replay,其也是DQN中比较重要的tip。

问题
1、为什么在DQN中采用价值函数近似(Value Function Approximation)的表示方法?
答:首先DQN为基于深度学习的Q-learning算法,而在Q-learning中,我们使用表格来存储每一个state下action的reward,即我们前面所讲的状态-动作值函数 Q(s,a)Q(s,a) 。但是在我们的实际任务中,状态量通常数量巨大并且在连续的任务中,会遇到维度灾难的问题,所以使用真正的Value Function通常是不切实际的,所以使用了价值函数近似(Value Function Approximation)的表示方法。

2、critic output通常与哪几个值直接相关?
答:critic output与state和actor有关。我们在讨论output时通常是对于一个actor下来衡量一个state的好坏,也就是state value本质上来说是依赖于actor。不同的actor在相同的state下也会有不同的output。

3、Q-function的两种表示方法?
答:当input 是 state和action的pair时,output 就是一个 scalar。
当input 仅是一个 state时,output 就是好几个 value。

4、解决探索-利用窘境(Exploration-Exploitation dilemma)问题的Exploration的方法有哪些?他们具体的方法是怎样的?
答:
Epsilon Greedy: 我们有1−ε 的机率,通常 ε 很小,完全按照Q-function 来决定action。但是有 ε 的机率是随机的。通常在实现上 ε 会随着时间递减。也就是在最开始的时候。因为还不知道那个action 是比较好的,所以你会花比较大的力气在做 exploration。接下来随着training 的次数越来越多。已经比较确定说哪一个Q 是比较好的。你就会减少你的exploration,你会把 ε 的值变小,主要根据Q-function 来决定你的action,比较少做random,这是Epsilon Greedy。
Boltzmann Exploration: 这个方法就比较像是 policy gradient。在 policy gradient 里面network 的output 是一个 expected action space 上面的一个的 probability distribution。再根据 probability distribution 去做 sample。所以也可以根据Q value 去定一个 probability distribution,假设某一个 action 的 Q value 越大,代表它越好,我们采取这个 action 的机率就越高。这是Boltzmann Exploration。

5、我们使用Experience Replay(经验回放)有什么好处?
答:
首先,在强化学习的整个过程中, 最花时间的 step 是在跟环境做互动,使用GPU乃至TPU加速来训练 network 相对来说是比较快的。而用 replay buffer 可以减少跟环境做互动的次数,因为在训练的时候,我们的 experience 不需要通通来自于某一个policy(或者当前时刻的policy)。一些过去的 policy 所得到的 experience 可以放在 buffer 里面被使用很多次,被反复的再利用,这样让你的 sample 到 experience 的利用是高效的。
另外,在训练网络的时候,其实我们希望一个 batch 里面的 data 越 diverse 越好。如果你的 batch 里面的 data 都是同样性质的,我们的训练出的模型拟合能力不会很乐观。如果 batch 里面都是一样的 data,你 train 的时候,performance 会比较差。我们希望 batch data 越 diverse 越好。那如果 buffer 里面的那些 experience 通通来自于不同的 policy ,那你 sample 到的一个 batch 里面的 data 会是比较 diverse 。这样可以保证我们模型的性能至少不会很差。

6、在Experience Replay中我们是要观察 π 的 value,里面混杂了一些不是 π 的 experience ,这会有影响吗?
答:没关系。这并不是因为过去的 π 跟现在的 π 很像, 就算过去的π 没有很像,其实也是没有关系的。主要的原因是我们并不是去sample 一个trajectory,我们只sample 了一个experience,所以跟是不是 off-policy 这件事是没有关系的。就算是off-policy,就算是这些 experience 不是来自于 \piπ,我们其实还是可以拿这些 experience 来估测 Q^π(s,a)。

7、DQN(Deep Q-learning)和Q-learning有什么异同点?

答:整体来说,从名称就可以看出,两者的目标价值以及价值的update方式基本相同,另外一方面,不同点在于:
首先,DQN 将 Q-learning 与深度学习结合,用深度网络来近似动作价值函数,而 Q-learning 则是采用表格存储。
DQN 采用了我们前面所描述的经验回放(Experience Replay)训练方法,从历史数据中随机采样,而 Q-learning 直接采用下一个状态的数据进行学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值