Fisher's Blog

Sein heißt Werden
Leben heißt Lernen

0%

Trust Region Policy Optimization 论文中,作者提出了一种保证策略迭代优化的过程单调不减地朝更好的方向发展的算法,也就是说每一次策略的改善,都保证改善后的策略比前一个策略要好。在理论的基础上做了一些近似后,得到了能实际运用的算法: Trust Region Policy Optimization (TRPO)

策略梯度的参数更新方程为: \[ \theta_{new} = \theta_{old} + \alpha \nabla_\theta J \] 其中 \(\alpha\) 为更新步长,然而这个步长很难确定,一个不好的步长会使参数所对应的策略变得不好,而接着又用这个不好的策略来进行采样学习,会使得策略越来越差,所以步长至关重要,如何选取步长使得策略不会变得更差就是 TRPO 要解决的问题。

阅读全文 »

Dueling Network Architectures for Deep Reinforcement Learning 论文中, DeepMind 将深度强化学习中的神经网络结构做了一个小的改变,即用 Dueling Network 来表示两个分开的预测量:一个是状态价值函数 (state value function) ,另一个是与状态独立的行为优势函数 (action advantage function)

阅读全文 »

基于模型的动态规划之后 一直在介绍无模型 (Model-Free) 的情况,默认了智能体在学习时不知道完整的 MDP ,这也确实是实际学习中绝大多数会遇到的情况,比如我们可以使用 策略梯度 方法直接从经验中学习梯度,又或者直接从经验中学习值函数( 无模型预测无模型控制 )。

本文将再换一个角度,从经验中直接学习我们未知的模型,然后用规划的方法来构造值函数或者策略,将学习与规划整合起来。

阅读全文 »

到目前为止,无论是不是基于模型的强化学习方法,都是通过维护一张价值表 \(V(s)\) 或行为价值表 \(Q(s,a)\) ,用查表 (lookup table) 的方式来进行学习。但在强化学习中,可能需要解决非常大型的问题,例如西洋双陆棋有 \(10^{20}\) 规模的状态空间,围棋甚至高达 \(10^{170}\) ,直升飞机的状态空间更是连续的。那么多状态、行为,没有办法通过一张表存储在内存里,学习起来也非常缓慢。为了解决大规模 MDP 的问题,我们可以用某个近似函数来估计真实的价值函数: \[ \begin{align*} \hat{v}(s,w) &\approx v_\pi(s) \\ \text{or } \hat{q}(s,a,w) &\approx q_\pi(s,a) \end{align*} \] 通过 MC 或 TD 的学习方法来更新近似函数的参数 \(w\)

阅读全文 »

在之前的 Deep Q-Network 中,引入了经验回放机制,在经验记忆 (replay memory) 中均匀地选取的经验片段 (replay transition) ,但是这种简单等概率的选取经验片段的方法忽视了每条片段的重要程度。所以在论文 Prioritized Experience Replay 中,提出了一种优先经验的方法,将一些比较重要的经验片段回放的频率高一点,从而使得学习更有效率。

阅读全文 »

无模型预测 Model-Free Predication 一文中介绍了如何在没有模型的情况下,根据一个策略来评估该策略的价值函数,而这篇文章将在上文的基础上,来优化价值函数。

我们可以在无模型的情况下使用也可以在有模型但是模型太庞大只能用采样的方式来进行控制。

优化控制可以分为两类学习方式:

  1. 同策略学习 (On-policy learning) :我们需要优化一个策略 \(\pi\) ,就必须进行采样,而采样的方式就是根据要学习的策略 \(\pi\) 。该种学习方式称为同策略,即采样与学习的为同种策略。
  2. 异策略学习 (Off-policy learning) :同样是优化策略 \(\pi\) ,但采样时遵循的策略却是另一种策略 \(\mu\) ,相当于是根据前人已有的经验 \(\mu\) 来学习现有策略 \(\pi\) ,“站在巨人的肩膀上”。该种学习方式成为异策略,即采样与学习为不同的策略。
阅读全文 »

Deep Reinforcement Learning with Double Q-Learning 论文中,Google DeepMind 将 Double Q-learning 论文中提到的 Double Q-Learning 与 DQN 相结合,在 DQN 的基础上做了改进,提出了 Double DQN 算法。本文也在 Deep Q-NetworkDQN 代码实现 两篇博文的基础上介绍 Double DQN 同时实现代码 。

阅读全文 »

强化学习的最终目的就是找到 MDP 的最优策略,而在已知模型的情况下,通常用动态规划 (Dynamic Programming) 方法来寻找最优策略。

动态规划是一种非常常见的算法,要应用动态规划方法需要满足两个条件:

  1. 原本复杂的问题可以被分解成相对简单子问题,求出最优子问题就求出了最优解
  2. 子问题会反复出现多次,并且子问题的结果可以被存储起来继而解决后续的问题

而 MDP 正好满足了上述两个特性:

  1. 贝尔曼方程相当于将复杂问题分解为了递归的子问题
  2. 价值函数相当于存储了之前子问题的解

通过判断一个策略的价值函数,用该策略下的最优价值函数来更新策略并不断重复上述过程直至找到最优价值函数与最优策略便是动态规划的核心思想。

在求解 MDP 的最优策略中使用动态规划一般可以用来:

  • 预测:输入 MDP \(<\mathcal{S},\mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma>\) 和策略 \(\pi\) ,或输入 MRP \(<\mathcal{S}, \mathcal{P}^\pi, \mathcal{R}^\pi, \gamma>\) ,输出价值函数 \(v_\pi\)
  • 控制:输入 MDP \(<\mathcal{S},\mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma>\) ,输出最优价值函数 \(v_*\) 和最优策略 \(\pi_*\)
阅读全文 »

在已知模型的情况下,可以用动态规划方法解决 MDP 问题,但在强化学习中,更多遇到的是无模型情况 (Model-Free) ,也就是模型 \(P^a_{ss'}\) 是未知的,比如一架直升机处于 \(s\) 状态,在采取动作 \(a\) 之后,我们不知道有多大概率会转移到 \(s'\) 状态,当时的环境状况会产生很大的干扰。

本文就是要在在未知模型的情况下,估计价值函数,包括蒙特卡罗方法与时间差分方法。

阅读全文 »