强化学习入门(五)连续动作空间内,使用DDPG求解强化学习问题

本文内容源自百度强化学习 7 日入门课程学习整理
感谢百度 PARL 团队李科浇老师的课程讲解

一、离散动作 VS 连续动作

1.1 区别

在这里插入图片描述
离散动作:

  • 动作都是可数的
  • 比如在 CartPole 环境中,向左推动小车,或者向右推动(力量是不变的)
  • 比如在 FrozenLake 环境中,向上下左右 4 个方向移动
  • 在 Atari 的 Pong 环境中,球拍上下移动

连续动作:

  • 动作是连续的浮点数
  • 比如在另一种 CartPole 环境中,设定推力为 -1~1,包含了方向又包含了力度
  • 比如开车,方向盘的旋转角度:-180~180
  • 四轴飞行器,控制马达的电压:0~15

1.2 神经网络修改

在这里插入图片描述
在连续动作空间中,Sarsa,Q-learning,DQN,Policy Gradient 都无法处理

所以我们要用一个替代方案:

  • 在 Policy Gradient 中,输入状态 s,使用策略网络输出不同动作的概率
    • 随机性策略: π θ ( a t ∣ s t ) π_θ(a_t|s_t) πθ(atst)
  • 在连续动作环境下,输出的是一个具体的浮点数,这个浮点数代表具体的动作(比如包含了方向和力的大小)
    • 确定性策略: μ θ ( s t ) μ_θ(s_t) μθ(st)

1.3 激活函数选择

在这里插入图片描述
离散动作环境:

  • 输出层使用 softmax,确保每个动作输出概率加总为 1

连续动作环境:

  • 输出层使用 tanh,即输出为 -1~1 之间的浮点数
  • 经过缩放,对应到实际动作

二、DDPG(Deep Deterministic Policy Gradient)

在这里插入图片描述
DDPG 算法可以理解为 DQN 在连续动作网络中的修正版本

  • Deterministic:代表直接输出确定性动作 a = μ ( s ) a=μ(s) a=μ(s)
  • Policy Gradient:是策略网络,但是是单步更新的策略网络

该算法借鉴了 DQN 的两个工程上的技巧:

  • 目标网络:target network
  • 经验回放:replay memory

2.1 从 DQN 到 DDPG

在这里插入图片描述
在 DQN 的基础上,加了一个策略网络 Policy Gradient,用来直接输出动作值

  • 在 DQN 中,只有 Q 网络输出 不同动作对应的 Q 值
  • 所以 DDPG 需要同时学习 2 个网络:Q 网络 和 策略网络
  • Q 网络: Q w ( s , a ) Q_w(s,a) Qw
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值