最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

李宏毅深度强化学习课程: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:23824

评论

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

浅析低代码平台

这我可不懂

低代码 JNPF

19家游戏伙伴参加鸿蒙原生游戏合作仪式,与华为游戏中心一起推动产业自主创新和高质量发展

新消费日报

理解Mysql索引原理及特性

快乐非自愿限量之名

MySQL 开发 检索 检索引擎

华为云CodeArts Repo常见问答汇总

华为云PaaS服务小智

华为云

项目实战接口开发SpringBoot

不在线第一只蜗牛

springboot 项目开发 区块链项目开发

管理 Kubernetes 集群这3年,我踩过的十个坑

高端章鱼哥

Kubernetes 计算机

华为云CodeArts Pipeline常见问答汇总

华为云PaaS服务小智

华为云

这就是univer

梦数技术团队

typescript 前端 React Hydrate Vue3 Typescript

【案例分享】 小鹅通|渐进式拥抱 DevOps

CODING DevOps

DevOps

日志 | AI工程化部署

AIWeker

c AI AI工程化部署

Go 与 Rust:现代编程语言的深度对比

互联网工科生

Go rust

八个开源免费网页截图/录制工具

这我可不懂

开源 网页截图 录制

低代码开发如何快速构建AI应用

不在线第一只蜗牛

人工智能 AI 低代码

如何建设财务共享驱动下的企业全面预算管理

智达方通

全面预算管理 财务共享

luchysheet升级版univer产品介绍会

梦数技术团队

typescript 前端 Vue3 Typescript

凝心聚力 共赢计算新时代 ——2023计算产业生态大会在京圆满举办

彭飞

诚邀报名|聚焦项目管理和社区协作,解读开源治理前沿见解和最佳实践

开放原子开源基金会

Java 开源 程序员 开发者 算法

软通咨询彭智勇(上):探索供应链金融创新路径,驱动产业破局

软通咨询

数字化转型 供应链金融 数字化咨询 管理咨询

AI大模型驱动的教育变革与实践

EquatorCoco

人工智能 AI 教育 大模型

诚邀报名 | GPT驱动的新程序员时代,开发者如何编程?

开放原子开源基金会

Java 开源 程序员 开发者 算法

开源工单管理系统有哪些?2024年顶级工单管理系统

PingCode

工单管理系统 工单管理

代币开发:释放代币开发服务力量的 10 个秘密

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

诚邀报名 | AI 向量、云原生、开源,今年的数据库热点技术都在这里

开放原子开源基金会

Java 开源 程序员 开发者 算法

Axie Infinity 之后,Ronin 的潜力何在?

Footprint Analytics

区块链 以太坊 Web3 游戏 Ronin

开发体育赛事直播平台下一个里程碑,趣猜比分预测功能扩展

软件开发-梦幻运营部

AI数字人主播终于“合法”!

青否数字人

数字人

JVM调优

快乐非自愿限量之名

测试 JVM 调优

SD-WAN实现MPLS成本降低

Ogcloud

网络 SD-WAN MPLS 专线网络

文心一言 VS 讯飞星火 VS chatgpt (157)-- 算法导论12.3 4题

福大大架构师每日一题

福大大架构师每日一题

AI数字人“入侵”直播间,数字人主播前景如何?

青否数字人

数字人

光纤的跳线和尾纤

小齐写代码

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