更改

添加22字节 、 2025年5月18日 (日) 16:50
第312行: 第312行:  
为了更长远的提高稳定性,使用一个独立的神经Q网络去得到target y,即建立另一个独立的神经网络target network。每经过c次更新后,复制 network Q得到target network Q’,然后使用Q’去生成target y应用与接下来的c次更新。好处就是比起online Q-learning算法更稳定。因为online Q-learning每次更新在增加Q(st,at)的同时也增加了针对每个a的Q(st+1,a),从而增加了 target y,这又可能会引起策略的震荡甚至发散。所以目标网络(Target Network)的引入可以解决这一问题。
 
为了更长远的提高稳定性,使用一个独立的神经Q网络去得到target y,即建立另一个独立的神经网络target network。每经过c次更新后,复制 network Q得到target network Q’,然后使用Q’去生成target y应用与接下来的c次更新。好处就是比起online Q-learning算法更稳定。因为online Q-learning每次更新在增加Q(st,at)的同时也增加了针对每个a的Q(st+1,a),从而增加了 target y,这又可能会引起策略的震荡甚至发散。所以目标网络(Target Network)的引入可以解决这一问题。
   −
于是损失函数表示为(忽略无关的方差项)
+
于是,
 +
*'''损失函数表示为'''(忽略无关的方差项)
 
<math> L_{i}(θ_{i})=E_{s,a,r,s'}[(r+γ /max_{a'}Q(s',a',θ_{i}^{−})−Q(s,a,θ_{i}))^2] </math>
 
<math> L_{i}(θ_{i})=E_{s,a,r,s'}[(r+γ /max_{a'}Q(s',a',θ_{i}^{−})−Q(s,a,θ_{i}))^2] </math>
−
梯度为
+
*'''梯度为'''
 
<math> ▽_{θ_i} L_i ( θ_i ) = E_{s , a , r , s ′ }[ ( r + γ max _{a ′ }Q ( s ′ , a ′ , θ_{i}^{−} ) − Q ( s , a , θ_{i }) ) ▽ θ_i Q ( s , a , θ_i ) ]  </math>
 
<math> ▽_{θ_i} L_i ( θ_i ) = E_{s , a , r , s ′ }[ ( r + γ max _{a ′ }Q ( s ′ , a ′ , θ_{i}^{−} ) − Q ( s , a , θ_{i }) ) ▽ θ_i Q ( s , a , θ_i ) ]  </math>
 
   
 
   
−
工程中,使用随机梯度下降来完成优化,另外当令 <math> θ_{i}^{−} = θ_{i−1} </math>时,退化为原始的 Q-Learning 更新形式。
+
工程中,使用随机梯度下降方法来完成优化,另外当令 <math> θ_{i}^{−} = θ_{i−1} </math>时,退化为原始的 Q-Learning 更新形式。
    
DQN的训练与参数更新策略可部分参考以下代码实现:
 
DQN的训练与参数更新策略可部分参考以下代码实现:
281

个编辑