状态很多和动作很多是有细微差别的两类问题,看到大家都提到了function approximation,这是用来处理状态很多情况的好方法,但是动作很多则需要一些额外的方法支撑。

当状态来自元素极多的离散集合(如下棋)时,或者根本就是个连续向量(如word embedding)时,用表格法存储会遇到两个大问题:1)这张表太大存不下来,2)样本太过稀疏基于采样的算法不收敛(curse of dims)。此时,function approximation是常用的解决手段。用一族参数化的函数来表达未知函数,只要参数数量不是很多就可以在实际系统中用起来。与此同时,参数化函数表达如果使用得当(e.g. 避免了overfitting)还可以有泛化的功能,减少了所需样本量。这一类方法在参数化函数的使用形式上很像regression问题。DeepMind提出的DQN ([1312.5602] Playing Atari with Deep Reinforcement Learning ) 就是上述方法的一个很现代的好例子,网上已经有way to many implementations,mine included (zaxliu/dqn4wirelesscontrol),欢迎交流。

动作元素极多的情况更tricky,但是因为没有大状态空间问题普遍所以以往的讨论较少。不普遍不代表不重要,例如自然语言序列到序列问题,就是状态与动作空间双高的例子,而实际世界的控制问题则大多是状态动作双连续的。

其实这里面也有两个问题:表示和搜索。大动作空间的表示与大状态空间异曲同工。为解释清楚,从David Silver课件里偷一张图,如果采用下图中间的action-in形式,那么动作和状态其实是等价的,e.g. 动作是图片就用CNN,动作是序列就用RNN。如果采用下图右侧的action-out形式,那么就需要采用相应的逆操作,比如图片用反卷积,序列用RNN decoder。

大动作空间的搜索是个更难的问题。例如在Q learning算法中,需要搜索当前状态s下所有动作里面Q值最大的那一个。当action space离散且很大的时候,基于遍历求max的时间复杂度显然是不能忍受的。此外,当action space是连续空间时,这个max是在非凸函数上求全局最大,难度可想而知。并且对于这个问题,我并不认为随机策略梯度(stochastic policy gradient)是什么良药,因为依旧需要遍历全部action space或者其中概率大于一定阈值的子集,因此使用起来往往需要搭配其他的方法。(例如Bahdanau的这篇文章 [1607.07086] An Actor-Critic Algorithm for Sequence Prediction 中就结合了beam search和策略梯度,还有AlphaGo中的蒙特卡洛树搜)

虽然对于巨大离散的动作空间尚无良药,但是在连续决策空间中这两年DeepMind又贡献了一些很有启发意义的工作。其一是确定性策略梯度(Deterministic Policy Gradient,DPG)。这个方法巧妙地用actor-critic架构求得一种新的策略梯度方向,可以很容易地和神经网络的BP梯度计算法结合。另一篇是[1603.00748] Continuous Deep Q-Learning with Model-based Acceleration ,则通过对value function进行局部的二阶正定近似假设,求得policy更新的闭式表达。遗憾的是连续决策空间中的工作均没有较好的理论基础(DPG那篇文章的推导至今没找到...),也说明还有研究的空间。

dpg learning 和q_请问在强化学习的Qlearning中,如果状态-动作很多的话,该如何处理?...相关推荐

  1. 强化学习的状态值函数与状态动作值函数

    在本文中,我们将学习贝尔曼方程和价值函数. 回报和返还(return) 正如前面所讨论的,强化学习agent如何最大化累积未来的回报.用于描述累积未来回报的词是返还,通常用R表示.我们还使用一个下标t ...

  2. dpg learning 和q_深度学习和强化学习之间的差别有多大?

    我是做深度强化学习的(Deep Reinforcement Learning)的,这个问题有趣.我对@张馨宇他在此问题下的简洁回答非常认同:"可以用深度学习这个工具来做强化学习这个任务,也可 ...

  3. 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?

    强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同? 目录

  4. 什么是强化学习,强化学习在控制系统中的应用以及matlab强化学习工具箱的介绍

    一.Reinforcement Learning Toolbox介绍 强化学习工具箱使用强化学习算法(包括DQN,A2C和DDPG)为训练策略(policy)提供函数和模块.您可以使用这些策略为复杂的 ...

  5. 强化学习(Q-learning)

    强化学习RF简介 强化学习是机器学习中的一种重要类型,一个其中特工通过 执行操作并查看查询查询结果来学习如何在环境中表现行为. 机器学习算法可以分为3种:有监督学习(Supervised Learni ...

  6. 【强化学习】 Q-Learning

    [强化学习]相关基本概念 [强化学习] Q-Learning [强化学习] Q-Learning 案例分析 [强化学习] Sarsa [强化学习] Sarsa(lambda) Q-Learning 强 ...

  7. 【强化学习】Q-Learning用于二维空间探索【Python实现】

    前言 这个基于之前的工作,如果有什么疑问也可以参照以前的文章. [强化学习]Q-Learning算法详解以及Python实现[80行代码] 本文主要做了两件事情 将上篇文章中得弱智般的treasure ...

  8. 【机器学习】带你轻松理解什么是强化学习中的状态动作函数 ?

    系列文章目录 第十八章 Python 机器学习入门之强化学习 目录 系列文章目录 前言 一.状态动作函数的定义 二.直观理解 三.将状态动作函数与回报和策略联系起来 总结 前言 强化学习中的状态动作函 ...

  9. 李宏毅机器学习系列-强化学习之Q-Learning

    李宏毅机器学习系列-强化学习之Q-Learning 评判家(Critic) 怎么衡量$V^\pi(s)$ 蒙特卡洛法(MC) 时序差分算法(TD) MC和TD对比 另一种评判$Q^\pi(s,a)$ ...

最新文章

  1. 用webgl打造自己的3D迷宫游戏
  2. Sublime3 搭建C/C++环境
  3. Ubuntu没有/etc/apt/sources.list文件的解决办法
  4. Linux watch 监控系统状态
  5. 云网络丢包故障定位全景指南
  6. 盘州市“检企联合” 探索大数据应用新路
  7. php命令行用法简介
  8. es6 Iterator 接口与 Generator 函数
  9. 深度剖析CloudFoundry的架构设计
  10. java连接mongo_java 连接mongodb
  11. eclipse maven 导出项目依赖的jar包
  12. 中国3G蛋糕1.5万亿 10倍三峡工程
  13. 对网上一些Java笔试题的总结,答案与自我理解(400道)
  14. Nacos入门之服务注册中心以及命名空间分组和DataID三者关系
  15. php 正则 零宽断言,正则表达式之零宽断言实例详解_正则表达式
  16. LWN:PinePhone,尝试一款Linux的智能机!
  17. Hadoop实战-MR倒排索引(三)
  18. 第21章、系统设定工具(网络与打印机)与硬件侦测
  19. SAP IDOC和EDI应用(1) 基本原理介绍及实例操作
  20. runy和php_原创-如何修改PHP网页,我要有的分都给你,谢谢

热门文章

  1. 嵌入式Linux利用busybox制作根文件系统
  2. AttributeError: module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘ 在Linux环境下编译opencv
  3. networkx使用
  4. PostgreSQL安装初始化集群失败
  5. canfestival 移植记录-eds使用
  6. 2022年高压电工理论题库及答案
  7. 计算机辅助相关的,计算机辅助绘图相关的论文
  8. list取值_深入学习Redis(四),基本类型【List】剖析
  9. 宇龙酷派202笔试题
  10. Java 基础知识测试-3