人工智能课总结 : 第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) \leftarrow Q(s_t,a_t) + \alpha [r + \gamma \max_{a'} Q(s'_{t + 1},a'_{t + 1}) - Q(s_ t,a_t)] \]

其中:

  • \(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 值,代表了对未来奖励的最大预期。

显然,这没有提及策略。

  1. (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. 考虑如下的交互序列:

  1. \(s_2\) 执行 \(Right\)\(s_3\), 奖励 \(r_1 = 5\)
  2. \(s_3\) 执行 \(Up\)\(s_5\), 奖励 \(r_2 = 3\)
  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(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] \]

(这个好像迭代价值评估的算法啊,只不过那个评估的是状态价值函数,基于策略求状态价值函数,这个求的是动作价值函数,在多次迭代后收敛)

Q - Learning 算法所采取的策略是未知的,是在探索各个不同的动作后取最大值,不基于策略。最后函数收敛到最优 Q 值,学习到最优的策略。

\[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] \]

(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\) 开始累积的折扣奖励总和:

\[G_t = R_{t+1} + \gamma R_{t+2} + \dots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \]

其中,折扣因子 \(\gamma \in [0,1]\)\(R_t\) 表示在时刻 \(t\) 获得的奖励。

在一个马尔可夫奖励过程(MRP)中,状态价值函数(State Value Function) \(v(s)\) 定义为从状态 \(s\) 开始时的期望回报:

\[v(s) = \mathbb{E}[G_t \mid S_t = s] \]

\[v(s) = \mathcal{R}_s + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'} v(s') \]

\[v = \mathcal{R} + \gamma \mathcal{P} v \]

马尔可夫决策过程(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(a \mid s) = P[A_t = a \mid S_t = s] \]

在给定策略 \(\pi\) 的 MDP 中,状态价值函数(State Value Function) \(v_\pi(s)\) 表示从状态 \(s\) 开始,随后按照策略 \(\pi\) 行动时的期望回报:

\[v_\pi(s) = \mathbb{E}_\pi \big[ G_t \mid S_t = s \big] \]

\[v_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a \mid s) q_\pi(s, a) \]

\[v_\pi = \mathcal{R}^\pi + \gamma \mathcal{P}^\pi v_\pi \]

\[V_\pi(s) = \sum_{a \in A} \pi(a \mid s) \left( R(s, a) + \gamma \sum_{s' \in S} P(s' \mid s, a) V_\pi(s') \right), \]

在给定策略 \(\pi\) 的 MDP 中,动作价值函数(Action Value Function) \(q_\pi(s, a)\) 表示从状态 \(s\) 开始,先执行动作 \(a\),然后按照策略 \(\pi\) 行动时的期望回报:

\[q_\pi(s, a) = \mathbb{E}_\pi \big[ G_t \mid S_t = s, A_t = a \big] \]

\[q_\pi(s, a) = \mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a \sum_{a' \in \mathcal{A}} \pi(a' \mid s') q_\pi(s', a') \]

算法

迭代策略评估

给定 MDP 模型,评估策略 \(\pi\),计算其价值函数 \(v_\pi\)

\[v_{k+1}(s) = \sum_{a \in \mathcal{A}} \pi(a \mid s) \left( \mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a v_k(s') \right) \]

策略迭代算法

  1. 策略评估(Policy Evaluation)

给定策略 \(\pi\) ,求出其价值函数 \(v_\pi\)

  1. 策略改进(Policy Improvement)

采取贪心策略,在策略 \(\pi\) 上,改进策略。

Q - Learning 算法

\[Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)] \]

其中:

  • \(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 值,代表了对未来奖励的最大预期。

环境模型未知,事先不知道状态转移概率。

posted @ 2025-06-20 22:08  Antimerry  阅读(42)  评论(0)    收藏  举报