手把手教你强化学习 (七) 强化学习中的无模型控制

简介: 手把手教你强化学习 (七) 强化学习中的无模型控制

  在上一篇文章强化学习中的无模型预测中,有说过这个无模型强化学习的预测问题,通过TDn-step TD或者MC的方法能够获得值函数,那拿到value之后如何获取policy呢?

  Model-Free Control in Reinforcement Learning

  在model free control中的第一个概念就是on-policyoff-policy,在现实中的很多问题都是这样的,我们得不到environment的白盒模型,我们就需要去与环境互动,获取经验数据,然后基于经验数据进行学习。或者是MDP的内部模型已知,但是状态空间、动作太大了无法对其采样。model free的方法就可以去解决这个问题。

On-and Off-Policy Learning

  • 两类model-free RL

  在model-free这个设定下面有两个概念,一个是on-policy learning一个是off-policy learning

  • On-policy learning

  On policy “Learn on the job” ,意思是说马上要给policy喂进来的数据都是刚刚采出来的数据。

  Learn about policy π \piπ from experience sampled from π \piπ

  • Off-policy learning

  Off-policy “Look over someone’s shoulder” 当前学习的策略π \piπ的数据从另外一个策略μ \muμ采样出来的。

  Learn about policy π \piπ from experience sampled from another policy μ \muμ

Model-Free Policy Iteration

  如果我们用state value去更新的话,我们就需要去知道state transition,而基于state-action value的情况就好很多:

  • Greedy policy improvement over V ( s ) V(s)V(s) requires model of MDP:


image.png

 But we don’t know the state transition probability. 如果我们基于state-action value更新的话我们就不需要知道state transition probability。

  • Greedy policy improvement over Q ( s , a ) Q(s,a)Q(s,a) is model-free


image.png


因此计算state-value 和计算state-action value有本质的区别。之后的方法基本上都是基于state-action value的。

Generalized Policy Iteration with Action-Value Function

  在给定某一个policy之后,我们就可以去算Q π Q_{\pi}Qπ。以前的文章马尔可夫决策过程与动态规划算的是state value,这里算的是state-action value。得到这个Q QQ之后我们就能够依据π n e w ( s ) = arg max ⁡ a ∈ A Q ( s , a ) \pi^{new}(s) = \argmax_{a \in A} Q(s,a)πnew(s)=aAargmaxQ(s,a)得到我们的策略。


20200223125403169.png

Control Policy

  基于Q QQvalue 我们具体怎么去做control policy?就是我们具体怎么来 choose action

Example of Greedy Action Selection

  在Greedy Action中每次都去选择state-action value最大的那一个:

image.png

 但是这里有问题,就是当你采样到了一个动作之后,拿到了reward,你之后就不会去选择探索其它的动作了。

  The policy would be suboptimal if there is no exploration.

ε \varepsilonε-Greedy Policy Exploration

  最简单的办法就是让这个policy有一些随机,或者称之为exploration。于是就变成了:

  • With probability 1 − ε 1-\varepsilon1ε, choose the greedy action.
  • With probability ε \varepsilonε, choose an action at random.

  于是在状态s ss下选择动作a aa的概率π ( a ∣ s ) \pi(a|s)π(as)可表示为如下形式:


image.png

ε-Greedy Policy Improvement

  那ε \varepsilonε-Greedy Policy能不能往前推进我们的state value呢?我们需要去证明一下:


image.png


Monte-Carlo Control

  一种比较经典的Control方法就是MC Control


20200223140830984.png


 其算法也是大体分为两步Policy evaluationPolicy improvement

  • Policy evaluation: Monte-Carlo policy evaluation,Q ≈ Q π Q \approx Q^{\pi}QQπ
  • Policy improvement: ε \varepsilonε-greedy policy improvement。

MC Control vs. TD Control

  MC Control中看一整个episode,然后estimate value然后做更新,TD Control只是看一小个片段进行更新。

  • Temporal-difference (TD) learning has several advantages over Monte-Carlo (MC) :Lower varianceOnlineIncomplete sequences

On-Policy SARSA

  其算法流程主要分为以下4步:


  1. 在状态 s ss, 采取actiona aa ;
  2. 环境反馈 rewardr rr ;
  3. 转移到下一个states ′ s^{\prime}s;
  4. states ′ s^{\prime}s, 采取 actiona ′ a^{\prime}a

  用SARSA更新action-value functions


image.png



20200223142415650.png



SARSA算法的整个流程如下所示:

  上述sarsa算法需要注意state-action中的‘A AA’都是基于current policy采样出来的。SARSA是一种非常典型的On-Policy方法,但是Off-Policy的算法往往更重要。

Off-Policy学习方式

image.png

为什么我们需要off-policy的学习方式?

  其实主要就是在数据利用上面会方便很多,on-policy的方法需要当前智能体去采样,然后学习一次之后智能体的策略就发生了改变,那这些数据就无法使用了。然而在现实生活中我们能够拿到很多很好的数据,是其他智能体所产生了,为了很好地去利用这些数据,我们需要off-poicy的采样方式。

  • Learn from observing humans or other agents

  比如在自动驾驶中,我们可以先学习一点人类经验数据,相当于做个预训练。

  • Re-use experience generated from old policies

  虽然是自己之前的数据,但是由于现在的参数和之前的参数不一样,所以off policy的方法可以重复使用之前的训练数据。

强化学习需要的data是非常大的,因为它有三个自由度的分布函数image.png。想要从数据中把这些分布关系给学到,就需要大量地去采样这些样本,然后通过强化学习算法学到其中的关联。


20200223161038196.png

 因此使用之前的data就比较重要了。

  还有一点就是商业上面就没办法使用当前采样出来的数据直接进行训练。比如像淘宝用强化学习做的推荐系统。

  • Learn about optimal policy while following exploratory policy
  • Learn about multiple policies while following one policy

Importance Sampling

  那off-policy怎么来做off policylearning呢?通常的做法都是引入Importance SamplingQ值的更新可表达为以下形式:


image.png

 我们是拿后面采样出来的Q ( s ′ , a ) ,去更新前面采样所得到的Q ( s , a ) ,前面采样策略与后面采样策略不一样,那肯定就会有些问题。这个时候重要性采样就非常重要了。

  Importance Sampling can estimate the expectation of a different distribution

image.png

 但很多时候我们拿到的数据并不满足p ( x ) p(x)p(x)分布,而满足q ( x ) q(x)q(x)分布,因此做个重要性采样就很好地解决这个问题。

Importance Sampling for Off-Policy Monte-Carlo

  通过重要性采样我们仍然需要去计算值函数。比如我们如何使用策略μ \muμ所获得的return去评估策略π \piπ? 依据Importance Sampling我们可以weight returnG t G_{t}Gt,对于一个episode


image.png


Multiply importance ratio along with episode:

image.png

 表示在策略π 下会以更多或者更小的概率去看到G t ,然后再以这个新的G t去更新算法:


image.png  

μ \muμ为0的时候上述公式处理起来就会比较困难,但是往往这种情况出现地比较少,通常不给予考虑。重要性采样所带来的问题就是多引入了一个变量,因此其方差会增加。TD算法相比较MC算法会减少方差,因此很自然的一个想法是:可以将TD算法引入Importance Sampling来减少方差。

Importance Sampling for Off-Policy TD

 将 Importance Sampling用在TD上面会更容易一点,因为TD算法只走一步。因此只有TD target r + γ V ( s ′ ) 是在做importance sampling,so only need a single importance sampling correction :


image.png


 这种方式相比较于Monte-Carlo importance sampling方差会大大降低,因为此时需要在a single step上保持similar

  上述importance sampling过程是一个unbias过程,但是variance可能特别大,因为μ ( a t ∣ s t ) \mu\left(a_{t} | s_{t}\right)μ(atst)可能特别小,一除就变大了。

  因此在做off-policy的时候,我们很少会用传统的importance的办法,它虽然可以做,但是不做改进的话还是不太好。


Q-Learning

image.png

因此Q-learning的更新算法如下所示:

image.png


为什么 Q-learning 会被称作一种off-policy control方法?


  • Learning from SARS generated by another policy μ \muμ
  • The first action a and the corresponding reward rare from μ \muμ

image.png

 上述这么多就是为什么q-learningoff policy却不用importance sampling.

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

相关文章
|
2月前
|
机器学习/深度学习 传感器 算法
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
|
3月前
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
76 4
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
131 1
|
7月前
|
机器学习/深度学习 人工智能 运维
|
机器学习/深度学习 人工智能 算法
手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?
手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?
406 3
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
|
7月前
|
机器学习/深度学习 数据可视化 数据挖掘
强化学习第1天:强化学习概述
强化学习第1天:强化学习概述
|
机器学习/深度学习 算法
如何通俗易懂地理解基于模型的强化学习?
如何通俗易懂地理解基于模型的强化学习?
|
机器学习/深度学习
深度学习与强化学习的区别以及深度强化学习是什么
深度学习与强化学习的区别以及深度强化学习是什么
599 0
|
机器学习/深度学习 人工智能 算法