DRL论文阅读(一)之DQN方法

前言

以往的Q-learning算法只适合解决小问题,如果问题太大,则无法分别学习到所有状态下的所有动作值,因此提出了DQN。DQN的本质上仍然是Q-learning,只是利用了神经网络表示动作值函数,并利用了经验回放和单独设立目标网络这两个技巧,但是DQN本身是无法克服Q-learning本身锁固有的缺点-过估计。过估计是指估计的值函数比真实值函数要大。之所以存在过估计的问题,根源在于Q-learning中的最大化操作

一、论文题目

Autonomous Quadrotor Landing using Deep Reinforcement Learning

二、研究目标

在仿真中使用DRL方法实现无人机在标记logo上的自主降落

三、问题定义

地标着陆问题:使无人机精准降落在地标上

  • 标记检测:无人机固定高度,只在xy方向上移动,最终到达标记点正上方
  • 垂直下降:在标记点正上方,慢慢下降,减少无人机与地标的距离
  • 降落:降落在标记点上

四、研究方法介绍

DRL:DQN方法

4.1 马尔科夫决策过程

目标:训练一个无人机agent,它从环境中得到状态和奖励,然后选取一个行为,作用于环境

MDP定义:

  • 状态集:一般为xy坐标或者图片的集合(本文中为图片集合
  • 行为集:agent可能采取的动作的集合(本文中一般为前后左右
  • 转换函数:状态s在行为a下转移到s’的概率(本文中为mode free
  • 奖励函数:不同的任务一般奖励不同(本文正面奖励:+1,负面奖励:-1,生活成本:-0.01
  • 起始状态:每次训练之前的agent位置(本文中为固定区域内的随机方向和随机位置
  • 结束状态:训练完成后的agent位置(本文中为降落到标记点上
    • 结束条件:当前episode达到最大步数或者强制截止(超出边界)

4.2 CNN网络

对于相对较大较复杂的环境,一般Q表无法存储,此时,使用CNN进行函数值逼近

  • 输入:灰度图像(4张)
  • 输出:行为集

4.3 DQN(标记检测)

主要包含:经验池、CNN Network、CNN Target Netword

其中target网络和cnn网络局哟相同的网络结构

4.3.1 DQN之经验回放

训练DQN网络之前,先要进行随机行为选取,然后将agent执行随机行为产生的数据存储到经验池中,经验池中的数据为(s,a,s’,r,done):当前状态、当前状态采取的动作,执行完动作后的下一个状态,执行完动作后的奖励、执行完动作后当前episode是否结束

在训练的过程中,需要将经验池中的(s,a)作为输入,输入到CNN网络中,每次选取经验池中的一批数据进行输入,然后CNN网络训练参数,最终agent从环境中获取s,输入到训练好的CNN网络中,CNN返回最大概率的行为给agent,agent执行该动作,作用于环境

4.3.2 DQN调参

在DQN的两个网络中,target网络和cnn网络具有相同的网络结构,并且初始网络参数相同

训练过程中,cnn网络的参数一直在更新,当执行到一定的步数之后,将cnn网络的参数赋给target网络参数,保持两个网络参数相同,然后在进行cnn网络参数更新,以此往复

4.3.3 DQN网络测试

训练好DQN网络之后,agent首先感知环境,从环境中获取状态s,并把状态s作为输入,输入到DQN网络,DQN网络返回动作a给agent,agent执行该动作a作用于环境,环境发生变化,agent会获得新的状态s,以此往复,就能利用DQN网络进行测试了

4.4 Double DQN + 优先级经验回放:垂直下降

在垂直下降部分,使用的Double DQN方法和优先级经验回放

4.5 DQN 与Double DQN比较

只是目标Q网络稍有不同,其他一样

五、实验环境

  • 仿真平台:Gazebo7
  • ROS版本:ros kinetic
  • 无人机:Parrot AR Drone2
  • 纹理:自定义的一些纹理图
  • 训练硬件(训练5.2天完成):
    • 处理器:i7 8核
    • RAM:32G
    • 显卡:NVIDIA Quadro K2200

六、实验结果

6.1 标记检测

标记检测部分,训练的agent能超过人类水平

6.2 垂直下降

垂直下降部分,训练的agent能接近人类水平

七、未来展望

未来的工作将会关注仿真和现实中的一些差距方面

总结

DQN方法的创新点(相比于Q-learning)

  • 加入神经网络:DQN利用深度卷积神经网络逼近值函数

    DQN的行为值函数用神经网络逼近,属于非线性逼近。

  • 加入经验回放:DQN利用经验回放训练强化学习过程

    在训练神经网络时,存在的假设是训练数据是独立同分布的,但是通过强化学习采集的数据之间存在关联性,利用这些数据进行顺序训练,神经网络不稳定。经验回放可以打破数据间的关联。

    在强化学习训练过程中,智能体将数据存储到一个经验回放池中,在利用均匀随机采样的方法从经验池中抽取数据,然后利用抽取的数据训练神经网络,这样就打破了数据之间的关联性

  • 加入目标网络:DQN利用目标网络降低当前Q值和目标Q值间的关联性

    在利用神经网络逼近值函数时,计算TD目标的动作值函数所用的网络参数

    与梯度计算中要逼近的值函数所用的网络参数相同,这样就存在关联性(数据样本和网络训练之间的相关性)

    为了解决该问题,加入了目标网络,计算值函数逼近的网络表示为

    用于动作值函数逼近的网络表示为

    而该动作值函数网络在固定的步数更新一次

参考链接


0%