文章目录
👀参考视频
📚从零理解Q值:你的“动作银行卡”
🐇Q值到底是什么
- 在强化学习中,Q值(Q-value)代表着一个状态-动作对的价值。
- 具体来说,Q值衡量了在特定状态下采取特定动作能够获得的长期累积奖励的期望值。
- Q值函数通常以
Q(s, a)
的形式表示,其中s表示状态,a表示动作。 - 强化学习算法通过不断更新Q值函数来指导智能体在环境中做出当前最优的决策,以最大化长期累积奖励。
- 想象你是一个投资人,每个股票(动作)在不同市场环境(状态)下都有一个长期收益预期值(Q值)。
- 例如:Q(熊市, 买入科技股) = -50(可能被套牢),Q(牛市, 买入科技股) = +200(可能大赚)
- 你的目标是找到每个环境下最赚钱的投资策略。Q值的本质是智能体对“动作价值”的估计。就像你有一个“动作银行卡”,每次在某个状态下采取某个动作,你都会根据结果(奖励)更新这个“银行卡”的余额。余额越高,说明这个动作越值得信赖。
- 再举个例子,想象你是一个外卖员,Q值就是你对“送餐路线”的评分。
- 如果你选择了一条熟悉的路(动作A),虽然绕远但安全,可能获得+10分(奖励)。
- 如果你选择了一条新路(动作B),虽然更快但可能堵车,可能获得+50分(成功)或-30分(迟到被投诉)。
- 随着送餐次数增加,你会逐渐知道每条路的长期价值,这就是Q值的作用。
🐇Q值如何计算
- 假设你在迷宫里:
- 当前动作:向右走,获得即时奖励+5分(捡到金币)。
- 下一状态:遇到岔路口,预估最优路径能再赚未来奖励90分 。
- 折扣因子γ=0.9——未来的奖励是不确定的,就像你今天有100元,但未来的100元可能因为通货膨胀只值90元。
- Q值更新: 新 Q 值 = 老 Q 值 + 学习率 × ( 即时奖励 + γ × 下一状态最优 Q 值 − 老 Q 值 ) 新Q值 = 老Q值 + 学习率 × (即时奖励 + γ × 下一状态最优Q值 - 老Q值) 新Q值=老Q值+学习率×(即时奖励+γ×下一状态最优Q值−老Q值)。
- 解读:就像把这次赚的5元和未来预期的81元(90×0.9)合并,更新你对“向右走”这个动作的信任度。
🐇参数设置详解
- 学习率α(0 < α ≤ 1)
- α=0.1:更新缓慢,“顽固派”——需要10次相同经历才显著改变策略。
- α=0.9:更新激进,“金鱼记忆”——一次经历就能颠覆认知。
- 折扣因子γ(0 ≤ γ < 1)
- γ=0:智能体只关心眼前的奖励(短视);
- γ=0.95:智能体会更关注长期收益(长远规划)。
- 假设你在玩一个游戏:当前动作吃掉一个金币(+5分),但会进入一个危险区域。下一状态危险区域可能让你掉入陷阱(-100分),也可能让你拿到宝藏(+100分)。
- 如果γ=0.9,智能体会计算:5 + 0.9×(100) = 95分(乐观估计);
- 如果γ=0.5,智能体会计算:5 + 0.5×(100) = 55分(更保守)。
🐇On-policy vs Off-policy
特性 | On-policy | Off-policy |
---|---|---|
学习方式 | 基于实际执行的动作更新策略 | 基于独立的行为策略收集数据,用目标策略更新 |
风险偏好 | 谨慎,避免冒险 | 乐观,鼓励探索 |
适用场景 | 高风险场景(如医疗决策) | 探索充分的场景(如游戏AI) |
典型算法 | Sarsa | Q-Learning |
📚Q-Learning:“怕什么?理论上这条路最好!”
- Q-Learning的核心是乐观假设:它总是假设下一步会采取最优动作(即使现实中可能不会)。就像炒股高手会假设自己总能选到下一只“潜力股”,即使实际操作中可能因为情绪或错误而选错。
- 优点:它鼓励探索,因为智能体会不断追求“理论上的最优路径”。
- 缺点:容易高估Q值(因为假设总是最优),导致冒险行为。
- Q-Learning更新公式: Q ( S , A ) ← Q ( S , A ) + α [ R + γ max a Q ( S ′ , a ) − Q ( S , A ) ] Q(S,A) \leftarrow Q(S,A) + \alpha [ R + \gamma \max_{a}Q(S',a) - Q(S,A) ] Q(S,A)←Q(S,A)+α[R+γmaxaQ(S′,a)−Q(S,A)]
- max的放大效应:假设每次都能选到下一状态的最优动作,导致Q值被持续推高。 就像总用班级最高分作为自己的下次考试目标,容易过于乐观。结果就是在危险边缘反复试探,直到精确掌握最优路径。
- 假设你在玩一个迷宫游戏:
- 当前状态S:迷宫入口。
- 动作A:向右走(奖励+5分,进入岔路口)。
- 动作B:向左走(奖励-10分,撞墙)。
- Q-Learning会计算:向右走的价值 = 5 + γ×(岔路口的最优路径价值)。
- 它不会考虑“现实中你可能乱选动作”,而是直接假设你下一步会选最优路径。
📚Sarsa算法:“别冒险!我们一起慢慢来。”
- Sarsa的核心是实际执行:它会根据下一步实际选择的动作(而不是理论最优动作)来更新Q值。就像学骑车的孩子,每次调整车把后,必须执行下一个动作(即使可能摔倒),才能知道这对平衡的影响。
- 优点:更谨慎,不会高估Q值。
- 缺点:可能过于保守,不敢冒险尝试最优路径。
- 假设你在玩一个闯关游戏:
- 当前状态S:第一关。
- 动作A:按策略选择“跳过障碍”(80%成功率)。
- 动作B:随机选择“撞墙”(20%概率)。
- Sarsa会计算:跳过障碍的价值 = 奖励 + γ×(下一状态的实际动作价值)。
- 就像孩子每次调整车把后,必须执行下一个真实动作(即使可能摔倒),才能知道这对长期平衡的影响。如果你撞墙了,Sarsa会根据“撞墙”的后果更新Q值,而不是假设你成功跳过了障碍。
- Sarsa像亲自试错:必须执行A’才知道后果,因此更谨慎。适合高风险场景(如医疗决策),因为它会根据实际选择的动作更新策略,避免冒险。
- Q-Learning像开上帝视角:假设下一步总能选最优动作,因此更乐观。适合探索充分的场景(如游戏AI),因为它会大胆追求“理论上的最优路径”。
📚Sarsa(λ)算法:像寻宝游戏中的“路径回顾”
- 假设你是一个寻宝者,目标是找到迷宫中的宝藏。在寻宝过程中,你每走一步都会获得一些线索(奖励),但只有到达宝藏时,你才能真正获得奖励。Sarsa(λ) 的核心思想是:在找到宝藏后,回顾整个寻宝路径,对每一步都进行更新,而不是只更新最后一步。
- Sarsa(λ) 的核心机制资格迹(Eligibility Trace)L:这是一个“记忆”机制,用来记录每一步的重要性。就像你在迷宫中留下的脚印,离宝藏越近的脚印越清晰,说明这些步对找到宝藏越重要。
- λ(lambda)参数:λ 是一个衰减值(0 ≤ λ ≤ 1),决定了离宝藏越远的步对最终奖励的影响程度。
- λ=0:只更新最后一步(Sarsa的单步更新)。每走一步,只更新这一步的Q值。就像你每走一步就立刻调整策略,但不知道这一步是否真的重要。
- λ=1:更新所有步(回合更新)。等到找到宝藏后,一次性更新所有步的Q值。就像你找到宝藏后,回顾整个路径,发现每一步都对找到宝藏有贡献。
- λ在0和1之间:在找到宝藏后,根据λ的值,对路径中的每一步进行不同程度的更新。离宝藏越近的步更新力度越大,这样可以更高效地学习。
- Sarsa(λ) 的优点:
- 学习效率更高:通过回顾整个路径,Sarsa(λ) 可以更高效地更新Q值,而不是只依赖最后一步。
- 灵活性强:通过调整λ,可以在单步更新和回合更新之间找到平衡。
- 适合复杂任务:在需要长期规划的任务中(如自动驾驶、游戏AI),Sarsa(λ) 能更快地找到最优策略。
- Sarsa(λ) 是一种“路径回顾”的学习方法。它通过资格迹和λ参数,让智能体在找到奖励后,回顾整个路径,对每一步都进行不同程度的更新。这种方法既避免了单步更新的短视,又比回合更新更灵活,适合需要长期规划的场景。
- Q-Learning像一个乐观的投资者,总是假设下一步会选最优动作,追求潜在的最大回报,即使实际操作中可能不会那么完美。
- Sarsa像一个谨慎的投资者,只根据实际执行的动作来调整策略,避免冒险,适合高风险场景。
- **Sarsa(λ)**像一个聪明的投资者,会回顾整个操作路径,根据每一步的贡献来调整策略,离成功越近的步骤影响越大。