人工智能课总结 : 第7章 强化学习
期末模拟试卷解析 <7 强化学习>
6.(判断题)(T, F) Q-Learning 属于基于模型 (Model-Based) 的强化学习算法
解答 : F。
Q-Learning 属于 “无模型 (Model-Free)+ 价值式 (Value-Based)+ 离策略 (Off-Policy)” 算法, 不依赖对环境状态转移概率和奖励函数的显式建模。
我没在 PPT 上看到这句话()。
Q - Learning 算法:
其中:
-
\(Q(s_t, a_t)\) 是时间步 \(t\) 的状态 \(s_t\) 下采取动作 \(a_t\) 的 Q 值。
-
\(\alpha\) 是学习率,它决定了新信息对 Q 值更新的影响程度。
-
\(r_{t+1}\) 是在采取动作 \((s_t, a_t)\)后的即时奖励。
-
\(\gamma\) 是折扣因子,它反映了未来奖励相对于即时奖励的重要性。
-
\(\max_a Q(s_{t+1}, a)\) 是在新状态 \(s_{t+1}\) 下所有可能动作的最大 Q 值,代表了对未来奖励的最大预期。
显然,这没有提及策略。
- (10 分) 考虑如下简单的网格世界 MDP:
- 状态集 \(S = \{s_1, s_2, s_3, s_4\}\)
- 动作集 \(A = \{Up, Down, Left, Right\}\);
- 折扣因子 \(\gamma = 0.9\);
- 学习率 \(\alpha = 0.1\);
- 初始 \(Q\) 值表中所有 \(Q(s, a) = 0\).
Q-learning 的更新公式为:
\[Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \big[ r_t + \gamma \max_a Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \big] \]
SARSA 的更新公式为:
\[Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \big[ r_t + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \big] \]
(1) 请根据 SARSA 和 Q-learning 的更新公式, 解释为什么 SARSA 是在策略 (on-policy) 学习, Q-learning 是离策略 (off-policy) 学习. (5 分)
(2) 假设初始 \(Q\) 值表中 \(Q(s_3, Up) = 0.5, Q(s_3, Down) = 1.0, Q(s_5, Left) = 2.0, Q(s_5, Right) = 1.5\), 其余部分全为 0. 考虑如下的交互序列:
- 从 \(s_2\) 执行 \(Right\) 到 \(s_3\), 奖励 \(r_1 = 5\);
- 从 \(s_3\) 执行 \(Up\) 到 \(s_5\), 奖励 \(r_2 = 3\);
- 从 \(s_5\) 执行 \(Left\) 到 \(s_4\), 奖励 \(r_3 = 1\).
若 \(s_4\) 为终止状态, 即 \(Q(s_4, -) = 0\), 请分别计算 SARSA 和 Q-learning 的 \(Q\) 值更新过程. (5 分)
参考答案:
(1) SARSA: 目标值中的 \(Q(s_{t+1}, a_{t+1})\) 不是对下一状态所有动作取最大值, 而是用智能体实际在下一个状态 \(s_{t+1}\) 真正选择的动作 \(a_{t+1}\) 的价值. 这意味着智能体使用同一个策略 (例如 \(\varepsilon\)-greedy) 去生成下一个动作 \(a_{t+1}\), 同一个策略又用来评估 (更新) 当前动作 \(a\) 的价值. 因为评估过程和采样过程都依赖同一个策略, SARSA 就是典型的在策略 (on-policy) 算法.
Q-learning: 目标值中的 \(Q(s_{t+1}, a_{t+1})\) 是对下一状态 \(s_{t+1}\) 下所有可能动作 \(a_{t+1}\) 的价值做最大化. 它完全不考虑智能体当前真正会选哪个动作, 而是「假设」智能体在 \(s_{t+1}\) 一定会选最优动作 (即取最大 \(Q\) 值的动作). 此时行为策略 (behavior policy) 是智能体实际用来采样数据、选择动作的策略 (可以是 \(\varepsilon\)-greedy 等), 目标策略 (target policy) 是 Q-learning 在更新时所假设或评估的策略, 即始终选择 \(Q\) 值最大的动作. 因为目标值是基于一个与行为策略 (真实采样时用的策略) 无关的最优动作, 所以 Q-learning 属于离策略 (off-policy) 算法.
(2) SARSA:
第一步: 从 \(s_2\) 执行 \(Right\) 到 \(s_3\), 奖励 \(r_1 = 5\):\[\begin{align*} Q(s_2, Right) &\leftarrow Q(s_2, Right) + \alpha \big[ r_1 + \gamma \cdot Q(s_3, Up) - Q(s_2, Right) \big] \\ &= 0 + 0.1 \cdot (5 + 0.9 \cdot 0.5 + 0) \\ &= \boxed{0.545} \end{align*} \]
第二步: 从 \(s_3\) 执行 \(Up\) 到 \(s_5\), 奖励 \(r_2 = 3\):
\[\begin{align*} Q(s_3, Up) &\leftarrow Q(s_3, Up) + \alpha \big[ r_2 + \gamma \cdot Q(s_5, Left) - Q(s_3, Up) \big] \\ &= 0.5 + 0.1 \cdot (3 + 0.9 \cdot 2.0 - 0.5) \\ &= \boxed{0.93} \end{align*} \]
第三步: 从 \(s_5\) 执行 \(Left\) 到 \(s_4\), 奖励 \(r_3 = 1\):
\[\begin{align*} Q(s_5, Left) &\leftarrow Q(s_5, Left) + \alpha \big[ r_3 + \gamma \cdot Q(s_4, -) - Q(s_5, Left) \big] \\ &= 2.0 + 0.1 \cdot (1 + 0 - 2.0) \\ &= \boxed{1.9} \end{align*} \]
Q-learning:
第一步: 从 \(s_2\) 执行 \(Right\) 到 \(s_3\), 奖励 \(r_1 = 5\):\[\begin{align*} Q(s_2, Right) &\leftarrow Q(s_2, Right) + \alpha \left[ r_1 + \gamma \cdot \max_{a'} Q(s_3, a') - Q(s_2, Right) \right] \\ &= 0 + 0.1 \cdot \big[ 5 + 0.9 \cdot \max(0.5, 1.0, 0, 0) \big] \\ &= 0.1 \cdot (5 + 0.9 \cdot 1.0) = \boxed{0.59} \end{align*} \]
第二步: 从 \(s_3\) 执行 \(Up\) 到 \(s_5\), 奖励 \(r_2 = 3\):
\[\begin{align*} Q(s_3, Up) &\leftarrow Q(s_3, Up) + \alpha \left[ r_2 + \gamma \cdot \max_{a'} Q(s_5, a') - Q(s_3, Up) \right] \\ &= 0.5 + 0.1 \cdot \big[ 3 + 0.9 \cdot \max(2.0, 1.5, 0, 0) - 0.5 \big] \\ &= 0.5 + 0.1 \cdot (3 + 1.8 - 0.5) = \boxed{0.93} \end{align*} \]
第三步: 从 \(s_5\) 执行 \(Left\) 到 \(s_4\), 奖励 \(r_3 = 1\):
\[\begin{align*} Q(s_5, Left) &\leftarrow Q(s_5, Left) + \alpha \left[ r_3 + \gamma \cdot \max_{a'} Q(s_4, a') - Q(s_5, Left) \right] \\ &= 2.0 + 0.1 \cdot \big[ 1 + 0.9 \cdot 0 - 2.0 \big] \\ &= 2.0 + 0.1 \cdot (-1.0) = \boxed{1.9} \end{align*} \]
首先,二者的区别很明显,在于状态 \(s_{t + 1}\) 改采取怎样的行动 \(a_{t + 1}\),即使用什么样的策略。
SARSA 采取的策略是已知的、固定的,取的是一定的 \(s_{t+1}, a_{t+1}\),显然是基于策略的。
(这个好像迭代价值评估的算法啊,只不过那个评估的是状态价值函数,基于策略求状态价值函数,这个求的是动作价值函数,在多次迭代后收敛)
Q - Learning 算法所采取的策略是未知的,是在探索各个不同的动作后取最大值,不基于策略。最后函数收敛到最优 Q 值,学习到最优的策略。
(2) 就是一个小小的手算推导,注意只需要求在这个交互序列下的更新,所以没有给出策略,我算的时候一直在找策略在哪,简单,直接套公式就行了,甚至公式都不用记!已经给你了。
所以这道题可以再拓展一下求求 Q - Learning 算法下的策略的优化。
我来出出第三题!
(3) 在 Q - Learning 算法下,求出优化两代后的策略。
(这题还不太能做,因为没给全状态在动作下的转移)
第 7 章知识梳理
概念
马尔可夫奖励过程(Markov Reward Process, MRP)
一个 马尔可夫奖励过程(Markov Reward Process, MRP) 可以表示为一个四元组 \(\langle \mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma \rangle\),其中:
-
\(\mathcal{S}\) 是状态的(有限)集合
-
\(\mathcal{P}\) 是状态转移矩阵,\(\mathcal{P}_{ss'} = P(S_{t+1} = s' | S_t = s)\)
-
\(\mathcal{R}\) 是奖励函数,\(R_s = \mathbb{E}[R_{t+1} | S_t = s]\)
-
\(\gamma\) 是折扣因子,\(\gamma \in [0, 1]\)
在一个马尔可夫奖励过程(MRP)中,在时间步 \(t\) 开始计算的 回报(Return) \(G_t\) 指的是从时间步 \(t\) 开始累积的折扣奖励总和:
其中,折扣因子 \(\gamma \in [0,1]\) ,\(R_t\) 表示在时刻 \(t\) 获得的奖励。
在一个马尔可夫奖励过程(MRP)中,状态价值函数(State Value Function) \(v(s)\) 定义为从状态 \(s\) 开始时的期望回报:
马尔可夫决策过程(Markov Decision Process, MDP)
马尔可夫决策过程是在马尔可夫奖励过程基础上增加了动作决策。
一个 马尔可夫决策过程(Markov Decision Process, MDP) 可以表示为一个五元组 \(\langle \mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma \rangle\),其中:
-
\(\mathcal{S}\) 是状态的(有限)集合
-
\(\mathcal{A}\) 是动作的(有限)集合
-
\(\mathcal{P}\) 是状态转移矩阵,\(\mathcal{P}_{ss'}^a = P(S_{t+1} = s' \mid S_t = s, A_t = a)\)
-
\(\mathcal{R}\) 是奖励函数,\(R_s^a = \mathbb{E}[R_{t+1} \mid S_t = s, A_t = a]\)
-
\(\gamma\) 是折扣因子,\(\gamma \in [0, 1]\)
策略(Policy) \(\pi\) 是在给定状态 \(s\) 时,采取各动作 \(a\) 的概率分布:
在给定策略 \(\pi\) 的 MDP 中,状态价值函数(State Value Function) \(v_\pi(s)\) 表示从状态 \(s\) 开始,随后按照策略 \(\pi\) 行动时的期望回报:
在给定策略 \(\pi\) 的 MDP 中,动作价值函数(Action Value Function) \(q_\pi(s, a)\) 表示从状态 \(s\) 开始,先执行动作 \(a\),然后按照策略 \(\pi\) 行动时的期望回报:
算法
迭代策略评估
给定 MDP 模型,评估策略 \(\pi\),计算其价值函数 \(v_\pi\) 。
策略迭代算法
- 策略评估(Policy Evaluation)
给定策略 \(\pi\) ,求出其价值函数 \(v_\pi\) 。
- 策略改进(Policy Improvement)
采取贪心策略,在策略 \(\pi\) 上,改进策略。
Q - Learning 算法
其中:
-
\(Q(s_t, a_t)\) 是时间步 \(t\) 的状态下采取动作 \(a_t\) 的 Q 值。
-
\(\alpha\) 是学习率,它决定了新信息对 Q 值更新的影响程度。
-
\(r_{t+1}\) 是在状态 \(s_t\) 下采取动作 \(a_t\) 后获得的即时奖励。
-
\(\gamma\) 是折扣因子,它反映了未来奖励相对于即时奖励的重要性。
-
\(\max_a Q(s_{t+1}, a)\) 是在新状态 \(s_{t+1}\) 下所有可能动作的最大 Q 值,代表了对未来奖励的最大预期。
环境模型未知,事先不知道状态转移概率。

浙公网安备 33010602011771号