【深度强化学习 二】Q-Learning小技巧(2)(李宏毅老师学习视频笔记)

深度强化学习进阶
本文深入探讨了深度强化学习的改进方法,包括DoubleDQN、DuelingDQN、PrioritizedReply、Multi-step、NoisyNet等策略,以及针对连续动作空间的Q-learning应用。通过这些方法,可以有效解决Q值过估问题,提高学习效率。

首先放视频地址李宏毅老师深度强化学习视频
上一篇初识Q-Learning讲了一些基础知识,本篇记录改进内容。

Double DQN

在DQN中,Q值总是会被高估,因为 Q ( s t , a t ) Q\left(s_{t}, a_{t}\right) Q(st,at)的target是 r t + max ⁡ a Q ( s t + 1 , a ) r_{t}+\max _{a} Q\left(s_{t+1}, a\right) rt+maxaQ(st+1,a),估计的Q值中某个action的值偏高,在max操作时就很可能会选到这个。这样会导致Q值越估越大。因此有了Double Q-Learning的思想,即选取action的Q网络不变,选出action后,用另外一个网络 Q ′ Q^\prime Q计算Q值。即target 为 r t + Q ′ ( s t + 1 , arg ⁡ max ⁡ a Q ( s t + 1 , a ) ) r_{t}+Q^{\prime}\left(s_{t+1}, \arg \max _{a} Q\left(s_{t+1}, a\right)\right) rt+Q(st+1,argmaxaQ(st+1,a))这样就可以避免overestimate问题。在实作时,其实只需要里面max Q使用更新的network, Q ′ Q\prime Q使用DQN中的target network。而不需要再增加新的网络。

Dueling DQN

这个tip是改network的架构,
Dueling DQN
这样有时候直接改 V ( s ) V(s) V(s)的值,就可以改变整个 Q Q Q,为了使网络更倾向于改 V V V而不是 A A A,文章给 A A A加了一些限制,比如某状态下 A A A值之和为零。这点在实作时就是加上了一个Normalization。

Prioritized Reply

改变从经验池里的采样方式。比如TD-error比较大的transition要较大概率地被采样到。

Multi-step(Balance MC and TD)

在TD方法中,我们只需要存下transition ( s t , a t , r t , s t + 1 ) \left(s_{t}, a_{t}, r_{t}, s_{t+1}\right) (st,at,rt,st+1),现在可以改成记录n-step的transition,如 ( s t , a t , r t , ⋯   , s t + N , a t + N , r t + N , S t + N + 1 ) \left(s_{t}, a_{t}, r_{t}, \cdots, s_{t+N}, a_{t+N}, r_{t+N}, S_{t+N+1}\right) (st,at,rt,,st+N,at+N,rt+N,St+N+1),这样网络更新的设计就变为:

Muiti-step

Noisy Net

Noise on Action (Epsilon Greedy)

就像上一节讲过的,在Action上加一个随机扰动。
a = { arg ⁡ max ⁡ a Q ( s , a ) ,  with probability  1 − ε  random,   otherwise  a=\left\{\begin{array}{cl} \arg \max _{a} Q(s, a), & \text { with probability } 1-\varepsilon \\ \text { random, } & \text { otherwise } \end{array}\right. a={argmaxaQ(s,a), random,  with probability 1ε otherwise 
这样给定同一个state,agent可能采用不同的action。

Noise on Parameters

a = arg ⁡ max ⁡ a Q ~ ( s , a ) a=\arg \max _{a} \tilde{Q}(s, a) a=argamaxQ~(s,a)
其中, Q ~ ( s , a ) \tilde{Q}(s, a) Q~(s,a)是用加噪声后的网络。
这种方法当遇到相同的state时,agent就会采取相同的action。(同一个episode,加的noise不变),称之为State-dependent Exploration。

Distributional Q-function

我们算的 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)其实是一个分布的期望,但是不同的分布(可能相差很大)的期望可能相同,这样用期望可能会损失一些信息。Distributional Q-function输出的不再是期望,而直接是原始的分布。这样能看到更细节的信息,比如某个 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)期望很大,方差也很大,表示采取这个行为平均收益较大,但也有很大的风险。

Q-Learning for Continuous Action

连续动作空间下不容易选出 a = arg ⁡ max ⁡ Q ( s , a ) a=\arg \max Q(s, a) a=argmaxQ(s,a),有以下几种思路:

  1. 采样法:

    采样n个action,选出做大。这样不够精确。

  2. 利用梯度上升算法,parameter为a

    运算量太大

  3. 重新构造网络使得
    在这里插入图片描述
    Q ( s , a ) = − ( a − μ ( s ) ) T Σ ( s ) ( a − μ ( s ) ) + V ( s ) Q(s, a)=-(a-\mu(s))^{T} \Sigma(s)(a-\mu(s))+V(s) Q(s,a)=(aμ(s))TΣ(s)(aμ(s))+V(s)
    这样就能满足 μ ( s ) = arg ⁡ max ⁡ a Q ( s , a ) \mu(s)=\arg \max _{a} Q(s, a) μ(s)=argmaxaQ(s,a)

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值