本文目录
在强化学习中,Q-learning 是一种经典的 off-policy 算法,用于学习最优策略。它的核心思想是通过更新 Q 值(动作价值函数)来找到在给定状态下采取哪个动作能够最大化累积奖励。Q-learning 的策略可以分为两个部分:行为策略(用于探索)和 目标策略(用于学习)。
1. Q-learning 的策略
Q-learning 的策略分为两部分:
(1)行为策略(Behavior Policy)
-
用于与环境交互,生成经验数据(状态、动作、奖励、下一状态)。
-
通常使用 ε-贪婪策略(ε-greedy policy):
- 以概率 ε 随机选择动作(探索)。
- 以概率 1-ε 选择当前 Q 值最大的动作(利用)。
-
通过调整 ε,可以控制探索与利用的平衡。
(2)目标策略(Target Policy)
-
用于更新 Q 值,目标是找到最优策略。
-
Q-learning 使用 贪婪策略(greedy policy) 作为目标策略:
总是选择当前 Q 值最大的动作。 这意味着 Q-learning 直接学习最优策略,而不依赖于行为策略。
2. Q-learning 的更新规则
Q-learning 通过以下公式更新 Q 值:
Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]
Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
ss:当前状态。
aa:当前动作。
rr:执行动作后获得的奖励。
s′s′:下一状态。
a′a′:在下一状态中可能采取的动作。
αα:学习率,控制更新步长。
γγ:折扣因子,衡量未来奖励的重要性。
关键点:
Q-learning 更新时,使用 max 操作来选择下一状态的最优动作,这体现了它的 off-policy 特性。
它不依赖于行为策略,而是直接学习最优策略。
3. Q-learning 的特点
Off-policy:学习的最优策略(目标策略)与行为策略可以不同。
收敛性:在满足一定条件下(如充分探索),Q-learning 可以收敛到最优 Q 值函数。
无需模型:Q-learning 是一种无模型(model-free)算法,不需要知道环境的状态转移概率。
4. Q-learning 的伪代码
初始化 Q(s, a) 为任意值
for 每个回合:
初始化状态 s
while 状态 s 不是终止状态:
使用 ε-贪婪策略从状态 s 选择动作 a
执行动作 a,观察奖励 r 和下一状态 s'
更新 Q 值:
Q(s, a) = Q(s, a) + α * [r + γ * max(Q(s', a')) - Q(s, a)]
更新状态 s = s'