【李宏毅2020 ML/DL】P112-114 Q-Learning: Introduction Tips Continuous Actions
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
关于强化学习,我专门花半年时间学习实践过,因此这里笔记只记录李老师的 outline 。我的强化学习资源仓库:
https://github.com/PiperLiu/Reinforcement-Learning-practice-zh
我的 CSDN 强化学习博客集合:
https://blog.csdn.net/weixin_42815609/category_9592110.html
本节内容综述
- 今天的内容分为 3 部分:Introduction of Q-Learning、Tips of Q-Learning 以及 Q-Learning for Continuous Actions 。
- Q-Learning 是一个 value-based 的方法,李老师将其比喻成,是在学习 Critic (毕竟李老师是先从 PG 开始讲的)。
- How to estimate Vπ(s)V^\pi (s)Vπ(s) ,可以用 Monte-Carlo based approach 或者 Temporal-difference approach 。比较了 MC 与 TD 的差别:MC 的 variance 较大;但是 TD 的 VVV 可能不准。
- 在 Q-Learning 中,没有所谓的 π\piπ ,用的是 QQQ 对 π\piπ 进行描述。
- 讲了几个基本的 Tips ,在 DQN 的原始文章中都有提到过。
- 接着,介绍了一些高阶的 DQN 的 tips 。
- 接下来,介绍了 Continuous Actions 。
文章目录
- 本节内容综述
- 小细节
- basic tips
- Target Network
- Exploration
- Replay Buffer
- Tips of Q-Learning
- Double DQN
- Why
- Dueling DQN
- Why
- How
- Prioritized Reply
- Multi-step
- Noisy Net
- Distributional Q-function
- Rainbow
- Continuous Actions
- Design a network
- AC
小细节
basic tips
Target Network
如上,在训练时,通常会使用一个 Target Network 。
Exploration
使用 a=argmaxaQ(s,a)a = arg \max_a Q(s,a)a=argmaxaQ(s,a) 进行探索,并不是一个好的选择,对于采样来说。
Replay Buffer
如上,值得注意的是,buffer 中有不同策略的经验;因此这是一个 Off-policy 的训练。
Tips of Q-Learning
Double DQN
如上,Q-value 容易被“高估”,超过实际的值。
Why
如上,为什么 Q-value 总是被高估呢?上面有四个动作,其总会选择被高估的动作。
如上,用两个 Q ,如果 Q 高估了,但是 Q’ 没有高估,二者互补。在实际操作中,目标网络就是第二个 Q 。
Dueling DQN
Dueling DQN 只是改了网络的架构。
如上,其将 V(s)V(s)V(s) 与 A(s,a)A(s,a)A(s,a) 拆开输出,并且 Q(s,a)=A(s,a)+V(s)Q(s,a) = A(s,a) + V(s)Q(s,a)=A(s,a)+V(s) 。
Why
我们在训练时,修正的是 QQQ 的值,假设我们只修正了两个 action 的值,但是神经网络可能自动地修正了 VVV 的值,因此,这个状态下的其他动作的值也随之被泛化。
为了达到如上效果,一般来讲,我们会做一些约束,让其拥有泛化效果:让 A 的列的和为 0
。让网络倾向于改变 V 来解决问题。
How
如上,实作中,我们会在 A+VA+VA+V 前,对 AAA 的输出做一个 Normalization 。
Prioritized Reply
如上,有些数据,带来的 TD error 较大;实际上,这些数据是比较重要的,因此,要给其较高的可能性,让其容易被采样到。
此外,我们还可能因此更改更新式
。
Multi-step
如上,即 n 步自举,结合了 MC 与 TD 。
Noisy Net
在每一 episode 开始时,对 Q function 加 noise 。
如上,为网络添加参数,实际上是一种“有系统地尝试”。
Distributional Q-function
这个用的不多。
我们的 Q 是一个期望值,但是,不同的分布可能有同一个期望值。
因此,我们不输出 Q 值,直接输出 Q 的分布。
Rainbow
如上,Rainbow将上述方法结合,比较强。
Continuous Actions
如上,有两个直观的思路:
- 列出一些 a ,找最大的;
- 用梯度上升找最优解。
上述两个方法成本都很高,因此,提出第 3 种方法,设计一种结构。
Design a network
如上,输入sss,网络会输出 3 个东西:μ\muμ,Σ\SigmaΣ与VVV。
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)
得到这 三个变量后,再进行如上公式的计算,其中带入了 aaa ,aaa 是一个向量,代表一个动作。
最终,QQQ 是一个数,就是 Q-value 的值。
那么,如何求出最大的动作向量的值呢?
观察到上式中,第一项一定是小于等于 0 的
(因为之前输出Σ\SigmaΣ是做了些正则,具体见原论文);那么我们令 a−μ(s)=0a-\mu(s)=0a−μ(s)=0 即可,则最终 μ(s)=argmaxaQ(s,a)\mu(s)=arg \max_a Q(s,a)μ(s)=argmaxaQ(s,a)。
AC
此外,还有 AC 方法也可以解决这个问题。
【李宏毅2020 ML/DL】P112-114 Q-Learning: Introduction Tips Continuous Actions相关推荐
- 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P66 Self-supervised Learning
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课四十分钟,由助教 Chi-Liang Liu 讲解 Self-Supervised Lea ...
- 【李宏毅2020 ML/DL】P88-96 Meta Learning – MAML | Reptile
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 元学习就是 Learn to learn ,让机器变成 a better learner .Me ...
- 【李宏毅2020 ML/DL】P85 Transfer Learning
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 要做一项任务,但是数据不直接与任务相关.这就涉及到了迁移学习.在现实生活中,我们其实不断在做&q ...
- 【李宏毅2020 ML/DL】P60-61 Unsupervised Learning - Deep Generative Model
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P57 Unsupervised Learning - Linear Methods | PCA Matrix Factorization
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P22 Unsupervised Learning - Word Embedding
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P79 Generative Adversarial Network | Tips for improving GAN
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 这是我的李宏毅老师 GAN 系列第6篇笔记,GAN 系列: 1:Basic Idea 2:Conditiona ...
- 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...
最新文章
- js 跨页面的全局变量
- 找出数组中不重复的值php_PHP查找数值数组中不重复最大和最小的10个数的方法...
- deploy java eclipse_使用eclipse的mvn deploy部署本地包到maven私有库
- linux双机ssh互信方法总结
- PHP 入门 - 2.函数
- 用积木做了个无人机。
- C# 常用接口学习 IEnumerableT
- Vue3项目 --- Mock.js模拟数据测试
- 【Plesk经验分享】无法创建备份怎么办?
- matlab 简介_MATLAB简介
- 小米便签源码分析——data包
- 本科生毕业论文(设计)撰写规范
- TDSQL TCA 分布式实例特点初探--分布表和SQL透传
- 常微分方程各种类型方程表格汇总
- WDM和OTN技术简介
- 多点触摸画板(MultiTouchCanvas)
- 北斗GPS系统在车辆管理系统中的运用与北斗GPS车辆管理调度系统平台建设方案硬件设备
- MFC C++知道当前日期,求昨天或前天的日期
- opc读取ab的plc数据_AB PLC通过opc方式连接的方法
- 人工智能之高等数学1
热门文章
- 关于LIMIT(超出界限时,SQL执行也没有问题,而且结果集中只会到有数据的最后一条记录,不会出现空,已经过测试)
- 学html需要什么软件,在上海学html需要学什么软件?
- 【Oracle】分区表中索引状态为N/A
- 解决导出CSV后在EXCEL打开纯数字前面0丢失问题
- mysql union (all) 后order by的排序失效问题解决
- LINUX下解决netstat查看TIME_WAIT状态过多问题
- 为什么我们使用volatile关键字? [重复]
- Laravel 5无法打开所需的bootstrap /../ vendor / autoload.php
- 生成主键ID,唯一键id,分布式ID生成器雪花算法代码实现
- history.go(-1)返回页面后,此页面中的input标签隐藏域中的值消失