更改

跳到导航 跳到搜索
添加3,728字节 、 2025年5月16日 (五) 00:05
第224行: 第224行:  
===Q-Learning 的局限性===
 
===Q-Learning 的局限性===
    +
Q-Learning 广泛应用于多种决策任务。在实际应用中,它的局限性主要体现在以下几个方面:(1)状态-动作空间维度灾难(Curse of Dimensionality):Q-Learning 使用 Q 表来存储每个状态-动作对的价值。当状态或动作空间非常大时,Q 表的尺寸会急剧膨胀,导致存储和更新变得不切实际。
 +
 +
例如,在具有数百万状态和动作的环境中,传统的 Q 表方法可能无法有效处理。为了解决这个问题,通常采用函数逼近方法,如线性函数逼近或深度神经网络,以估计 Q 值,从而避免直接使用庞大的 Q 表。
 +
 +
(2)在状态和动作空间较大的环境中,Q-Learning 的学习过程可能非常缓慢,通常需要大量的训练回合才能收敛到最优策略。这种慢收敛性使得 Q-Learning 在需要快速学习的应用场景中可能不太适用。[https://www.appliedaicourse.com/blog/q-learning-in-machine-learning/?]
 +
 +
(3)探索与利用的平衡问题:Q-Learning 依赖于探索(exploration)和利用(exploitation)之间的平衡。过度探索可能导致学习效率低下,而过度利用可能导致陷入局部最优解。例如,ε-greedy 策略通过引入随机性来平衡探索与利用,但选择合适的 ε 值仍然是一个挑战。
 +
 +
(4)对超参数敏感:Q-Learning 的性能对学习率(α)、折扣因子(γ)和探索率(ε)等超参数非常敏感。选择不当的超参数可能导致学习过程不稳定或收敛到次优解。例如,过高的学习率可能导致 Q 值更新过快,导致震荡;而过低的学习率可能导致学习过程过慢。
 +
 +
(5)对函数逼近的稳定性问题:当使用函数逼近(如神经网络)来估计 Q 值时,Q-Learning 可能出现不稳定或发散的情况,尤其是在非线性函数逼近器的情况下。
 +
 +
这种不稳定性主要源于估计目标值与当前 Q 值之间的相互依赖关系。为了解决这个问题,提出了 Double Q-Learning 等方法,通过使用两个独立的 Q 值估计器来减少过估计偏差,从而提高稳定性。[https://en.wikipedia.org/wiki/Q-learning?utm_source=chatgpt.com]
    
==DQN 的核心思想与结构==
 
==DQN 的核心思想与结构==
第250行: 第263行:     
===Double DQN:解决 Q 值过高估计问题===
 
===Double DQN:解决 Q 值过高估计问题===
 +
在经典的 Q-Learning 及其深度版本 DQN(Deep Q-Network)中,动作值函数的估计存在系统性偏差,即'''过高估计(overestimation bias)'''。这种偏差源自于最大化操作:
 +
 +
<nowiki><math> \max_{a} Q(s', a; \theta) </math></nowiki>
 +
 +
当估计的 Q 值存在噪声时,直接选取最大 Q 值动作容易导致期望的过高估计,从而影响策略的稳定性和最终性能。
 +
 +
====Double DQN的思想====
 +
为缓解过高估计问题,Double Q-Learning(Van Hasselt, 2010)引入了动作选择和动作评估的分离:
 +
 +
动作选择使用当前 Q 网络参数选择动作;
 +
 +
动作评估使用目标网络参数计算该动作的 Q 值。
 +
 +
其目标值计算方式为:
 +
 +
<math> y^{DoubleQ}_t = r_t + \gamma Q(s_{t+1}, \arg\max_a Q(s_{t+1}, a; \theta_t); \theta_t^-) </math>
 +
其中:θt是当前 Q 网络参数;
 +
 +
====Double DQN算法实现====
 +
 +
 +
====Double DQN的优势====
 +
 +
传统 DQN 在更新时,直接用目标网络估计的最大 Q 值作为目标,这种“最大化”操作容易从噪声中挑选出偏大值,导致整体偏高。Double DQN 则先用当前网络挑选动作,再用目标网络计算价值,避免了单一网络同时负责选动作和评估动作价值所带来的偏差。Double DQN 是一种简单有效的改进策略,通过“动作选择”和“动作评估”分开估计,显著缓解了 Q 值过高估计问题,提高了深度强化学习算法的稳定性和性能,已成为深度强化学习领域的重要方法之一。
    
===Dueling DQN:分离状态价值与优势函数===
 
===Dueling DQN:分离状态价值与优势函数===
281

个编辑

导航菜单