Atari 游戏所需的动作是离散的(有时间间隔的输出),相对低维的(只有少数几个动作),而实际的控制问题则是连续的,高维的。DQN无法直接应用到这样的领域,因为连续的值(比如输出一个速度)需要在每一步都作出优化迭代,DQN只是根据动作对Q值做优化。
要直接应用DQN到连续动作领域,最简单的做法就是将连续动作离散化,也就是依然每个时间间隔输出一个动作值,把每个动作也离散化。但这样存在问题:
动作的数量将随着自由度的增加呈指数型增长!
对比一下Atari才4到18个动作,如果变成几千的动作,几乎不可能训练。
并且简单的将动作离散化会忽略动作域的结构(structure of action domain),这对解决很多问题都很重要。
本文提出一个 model-free,off-policy,actor-critic 算法,整个工作基于ICML 2014的DPG(Deterministic policy gradient)算法。
算法结合了actor-critic方法和deep Q-network。除了使用deep Q-network的experience replay和fixed target Q-network之外,还使用了batch normalization(一个很新的提升深度学习性能的方法)
实验方法:通过仿真测试各种具有挑战性的物理控制问题。为了达到Raw sensory input,就在模拟器前固定一个摄像头,利用视觉信息进行学习控制(依然是完全类人的方法哦)
算法称为DDPG ,既能通过低维度的传感器信息来学习,也可以通过视觉信息来学习。算法仍然具备很强的通用性,对于不同的任务顶层的结构和参数都固定的。
这个算法的特点就是简洁simplicity,能够简单的应用到更复杂的问题及更大的网络。
算法和传统的方法比较,有时候的性能(使用视觉输入)会比较传统的planner方法好,注意是有时候,说明还有很多改进空间,虽然说这种方法真的很牛。
依然是一样的增强学习的基础知识这里不再介绍
要直接应用Q-Learning到连续动作空间是是不可能的,因为在连续的空间中寻找greedy policy 需要在每一步都对动作进行优化,这种优化在面对大的没有约束的函数近似以及非平凡的动作空间在实际训练中太慢。这里我们采用的是基于DPG算法的actor-critic方法。
一方面直接学习policy策略,另一方面学习Q值来改进策略
就是确定性策略梯度。如果策略是一个函数,那么它就应该有梯度,通过计算梯度,就能够优化参数,从而优化策略。
David Silver证明了梯度计算公式,从而提出DPG算法。
DPG算法包含一个参数化的actor函数也就是policy u(s|θμ) ,代表当前的policy能够确定性的映射状态到一个动作。critic Q(s,a) 通过Bellman公式来基于Q-Learning来学习。actor则根据policy gradient,也就是policy的性能的梯度:
假定用一个深度网络 a=π(s,u) 来表示这个policy,权值为u。
一般用总的含discounted的reward来表示这个policy的目标函数用于衡量policy的好坏:
那么David Silver证明以下等式就是目标函数的梯度:
但是对于Q-Learning来说,使用非线性的函数近似意味着收敛将不能保证。但是为了在大的状态空间中进行学习,这种非线性函数近似又是必须的。
本文的贡献就是受DQN成功的启发,对DPG进行改造,运行它使用神经网络的函数近似来在大的状态空间和动作空间进行在线学习 online learning。我们就把这个算法叫做Deep DPG,简称 DDPG。
从算法上相比DQN就是多了policy方面的梯度计算与更新。然后这边的Q网络不同于DQN的Q网络,先输入s,卷积之后加上a,然后输出Q。
将神经网络应用于增强学习的一个挑战就是大部分的优化算法都假设样本是独立同分布的。但是,显然当样本是从环境的探索中生成的,这些假设就不在成立了。并且未来高效的使用硬件,很有必要使用mini-batch而不是online learning。
和DQN一样,我们使用replay buffer来解决上面的问题。replay buffer就是存储之前的sample。然后学习就从里面随机采样n个样本进行mini-batch训练,这样就能使样本没有相关性。
另一个问题就是直接使用Q-Learning往往在很多环境中不是很稳定。因为Q网络更新后同时用于计算目标的值。这样Q的更新很容易发散。解决这个问题的办法和DQN类似,这里采样所谓的“soft” target updates。也就是复制了一份actor和critic的网络,这个网络用于计算target值。但这两个网络的参数是缓慢的跟着学习的网络 θ′→τθ+(1−τ)θ′ 其中的 \tao 远小于1。这就导致目标值的改变就比较慢,也就能极大的提高学习的稳定性。 这个简单的改变就将不稳定的学习actor-value function的问题变成了一个鲁棒的监督学习问题。这种方法会降低训练时间,但与提升学习稳定性比,还是很值得的。
当从低维的特征向量中进行学习,不同观察的不同变量可能有不同的物理单位(比如速度,位置)那么它们的取值范围会很不一样。这将可能导致网络不能高效的学习,也不好去确定顶层的网络架构方面的参数。解决这个问题的方法是人工的缩放这个特征使得它们有相似的取值范围。这个也是很好理解。采用的方法是深度学习的batch normalization。这个方法就是将每个维度的数据中minibatch化为有单位的均值和方差。而且在运行过程中,保持计算一个浮动的均值(毕竟样本在更新)从而保持归一性。通过这个方法,就能有效的进行学习,即使参数中有着不同的单位,这样变相的也不需要纯手工的调整。
那么在连续动作空间进行学习的一个主要挑战是如何exploration探索。那么DDPG因为是off-policy的算法,因此,可以从学习算法中单独的处理探索问题。这里我们就是构造了一个探索用的policy,就是给我们的actor policy添加一些噪声,这些噪声来自于噪声过程N。
那么这里作者采用的是Ornstein-Uhlenbeck Process 来生成相关探索过程。(具体方法在附录)
本文将算法应用到了多种仿真的控制任务中,主要使用MoJoCo这个环境。既使用低维的状态描述也使用高维的状态描述。为了是问题几乎是完全可观察的,在高维环境中我们使用action repeats。就是每3个时间间隔采用相同的动作。这样就包含9个feature maps(3个RGB图像)
在测试的时候就是采用不加noise的policy进行评估。
这里不再详细介绍Result的结果,事实上因为他们的实验基本上无其他工作可以对比,只能在最后对比自己设定的不同方法的结果。
事实上本篇文章的精华在于相关工作这一节。相关工作几乎概括了当前Deep Reinforcement Learning应用在连续动作空间的最新进展,事实上也就是DeepMind和UC Berkerley的进展。
DPG算法只是使用linear function approximator来实验一些低维的简单的任务。实验显示了DPG算法数据的高效性。但是DPG算法并没有考虑大型高维观察空间的任务。
在之前一般任务传统的策略搜索算法非常脆弱不能移植到困难的问题。因为传统的方法同时处理复杂的环境及策略。要么训练不稳定,要么训练太慢不实际。
最近的研究发布policy search算法并不像想象中那么脆弱。DeepMind的另一个工作拓展了DPG算法,但是也只是用在低维空间。
这个方法直接构建随机的神经网络策略,而没有把问题分解为最优控制及监督学习的阶段。这个方法在return几乎没有提升只是认真的选择策略参数的更新,限制新的策略不至于发散太远。这个方法不需要学习action-value function,数据比较低效。
这个方法将问题分解成三个阶段:
这就差不多是human-guided
这个方法有很多好处。数据很高效并且已被运用到多种真实环境下的基于视觉的机器人控制任务。他们方法中使用的CNN policy和本文的方法有很多相似除了两个不同:
使用高斯过程来学习一个非参数化的概率模型。在一些控制问题上显示了数据的高效性。但是,因为计算量大,这种方法不适合高维问题。
就目前来看,使用深度神经网络作为策略的函数近似是最有希望将增强学习拓展到大型高维的领域。