写点什么

李宏毅深度强化学习课程:Deep Q-learning Advanced Tips

  • 2019-12-02
  • 本文字数:1081 字

    阅读完需:约 4 分钟

李宏毅深度强化学习课程:Deep Q-learning Advanced Tips

DDQN


红色线表示 DQN 估计的 Q 值,发现都会比真实的 Q 值要高很多,那么是为什么会 Q 值会被高估?



假设现在有 4 个状态动作对,他们真实的 Q 值其实是相差不大的,但是因为在学习过程中,Q 值是一个估计值,总会有状态动作对的 Q 值会被高估,此时被高估的 Q 值就会被选择出来当做 target。



解决方法就是用两个 Q 值函数(一个是当前的值网络,一个是 target 网络),一个用作动作的选择,一个用作 target Q 值的估计。这样当 Q 值被高估后,选出相应的动作,但只要[公式] 不高估就行。另外一种情况是如果 [公式] 被高估,但是此时被高估的动作也不会被选择到(选择动作是根据另一个 Q 值选的)。


Dueling DQN



其实就是将输出 Q 值改为输出 V 值和 A 值。


那么这样有什么好处呢?



假设有两个 Q 值都希望+1,现在只能动 V 值和 A 值。现在可以让 V 值+1,那么所有的状态动作 Q 值都会改变,这样就不需要采样到所有状态动作对来更新所有的 Q 值,提高了样本的利用率。另外,必须对 A 值加 constraint,使得网络更新 A 值会比较复杂,而去倾向于更新 V 值。常做的方式是将一个动作的所有 A 值加起来为 0。



计算 Q 值的时候(V+A),先将 A 值做归一化。


Prioritized Reply



之前是从样本池中随机抽取一个 batch 训练数据,现在可优先选取 TD 误差较大的样本。TD 误差较大的样本训练价值更高,梯度会更大。


Multi-step



可结合使用 MC 和 TD 更新方法,之前 DQN 方法是存储一个时间步的转移样本 :[公式] ,现在存储 N 个时间步的转移样本。好处:sample 多个 step 的转移样本,Q 的估计值的准确性会提高,但是多个时间步的采样会导致方差变大。


Noisy Net



之前为了探索在动作上加 noise,现在可以在网络参数上加 noise。须注意的是 noise 必须在每个新的 episode 开始时加入,并且在每个 episode 期间没有动作的探索。



epsilon greedy 方法会有一个问题:在同个 state 下,可能会执行不同的动作。但是现实场景中合理的做法应该是同个 state 采取同一个 action。Noisy net 就会在同个 episode 中的同个 state 下,执行相同的动作。


Distributional Q-function



其实 Q(s,a)的值是有一个分布的,不同的分布可能会有同样的 mean 均值(当做 Q 值)。所以用 Q 来表示未来期望总奖赏会丢失一些信息。



直接输出每个状态动作对的 Q 值的分布,这样可以根据 Q 值分布获得很多额外信息,比如可根据动作 Q 值的分布的熵来决定要不要采取该动作??


Rainbow


结合上述的几个 tips




可发现,multi-step 和 priority 比较有用。


参考文献:


https://www.bilibili.com/video/av24


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/72994607


2019-12-02 16:231016

评论

发布
暂无评论
发现更多内容

华为云GeminiDB,广告RTA的“登云梯”

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云GeminiDB 企业号2024年4月PK榜

捷途山海T2探秘武夷山,这款旅行越野超混SUV直接拉满期待值

Geek_2d6073

IT行业网络安全守护者-行云管家云堡垒机

行云管家

网络安全 IT 数据安全 堡垒机

测试领域革新:ChatGPT助你轻松编写测试方案!

测试人

软件测试 自动化测试 测试开发 ChatGPT

测试方案有点难?ChatGPT助你轻松编写测试方案!

霍格沃兹测试开发学社

2024上海国际半导体产业展览会

AIOTE智博会

半导体展 半导体展会 半导体展览会 半导体博览会

再添一喜!行云管家堡垒机与人大金仓完成兼容性认证

行云管家

数据库 人大金仓 兼容 兼容认证

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(2)

HarmonyOS SDK

HarmonyOS

需求分析有点难,ChatGPT来帮你

霍格沃兹测试开发学社

NineData创始人&CEO叶正盛受邀参加『数据技术嘉年华』的技术大会

NineData

数据库 数据复制 实践 NineData 技术原理

Databend 开源周报第 139 期

Databend

面试官:Redis如何实现延迟任务?

王磊

Java 面试题

浅析如何加速商业业务实时化

百度Geek说

流式计算 企业号 4 月 PK 榜

探索未来产业:新技术、新商业、新趋势

天津汇柏科技有限公司

未来产业

透明LED屏幕如何设计效果更好?

Dylan

技术 设计 系统 LED LED显示屏

深入了解商品口碑:淘宝评论API助力消费者明智选择

技术冰糖葫芦

API Explorer API 文档 pinduoduo API

一次对Redis内存调整的过程

麦兜

redis

5.7打补丁—编译和官方一致的Linux_Generic包

GreatSQL

第46期 | GPTSecurity周报

云起无垠

李宏毅深度强化学习课程:Deep Q-learning Advanced Tips_语言 & 开发_Alex-zhai_InfoQ精选文章