强化学习(2)— DQN和Q学习

2.1 DQN
2.1.1 概念回顾:动作价值函数和最优动作价值函数

2.1.2 DQN表达式 Q(s,a;w)
w表示神经网络中的参数,对于所有的s和a,DQN预测的Q(s,a;w)尽可能接近Q*(s,a)
DQN的输入是状态s,输出是离散动作空间A中每个动作的Q值

2.1.3 DQN的梯度
▽w Q(s,a;w)≜𝜕"Q(s,a;w)" /𝜕𝒘,Q(s,a;w)是实数,梯度的形状(维度)与w完全相同

2.2 TD算法
y ̂ ≜ r + (𝑞’) ̂,将y ̂称为TD目标,δ=(𝑞’) ̂ - ( y) ̂称为TD误差

2.3 用TD训练DQN
2.3.1 算法推导
最优贝尔曼公式:Q*(st ,at ) = Est+1~p(• |st , at) [Rt + γ • maxA∈A Q*(st+1 ,A)|St=st , At=at]

与蒙特卡洛方法结合:Q*(st ,at ) ≈ rt + γ • maxa∈A Q*(st+1,a)
将Q*(st ,at )替换成神经网络Q(s,a;w),得到:
Q(st,at;w) ≈ rt+γ•maxa∈A Q*(st+1,a)

定义损失函数L(w)=1/2[Q(st ,at ;w) – y ̂]2
假设y ̂是常数,计算L关于w的梯队:
▽w L(w) = ((𝑞𝑡) ̂ - (𝑦𝑡) ̂)•▽w Q(st ,at ;w)
做一步梯度下降,可以让(𝑞𝑡) ̂更接近 (𝑦𝑡) ̂:
w ← w - α•δt•▽w Q(st ,at ;w)

在这里插入图片描述
2.3.1 训练流程
给定一个四元组(st ,at ,rt ,st+1),可计算出DQN的预测值:𝑞 ̂ = Q(s,a;w)
以及TD目标和TD误差: (𝑦 ) ̂≈ rt+γ•maxa∈A Q*(st+1,w), δt = (𝑞𝑡) ̂- (𝑦𝑡) ̂
TD算法用下式更新DQN的参数:w ← w – α • δt •▽w Q(st ,at ;w)
算法所需的四元组与控制智能体运动的策略无关,DQN训练可分为两部分:
1.收集训练数据(行为策略)
常用ε-greedy策略:

at=

将智能体在一个回合的轨迹:s1 ,a1 ,r1 ,s2 ,a2 ,r2……, sn ,an ,rn
把一条轨迹划分为n个(st ,at ,rt ,st+1)这样的四元组,存入缓存,这个缓存叫经验回放缓存
2.更新参数w
从经验回放缓存随机抽取(sj ,aj ,rj ,sj+1),设DQN当前参数为wnow,执行下面的步骤对参数进行更新,得到新的参数wnew
(1)对DQN做正向传播,得到Q值:
(𝑞𝑗) ̂= Q(sj ,aj ; wnow) , (𝑞"j+1" ) ̂= maxa∈A Q(sj+1 ,a ; wnow)
(2)计算TD目标和TD误差:
(𝑦𝑗) ̂≈ rj+γ • (𝑞"j+1" ) ̂, δt=(𝑞𝑗) ̂ - (𝑦𝑗) ̂
(3)对DQN做反向传播,得到梯度:
gj=▽w Q(sj ,aj ; wnow)
(4)通过做梯度下降更新DQN的参数:
wnew ← wnow - α•δj• gj

在这里插入图片描述
2.4 Q学习算法(表格形式,略)
2.5 同策略和异策略
行为策略:控制智能体与环境交互的策略,用于收集经验,即观测的状态、动作和奖励
目标策略:强化学习的目标是得到一个策略函数,用它来控制智能体,这个策略函数叫目标策略
收集经验的行为策略与控制智能体目标策略相同就称为同策略
收集经验的行为策略与控制智能体目标策略不同就称为异策略
DQN属于异策略,行为策略可以与目标策略不同
经验回放只适合异策略,不适合同策略

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值