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属于异策略,行为策略可以与目标策略不同
经验回放只适合异策略,不适合同策略