Skip to content

This project contains several Deep Reinforcement Learning method and some experiments basd on OpenAi gym.

Notifications You must be signed in to change notification settings

shenweichen/ReinforcementLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeepRL

对最近看的一些强化学习方法进行记录

使用说明

  1. 运行solve.py,当满足问题解决条件后,会自动保存模型。
  2. 运行test.py,加载保存的模型进行测试。

实验说明

  1. Cart-Pole-v1
    这是一个比较简单的测试环境,输入状态为4维的连续值组成的向量,输出动作为2个离散动作。 在该环境中,小车能够连续100局保持大于475个step即为解决。
    实验结果和相关统计图表

方法介绍

Value-Based

Q-Learning

传统的Q-Learning方法对于每一个(state,action) 对,需要维护其价值。那么当state的维度升高时,就会导致维度灾难,例如对于一个输入是原始图像数据的环境来说,假设输入是的像素图片,每个像素有256种取值,那么总共的状态数为种。这是一个很大数字,会导致存储Q-Tabel消耗巨大的空间,同时Q-Value也将变得非常稀疏,导致学习难以进行。

Deep Q-Leaning

引入神经网络来对Q(s,a)进行近似表示。神经网络输入为state_size维度的向量,输出为action_size维度的向量,每一维代表一个Q(s,a)值。根据DQN的输出,我们可以获得在当前state下每一个action的Q-Value,根据Q-Value来选择当前的action。

这里简要介绍几种经典的DQN方法,具体细节请查阅相关论文

  • Nips DQN

    Playing Atari with Deep Reinforcement Learning, Mnih et al., 2013

    • 提出了end2end的DQN学习方法(针对图像输入,使用CNN提取图像信息)
    • 引入经验回放
      1. 每个step的经验可能被使用多次,提高数据利用率
      2. 连续若干step的经验存在着强相关性,从经验池中随机选择样本有助于打破相关性减少更新的方差
  • Nature DQN

    Human-level control through deep reinforcement learning, Mnih et al., 2015

    • 引入了Target Q网络,在计算Target Q值(相当于DQN更新时的label)的时候使用专门的TargetQ网络计算,减少目标Q值与当前Q值得相关性。每隔若干step使用当前Q网络的参数更新TargetQ网络。
    • clip error 提出将error截断在-1,1之间,提升稳定性
  • Double DQN

    Deep Reinforcement Learning with Double Q-learning, van Hasselt et al., 2015

    • 主要提出在计算Target Q值的时候,使用当前网络选择贪婪策略,然后使用Target Q网络来评估策略。这样有利于减少由于直接使用max(Target Q)值带来的过度估计。
    • 注意和Double Q-Learning进行区分(Double Q-Learning是交替交换两个Q的角色进行更新,而Double DQN依然是若干step使用当前网络更新TargetQ网络)
  • Dueling DQN

    Dueling Network Architectures for Deep Reinforcement Learning, Wang et al., 2016

    • 在某些情况下,我们更关注agent所处的state如何,而不是其在该state下做出的action。
    • 主要提出一种duelling结构,将Q网络分解为Value和Advantage,分别学习当前state的价值和在当前状态下各个action的相对价值。最后将两个通道的输出相加得到估计得Q-Value
    • 实现过程中由于Q = V+A,对V和A同时加减一个常量不影响Q值的大小,为了能得到固定的V和A,对A减去所有A的均值。

Policy-Based

待补充

Actor-Critic

待补充

About

This project contains several Deep Reinforcement Learning method and some experiments basd on OpenAi gym.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages