| 第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:分离状态价值与优势函数=== |