【论文阅读】Learning to Drive in a Day

在这里插入图片描述

  • 论文下载 & 官方Blog

  • 关于AC算法

    • 传统的强化学习中除了value-based方法,还有一大类就是policy-based方法。在RL任务中,我们本质上最终要学习的是策略(Policy)。前者用的是间接方法,即通过学习值函数(value function)或者动作值函数(action-value function)来得到policy。而后者是直接对policy进行建模和学习,因此后者也称为policy optimization。Policy-based方法又可分为两大类:gradient-based方法和gradient-free方法。前者也称为policy gradient(PG)方法。而policy gradient方法又可细分为几类,如finite difference,Monte-Carlo和Actor-Critic等。
    • Actor-Critic(AC)方法其实是policy-based和value-based方法的结合,从名字上看包括两部分,演员/执行者(Actor)和评价者(Critic)。在AC框架中,actor使用策略函数生成动作(Action)并和环境交互,而critic使用价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。可以看到,一方面actor学习策略,而策略更新依赖critic估计的value function;另一方面critic估计value function,而value function又是策略的函数。Policy和value function互为依赖,相互影响,因此需要在训练过程中迭代优化。这种多元优化的迭代思想其实在机器学习中有很多体现。
  • on-policy和off-policy的区别on-policy和off-policy的解释

    • sutton的《introduction to reinforcement Learning》中写道:

      On-policy methods attempt to evaluate or improve the policy that is used to make decisions, whereas off-policy methods evaluate or improve a policy different from that used to generate the data.
      同策( on-policy):进行评估和优化的策略与做决策的策略一致;
      异策(off-policy) :进行评估和优化的策略与产生数据的策略不一致。

    • 典型的异策算法有:DQN族、DDPG族、SAC等,凡是包含经验回放(experience replay)的,可以说都是异策算法。因为在更新策略的时候,会从经验回放中取出数据来对现在的策略进行更新,而这些数据是先前的策略生成的,也就是说,生成数据的策略和当前要更新的策略是不同的策略,即off-policy。
      典型的同策算法有:原始AC、REINFORCE、A3C等,这些算法在更新时都需要用当前策略去获得一个trajectory,然后用这个trajectory数据来更新当前策略,即on-policy。
  • 参考资料
    Wayve技术解析、  微信公众号_新智元、   知乎
      模型输入单目摄像头的视觉图像,输出是车辆的转角和速度命令,采用DDPG算法。先在simulation环境中训练,目的是寻找网络结构和超参数使完成任务的训练数据尽量少,这些网络结构和参数沿用到实车训练中。发现用vae loss作为state representation可以提高稳定性和数据使用效率(using an auto-encoder reconstruction loss significantly improved stability and data-efficiency of training)。

摘要

   我们演示了深度强化学习在自动驾驶(autonomous driving)中的首次应用。通过随机初始化的参数,我们的模型能够使用一个单目图像作为输入,仅用少量的训练场景(training episodes)就能够学习车道跟踪(lane following)策略。我们设置了一个普遍且容易获得的回报(reward):在没有安全驾驶员控制的情况下车辆行驶的距离。我们使用连续的、无模型的深度强化学习算法,在车辆上进行所有的探索和优化。我们展示了一种自动驾驶的新框架,这个框架不再依赖于定义好的逻辑规则、高精度地图以及方向监控(defined logical rules, mapping, and direct supervision)。最后,我们讨论了将这种方法扩展到更广泛的自动驾驶任务中的挑战和机遇。

一、介绍

   由于自动驾驶技术有可能从根本上改变出行和交通方式,它已经引起了研究界和公司的广泛关注。一般来说,大多数对数据的处理方式都集中在形式逻辑(formal logic)上,即在带注释的3D几何地图中定义驾驶行为。这将很难推广(到其他场景),因为它严重依赖于外部基础设备的映射(external mapping infrastructure),而不是重点关注对本地场景的理解(understanding of the local scene)。基于地图的缺陷.
  为了使自动驾驶成为一种普遍的技术,我们提倡使用机器人系统,它能够在没有地图和明确规则的情况下进行驾驶和巡航,就像人类一样,依靠对实时环境的全面理解[1],同时遵循简单的高维方向(while following simple higher level directions)(例如:多转向的路径规划)。该领域的最新工作表明,使用GPS进行粗略定位并且使用LIDAR来理解本地场景,可以在乡村道路上实现(自动驾驶)[2]。引入机器人系统
  强化学习是机器学习的一个子领域,它主要用于解决马尔可夫决策问题(Markov Decision Problems)(MDP)[3],即通过最大化某个回报函数(reward function),使得在特定的环境中选择某一种行为(select actions)。近些年来,RL在游戏中展现出超越人类的能力,例如围棋[4]和国际象棋[5],并且在计算机游戏[6]这样的虚拟环境中以及在使用机械手[7]进行简单任务时具有巨大潜力。我们认为,强化学习的普遍性使其成为适用于自动驾驶的一种有效的框架。最重要的是,它提供了一种纠正机制(corrective mechanism用来学习自动驾驶的行为。引入强化学习
  最后,我们在本文中做了如下工作

  1. 将自动驾驶视为马尔可夫决策问题,并解释了如何设计此问题的各个参数(various elements)以使其更易于解决,同时又保持其通用性和可扩展性。
  2. 表明一种经典的RL算法-DDPG(deep deterministic policy gradients)[8]可以在虚拟环境中快速学习简单的自动驾驶任务。
  3. 为了使深度强化学习(RL)控制现实世界中的车辆高效且安全地行驶,讨论了他所需的系统设置(system set-up)。
  4. 仅使用车载计算(on-board computation),连续的深度强化学习算法通过少量的场景学会驾驶真实世界的汽车。
    在这里插入图片描述
    图1:我们设计了一种用于自动驾驶的深度强化学习算法。此图展示的是Actor-Critic算法,我们用它来学习驾驶的策略(policy)和值函数(value function)。 我们设置一个回报(reward),即安全驾驶员干预之前车子行驶的距离,我们将最大限度的提高这个回报值。这个网站https://wayve.ai/blog/l2diad可以观看我们的小车学会自动驾驶的视频。

二、相关工作

   我们认为这是第一次表明深度强化学习运用于自动驾驶是一种有效的方法。我们看中他(RL)具有超越模仿学习的潜力,因此我们希望研究界从强化学习的角度更仔细地研究自动驾驶。当前文献中(和RL)最相近的工作主要可以归类为模仿学习(imitation learning)和基于地图的经典方法(classical approaches relying on mapping)。

a)地图法

   自早期的例子[9],[10]以来,自动驾驶汽车系统已被设计为借助灵敏的感知(advanced sensing)和控制算法(control algorithms)在复杂环境中安全行驶[11],[12],[13]。传统上,这些系统由许多独特的组件(components)构成,例如感知(perception、状态估计(state estimation、映射(mapping)、计划(planning)和控制(control)[14]。但是,由于每个组件都需要单独指定和调整,而且组件之间存在复杂的相互依赖关系,导致很难将其扩展到一些更复杂的驾驶场景中去。
  对于这种模块化方法(modular approach),很多注意力投向了计算机视觉组件。论文[15]中的定位技术有助于在地图化的环境(mapped environment)中控制车辆[16],而感知方法(例如语义分段[1])使机器人可以解释场景。这些模块化任务得到了像[17]、[18]这样的基准论文的支撑。
  这些模块化映射方法(modular mapping approaches)在很大程度上是商业上开发自动驾驶系统的重点。但是这种方法也提出了极其复杂的系统工程挑战,尚未解决

b)模仿学习

   最近的一种用来解决自动驾驶任务的方法是模仿学习[19],[20],其目的是通过观察专家的示范(expert demonstrations)来学习控制策略。这种方法的一个重要优点是,它可以使用端到端深度学习,针对最终目标共同优化模型的所有参数(parameters),从而减少了调整每个组件(component)的工作量。但是模仿学习在扩展(scale)上也存在挑战。无法获得专家实例来模仿可能遇到的每一种潜在情况,并且在处理演示策略的分发(distributions of demonstrated policies)的问题上也存在挑战(例如:在多条车道上行驶)。

c)强化学习

强化学习是解决马尔可夫决策问题(MDP)[21]的一类广泛的算法。 一个MDP包括:

  • 集合 S \mathcal{S} S表示状态(states)。
  • 集合 A \mathcal{A} A表示动作(actions)。
  • 一个转移概率函数(transition probability function) p : S × A → P ( S ) \mathcal{p}:\mathcal{S} \times \mathcal{A} \to \mathcal{P \left(S\right) } pS×AP(S),它为每对 ( s , a ) ∈ S × A \mathcal {\left(s,a\right) \in S\times A} (s,a)S×A分配一个概率分布 p ( ⋅ ∣ s , a ) \mathcal{p \left(\cdot | s,a\right)} p(s,a),该概率分布(probability distribution)表示:发生动作 a \mathcal{a} a使得状态 s \mathcal{s} s到另一种状态的概率。
  • 一个回报函数(reward function) R : S × S × A → R \mathit{R}:\mathcal{S} \times \mathcal{S} \times \mathcal{A} \to \mathbb{R} RS×S×AR,回报 R ( s t + 1 , s t , a t ) \mathit{R \left(s_{t+1},s_t,a_t \right)} R(st+1,st,at)表示:发生动作 a t \mathcal{a_t} at使得从状态 s t \mathcal{s_t} st到状态 s t + 1 \mathcal{s_{t+1}} st+1的回报。
  • 一个面向未来的惩罚因子(future discount factor) γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1],代表我们对未来回报(future rewards)的关心程度。

   MDP的解决办法是策略(policy) π : S → A \pi:\mathcal{S}\to\mathcal{A} π:SA,即对于每一个 s 0 ∈ S s_0 \in \mathcal{S} s0S最大化: V π ( s 0 ) = E ( ∑ t = 0 ∞ γ t R ( s t + 1 , s t , π ( s t ) ) )               ( 01 ) V_{\pi}\left(s_{0}\right)=\mathbb{E}\left(\sum_{t=0}^{\infty} \gamma^{t} R\left(s_{t+1}, s_{t}, \pi\left(s_{t}\right)\right)\right)       (01) Vπ

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值