今天!我们要介绍的是来自于Alberta大学与华为诺亚实验室合作的一项研究,该研究是对分布强化学习中探索策略的一个改进,其中所蕴含的分布强化学习框架下的探索思想非常值得学习,可以说是大大拓展了我的视野。这里说个题外话,最近中美贸易摩擦导致华为遭到美国的严厉打击,众多科技公司与大学都宣布终止与华为的合作,我认为这对固然会对华为带来冲击,然而这也反映了美国在害怕华为。如今的华为已经成为中国在国际上的一个科技力量的象征,我相信华为一定能挺过这道坎,毕竟每年那么多研发经费不是白花的,华为的诺亚实验室也是为了这一天而存在的。也许这也是一个华为摆脱外国技术支持,实现完全独立自主的一个契机,华为加油!最后许个愿,希望我华为实习生能拿到offer吧,跪求…言归正传,接下来我们就来领略QUOTA的魅力吧。
首先来阐述一下论文大概讲了些什么吧。回想一下分布强化学习(不太了解的同学请参考我的博客分布强化学习),QR-DQN算法学习的不再是未来期望收益的均值,而是概率分布,并且算法采用的一系列分位数来近似表示这些概率分布。但是在进行决策时,算法依据的依然是概率分布的均值,你们不觉得这给人一种大材小用的感觉吗?既然得到了回报的概率分布,那么应该有一种更好的方法来使用它进行决策。QUOTA就找到一种物尽其用的方法。 不同于传统的使用动作值均值的贪婪方法,QUOTA根据动作值分布中的特定分位数来进行贪婪地选择动作。在风险敏感强化学习(risk-sensitive RL)中存在两个概念:1.乐观(optimistic)探索策略:基于高的分位数来选择动作,即哪个动作的乐观的估计值越高选哪个动作。2.悲观(pessimistic)探索策略:基于低的分位数来选择动作,即哪个动作的悲观的估计值越高选哪个动作。乐观探索策略趋向于激进地行事,而悲观探索策略偏向于保守地行事。这两种行事风格有他们特定的应用场景,在某些场景下它们能够带来很好的收益,但是在某些场景下,它们又会带来糟糕的表现。对于这一点,文章中使用了两个简单的马尔科夫过程进行了形象的阐释,下文具体展开。 这就引发了我们的思考:也许在一个任务中,我们有时候需要采用激进的策略,而有的时候需要采用保守的策略,通俗地说,就是做事要张弛有度,懂得能屈能伸,以退为进。QUOTA就达到了“能屈能伸”的境界,可以根据系统状态的不同来采取不同风格的策略来选择动作。那么,QUOTA是如何做到这一点的呢?答案就是通过选项框架(option framework)技术,在下文会介绍。QUOTA通过学习一个更高级别的策略来决定选择使用哪个分位数来进行动作选择。这样,不同的分位数函数就成为了不同的选项,论文将其命名为分位数选项(quantile option)。QUOTA通过在学习过程中自适应地选择乐观与悲观的探索策略,能有效地提高算法的性能。
接下来介绍一下,QUOTA中使用的关键技术——option。每个option ω ∈ Ω \omega \in \Omega ω∈Ω可以由一个三元组 ( I ω , π ω , β ω ) \left ( I_{\omega },\pi _{\omega },\beta _{\omega } \right ) (Iω,πω,βω)来表示,其中 I ω ⊆ S I_{\omega }\subseteq S Iω⊆S表示option ω \omega ω 的初始化状态集合,相当于option的应用范围。我们使用 π ω : S × A → [ 0 , 1 ] \pi _{\omega }:S\times A\rightarrow \left [ 0,1 \right ] πω:S×A→[0,1]表示 ω \omega ω 的intra-option策略。一旦智能体被指定了option ω \omega ω ,那么他就按照 π ω \pi _{\omega } πω来选择动作。我们使用 β ω : S → [ 0 , 1 ] \beta _{\omega }:S\rightarrow \left [ 0,1 \right ] βω:S→[0,1]来表示option ω \omega ω 的终止函数。在每个步长t,option ω t − 1 \omega _{t-1} ωt−1以概率 β ω t − 1 ( S t ) \beta _{\omega _{t-1}}\left ( S_{t} \right ) βωt−1(St)终止。论文遵从这样一种模式,智能体被指派了一个option后,会一直遵循其选择动作的策略,直到其根据概率 β ω \beta _{\omega } βω被终止。 我们采用选项值函数(option value function) Q Ω ( s , ω ) Q_{\Omega }\left ( s,\omega \right ) QΩ(s,ω)来表示在状态s下,采用option ω \omega ω 后的未来期望收益,通过Intra-option Q-learning 我们可以进行函数更新: α \alpha α是学习率, ( s t , a t , r t + 1 , s t + 1 ) \left ( s_{t},a_{t},r_{t+1},s_{t+1} \right ) (st,at,rt+1,st+1)是智能体在option ω t \omega _{t} ωt控制下产生的转移经验。
接下来,通过两个简单的例子来说明为什么使用平均值作为动作选择的依据是不好的。试想这样一个马尔科夫链: 每个状态下,智能体有两个动作{up,left}。在状态1到状态N-1,执行up动作后会产生0 reward,并终止episode;执行left动作后会产生 r ∼ N ( 0 , 1 ) r\sim N\left ( 0,1 \right ) r∼N(0,1),并转移到下一状态。在状态N,up动作后终止episode,返回 0 reward,left动作后返回+10 rewad。在不同动作选择策略下的结果如图: 可以看出,乐观的行动策略是最好的,悲观的行动策略是最差的,采用均值策略的Q-learning和QR差不多一样坏,比悲观策略好那么一点点。QUOTA稍微比乐观策略差一点,总体不错。 我们来探究一下产生这种结果的内因: 首先对于Q-learning,如果它要学习到最优策略,它首先要先到达G,而这一点对于Q-learning来说是困难的。因为,1.由于贪婪策略,agent有时会随机选择up,导致episode终止,agent就要等下一个episode开始;2.在agent到达G之前,无论是up还是left,它的期望回报值都是0,agent根本无法区分哪个动作好,因此Q-learning的学习过程非常缓慢。 其次对于学习回报值分布的agent来说,在到达G之前,所学习到的对于动作left的回报分布是一个均值为0的正态分布。较高的分位数大于0,如果采取乐观策略,那么agent能比较快地到达G,反之采用悲观的策略,agent会趋向于采取up动作。 那么乐观策略一定是好的吗?不一定! 下面看第二个马尔科夫链: 基本结构与chain 1一样,只是改变了采取动作值后的reward值。不同策略结果: 可见,乐观策略并不一定总是好的,在这种情况下,悲观策略是最好的,乐观策略是最差的,Q-learning与QR的表现依然没哟有QUOTA的表现好。在利用期望值进行行动的情况下,在达到G之前,up动作的期望值总是比left好,因此无论是Q-learning还是QR的表现都不尽如人意。而利用期望回报分布进行动作选择,up动作期望回报分布为均值为0的正态分布,left回报分布为均匀分布,采用悲观策略,比较较低分位数的值,left总是更大,因此agent更倾向于采取left动作,因此能较快学习到最优策略。 以上分析,我们能够知道分位数能够有效地影响探索策略,如果我们能够选择合适的分位数,就能够大大提高探索效率。不同的任务有着不同的适用的分位数,那么到底什么样的分位数才最适合当前任务呢?我们要如何选择?QUOTA通过学习一个更高级别的策略,在任务过程中自适应地选择合适的分位数来用于进行动作选择。这就是The Quantile Option Architecture。
首先介绍下离散动作框架下的分位数选项结构。假设我们有N个分位数水平 { τ i ^ } i = 1 , . . . , N \left \{ \hat{\tau _{i}} \right \}_{i=1,...,N} {τi^}i=1,...,N下的分位数估计 { q i } i = 1 , . . . , N \left \{ q_{i} \right \}_{i=1,...,N} {qi}i=1,...,N。我们构建M个option(M<N)。为了简化,我们假设所有option都有相同的初始集合S以及相同的终止函数 β \beta β,为一个 常数函数。使用 π j \pi ^{j} πj来表示option ω j \omega ^{j} ωj,i=1,…,M下的intra-option策略。 π j \pi ^{j} πj的做法是依据用K个分位数组成的第j个窗口的平均值来进行动作选择,其中K=N/M。这里,K表示窗口大小,并且一共有M个窗口,使用 Q j ∣ K Q_{j\mid K} Qj∣K表示利用K个分位数的局部窗口计算出来的动作值: 采用K个分位数窗口而不是单个分位数能够提高算法稳定性。QUOTA通过intra-option Q-learning来学习 Q Ω Q_{\Omega } QΩ用于option选择。分位数估计 { q i } \left \{ q_{i} \right \} {qi}则通过QR-DQN学习。 总的框架描述:在每个时间步长t,我们以概率 β \beta β选择一个新的option,以概率1- β \beta β继续使用前一时刻的option。我们根据由 Q Ω Q_{\Omega } QΩ导出的 ε Ω \varepsilon _{\Omega } εΩ-greedy策略来选择新的option。确定当前option ω j \omega ^{j} ωj后,我们根据intra-option策略 π j \pi ^{j} πj进行动作选择。伪代码如下: 论文还将QUOTA拓展到了连续控制领域,与DDPG算法进行结合。文章首先给出QR-DDPG算法: 这也是第一次将分位数回归用于连续控制领域。为了得到连续动作下的最大化分布中的一个分位数的动作,算发对不同的intra-option策略都进行了梯度下降。我们有M个option{ ω j \omega ^{j} ωj}。option ω j \omega ^{j} ωj 的intra-option是一个确定性映射 μ j : S → A \mu _{j}:S\rightarrow A μj:S→A。我们利用梯度下降训练 μ j \mu _{j} μj来近似贪婪动作 a r g m a x a Q j ∣ K ( s , a ) arg max_{a}Q_{j\mid K}\left ( s,a \right ) argmaxaQj∣K(s,a)。梯度计算如下: 为了计算critic的更新目标,我们需要一个额外的actor μ 0 \mu ^{0} μ0来最大化分布的期望值( 1 N ∑ i = 1 N q i \frac{1}{N}\sum_{i=1}^{N}q_{i} N1∑i=1Nqi),因为在连续动作领域,我们不可能迭代所有的动作。这里的的 μ 0 \mu ^{0} μ0其实就相当于QR-DDPG中的actor。伪代码如下: 论文在gym环境下的atari游戏任务与mojoco环境下的机器人控制任务中都做了实验,表明了QUOTA的强大性能。 最后给出论文地址:QUOTA