模型基础强化学习详解

常青基石

论证完备、逻辑闭环、代码与理论齐备,具备长期持久参考价值。

ℹ数字花园

🌿 什么是数字花园与思想演进?

遵循 Maggie Appleton 与 Andy Matuschak 的常青笔记理念:这里不是按时间沉底的流水账,而是持续修剪打磨的知识生态。文章按成熟度经历:

  • 🌱 萌芽 (Seedling): 发散灵感、读书摘录、开放猜想
  • 🌿 演进 (Budding): 结构渐明、初步代码推导、积极修正
  • 🌳 常青 (Evergreen): 逻辑闭环、持久经得起检验的基石
  • 🔬 实验待证 (Speculative): 结合沙盒与仿真探针的理论探索
浏览全站数字花园与笔记全景 →

引言#

强化学习(Reinforcement Learning, RL)作为机器学习的重要分支,在游戏AI、机器人控制、自动驾驶等领域取得了令人瞩目的成就。而模型基础强化学习(Model-Based Reinforcement Learning)是强化学习的基石,它假设智能体对环境动态有完整或部分的了解。

本文将深入讲解模型基础强化学习的核心概念,包括马尔可夫决策过程(MDP)、值函数、Bellman方程以及经典的动态规划算法。通过理论推导与代码实现相结合的方式,帮助读者建立扎实的强化学习理论基础。

1. 马尔可夫决策过程(MDP)#

1.1 MDP的形式化定义#

马尔可夫决策过程是强化学习问题的数学抽象,由一个五元组定义:

MDP=⟨S,A,P,R,γ⟩\text{MDP} = \langle \mathcal{S}, \mathcal{A}, P, R, \gamma \rangle

各元素含义:

  • S\mathcal{S}:状态空间(State Space),所有可能状态的集合
  • A\mathcal{A}:动作空间(Action Space),所有可能动作的集合
  • PP:状态转移概率(Transition Probability) P(s′∣s,a)=P[St+1=s′∣St=s,At=a]P(s'|s, a) = \mathbb{P}[S_{t+1}=s' | S_t=s, A_t=a]
  • RR:奖励函数(Reward Function) R(s,a,s′)=E[Rt+1∣St=s,At=a,St+1=s′]R(s, a, s') = \mathbb{E}[R_{t+1} | S_t=s, A_t=a, S_{t+1}=s']
  • γ\gamma:折扣因子(Discount Factor),γ∈[0,1]\gamma \in [0, 1]

1.2 马尔可夫性质#

马尔可夫性质(Markov Property)是MDP的核心假设:

P[St+1∣St]=P[St+1∣S1,S2,…,St]\mathbb{P}[S_{t+1} | S_t] = \mathbb{P}[S_{t+1} | S_1, S_2, \ldots, S_t]

含义:未来状态只依赖于当前状态,与历史路径无关。这是一个无记忆性(Memoryless)假设。

数学表达:

P[St+1=s′,Rt+1=r∣S0,A0,R1,…,St,At]=P[St+1=s′,Rt+1=r∣St,At]\mathbb{P}[S_{t+1}=s', R_{t+1}=r | S_0, A_0, R_1, \ldots, S_t, A_t] = \mathbb{P}[S_{t+1}=s', R_{t+1}=r | S_t, A_t]

1.3 回报与折扣#

回报(Return)是从时刻tt开始的累积奖励:

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=∑k=0∞γkRt+k+1G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

折扣因子的作用:

  1. 数学收敛性:保证无限时间步的回报有界 Gt=∑k=0∞γkRt+k+1≤Rmax⁡1−γG_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \leq \frac{R_{\max}}{1-\gamma}

  2. 不确定性建模:未来的不确定性越大,折扣越重

  3. 偏好即时奖励:符合经济学中的”时间偏好”

递归形式:

Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}

1.4 策略(Policy)#

策略π\pi定义了智能体的行为规则:

π(a∣s)=P[At=a∣St=s]\pi(a|s) = \mathbb{P}[A_t=a | S_t=s]

策略类型:

  • 确定性策略:a=π(s)a = \pi(s)
  • 随机性策略:π(a∣s)\pi(a|s),动作概率分布

最优策略的目标:

π∗=arg⁡max⁡πEπ[Gt∣St=s],∀s∈S\pi^* = \arg\max_{\pi} \mathbb{E}_{\pi}[G_t | S_t=s], \quad \forall s \in \mathcal{S}

2. 值函数理论#

2.1 状态值函数(State-Value Function)#

定义:在策略π\pi下,从状态ss开始的期望回报

Vπ(s)=Eπ[Gt∣St=s]=Eπ[∑k=0∞γkRt+k+1∣St=s]V^{\pi}(s) = \mathbb{E}_{\pi}[G_t | S_t=s] = \mathbb{E}_{\pi}\left[\sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \Big| S_t=s\right]

展开形式:

Vπ(s)=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1+γVπ(St+1)∣St=s]\begin{align} V^{\pi}(s) &= \mathbb{E}_{\pi}[R_{t+1} + \gamma G_{t+1} | S_t=s] \\ &= \mathbb{E}_{\pi}[R_{t+1} + \gamma V^{\pi}(S_{t+1}) | S_t=s] \end{align}

2.2 动作值函数(Action-Value Function)#

定义:在状态ss采取动作aa,然后遵循策略π\pi的期望回报

Qπ(s,a)=Eπ[Gt∣St=s,At=a]Q^{\pi}(s, a) = \mathbb{E}_{\pi}[G_t | S_t=s, A_t=a]

与状态值函数的关系:

Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)V^{\pi}(s) = \sum_{a \in \mathcal{A}} \pi(a|s) Q^{\pi}(s, a)

2.3 Bellman期望方程#

状态值函数的Bellman期望方程:

Vπ(s)=∑a∈Aπ(a∣s)∑s′∈SP(s′∣s,a)[R(s,a,s′)+γVπ(s′)]V^{\pi}(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \sum_{s' \in \mathcal{S}} P(s'|s,a) \left[R(s,a,s') + \gamma V^{\pi}(s')\right]

推导过程:

Vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=∑aπ(a∣s)∑s′P(s′∣s,a)[R(s,a,s′)+γEπ[Gt+1∣St+1=s′]]=∑aπ(a∣s)∑s′P(s′∣s,a)[R(s,a,s′)+γVπ(s′)]\begin{align} V^{\pi}(s) &= \mathbb{E}_{\pi}[G_t | S_t=s] \\ &= \mathbb{E}_{\pi}[R_{t+1} + \gamma G_{t+1} | S_t=s] \\ &= \sum_a \pi(a|s) \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma \mathbb{E}_{\pi}[G_{t+1}|S_{t+1}=s']] \\ &= \sum_a \pi(a|s) \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V^{\pi}(s')] \end{align}

动作值函数的Bellman期望方程:

Qπ(s,a)=∑s′∈SP(s′∣s,a)[R(s,a,s′)+γ∑a′∈Aπ(a′∣s′)Qπ(s′,a′)]Q^{\pi}(s,a) = \sum_{s' \in \mathcal{S}} P(s'|s,a) \left[R(s,a,s') + \gamma \sum_{a' \in \mathcal{A}} \pi(a'|s') Q^{\pi}(s',a')\right]

矩阵形式(用于计算):

Vπ=Rπ+γPπVπ\mathbf{V}^{\pi} = \mathbf{R}^{\pi} + \gamma \mathbf{P}^{\pi} \mathbf{V}^{\pi}

其中:

  • Vπ\mathbf{V}^{\pi}:状态值向量
  • Rπ\mathbf{R}^{\pi}:奖励向量
  • Pπ\mathbf{P}^{\pi}:转移概率矩阵

解析解:

Vπ=(I−γPπ)−1Rπ\mathbf{V}^{\pi} = (\mathbf{I} - \gamma \mathbf{P}^{\pi})^{-1} \mathbf{R}^{\pi}

2.4 Bellman最优方程#

最优状态值函数:

V∗(s)=max⁡πVπ(s),∀s∈SV^*(s) = \max_{\pi} V^{\pi}(s), \quad \forall s \in \mathcal{S}

最优动作值函数:

Q∗(s,a)=max⁡πQπ(s,a),∀s∈S,a∈AQ^*(s,a) = \max_{\pi} Q^{\pi}(s,a), \quad \forall s \in \mathcal{S}, a \in \mathcal{A}

Bellman最优方程(状态值):

V∗(s)=max⁡a∈A∑s′∈SP(s′∣s,a)[R(s,a,s′)+γV∗(s′)]V^*(s) = \max_{a \in \mathcal{A}} \sum_{s' \in \mathcal{S}} P(s'|s,a) \left[R(s,a,s') + \gamma V^*(s')\right]

Bellman最优方程(动作值):

Q∗(s,a)=∑s′∈SP(s′∣s,a)[R(s,a,s′)+γmax⁡a′∈AQ∗(s′,a′)]Q^*(s,a) = \sum_{s' \in \mathcal{S}} P(s'|s,a) \left[R(s,a,s') + \gamma \max_{a' \in \mathcal{A}} Q^*(s',a')\right]

关键性质:

  1. 唯一性:最优值函数是唯一的
  2. 多个最优策略:可能存在多个最优策略,但它们共享相同的最优值函数

最优策略的提取:

π∗(s)=arg⁡max⁡a∈AQ∗(s,a)\pi^*(s) = \arg\max_{a \in \mathcal{A}} Q^*(s,a)

3. 动态规划算法#

动态规划(Dynamic Programming, DP)利用MDP的马尔可夫性质和Bellman方程,通过迭代计算值函数。

3.1 策略评估(Policy Evaluation)#

目标:计算给定策略π\pi的值函数VπV^{\pi}

迭代更新规则:

Vk+1(s)=∑a∈Aπ(a∣s)∑s′∈SP(s′∣s,a)[R(s,a,s′)+γVk(s′)]V_{k+1}(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \sum_{s' \in \mathcal{S}} P(s'|s,a) \left[R(s,a,s') + \gamma V_k(s')\right]

收敛性:当k→∞k \to \infty时,Vk→VπV_k \to V^{\pi}(压缩映射定理)

算法实现:

import numpy as np
def policy_evaluation(env, policy, gamma=0.9, theta=1e-6):
"""
策略评估:迭代计算给定策略的状态值函数
参数:
env: 环境对象,包含状态空间、动作空间、转移概率等
policy: 策略矩阵 [nS, nA],policy[s, a] = π(a|s)
gamma: 折扣因子
theta: 收敛阈值
返回:
V: 状态值函数数组 [nS]
"""
nS = env.nS # 状态数量
V = np.zeros(nS) # 初始化值函数
iteration = 0
while True:
delta = 0 # 最大变化量
V_old = V.copy()
# 对每个状态进行更新
for s in range(nS):
v = 0
# 对所有动作求期望
for a in range(env.nA):
# 对所有可能的下一个状态求期望
for prob, next_state, reward, done in env.P[s][a]:
v += policy[s, a] * prob * (reward + gamma * V_old[next_state])
V[s] = v
delta = max(delta, abs(V[s] - V_old[s]))
iteration += 1
# 检查收敛
if delta < theta:
print(f"策略评估收敛于第 {iteration} 次迭代")
break
return V

3.2 策略改进(Policy Improvement)#

策略改进定理:对于确定性策略π\pi和π′\pi',如果对所有s∈Ss \in \mathcal{S}有:

Qπ(s,π′(s))≥Vπ(s)Q^{\pi}(s, \pi'(s)) \geq V^{\pi}(s)

则π′≥π\pi' \geq \pi,即Vπ′(s)≥Vπ(s)V^{\pi'}(s) \geq V^{\pi}(s)对所有ss成立。

贪婪策略改进:

π′(s)=arg⁡max⁡a∈AQπ(s,a)=arg⁡max⁡a∈A∑s′P(s′∣s,a)[R(s,a,s′)+γVπ(s′)]\pi'(s) = \arg\max_{a \in \mathcal{A}} Q^{\pi}(s,a) = \arg\max_{a \in \mathcal{A}} \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V^{\pi}(s')]

算法实现:

def policy_improvement(env, V, gamma=0.9):
"""
策略改进:根据值函数生成贪婪策略
参数:
env: 环境对象
V: 状态值函数 [nS]
gamma: 折扣因子
返回:
policy: 改进后的策略矩阵 [nS, nA]
policy_stable: 布尔值,指示策略是否稳定
"""
nS, nA = env.nS, env.nA
policy = np.zeros([nS, nA])
policy_stable = True
for s in range(nS):
# 计算每个动作的Q值
q_values = np.zeros(nA)
for a in range(nA):
for prob, next_state, reward, done in env.P[s][a]:
q_values[a] += prob * (reward + gamma * V[next_state])
# 选择最优动作(贪婪策略)
best_action = np.argmax(q_values)
# 检查策略是否改变
if policy[s, best_action] != 1.0:
policy_stable = False
# 确定性策略:将概率1分配给最优动作
policy[s] = np.eye(nA)[best_action]
return policy, policy_stable

3.3 策略迭代(Policy Iteration)#

算法流程:

  1. 初始化:任意策略π0\pi_0和值函数V0V_0
  2. 策略评估:计算VπkV^{\pi_k}
  3. 策略改进:πk+1=greedy(Vπk)\pi_{k+1} = \text{greedy}(V^{\pi_k})
  4. 重复步骤2-3直到策略稳定

收敛性:策略迭代保证收敛到最优策略π∗\pi^*(有限迭代次数)

完整实现:

def policy_iteration(env, gamma=0.9, theta=1e-6, max_iterations=1000):
"""
策略迭代算法
参数:
env: 环境对象
gamma: 折扣因子
theta: 策略评估收敛阈值
max_iterations: 最大迭代次数
返回:
policy: 最优策略
V: 最优值函数
iterations: 迭代次数
"""
nS, nA = env.nS, env.nA
# 初始化随机策略(均匀分布)
policy = np.ones([nS, nA]) / nA
for i in range(max_iterations):
# 策略评估
V = policy_evaluation(env, policy, gamma, theta)
# 策略改进
new_policy, policy_stable = policy_improvement(env, V, gamma)
if policy_stable:
print(f"策略迭代收敛于第 {i+1} 次迭代")
return new_policy, V, i+1
policy = new_policy
print("达到最大迭代次数")
return policy, V, max_iterations

3.4 值迭代(Value Iteration)#

核心思想:直接迭代Bellman最优方程,跳过显式的策略评估步骤

迭代更新规则:

Vk+1(s)=max⁡a∈A∑s′∈SP(s′∣s,a)[R(s,a,s′)+γVk(s′)]V_{k+1}(s) = \max_{a \in \mathcal{A}} \sum_{s' \in \mathcal{S}} P(s'|s,a) \left[R(s,a,s') + \gamma V_k(s')\right]

算法实现:

def value_iteration(env, gamma=0.9, theta=1e-6, max_iterations=10000):
"""
值迭代算法
参数:
env: 环境对象
gamma: 折扣因子
theta: 收敛阈值
max_iterations: 最大迭代次数
返回:
policy: 最优策略
V: 最优值函数
iterations: 迭代次数
"""
nS, nA = env.nS, env.nA
V = np.zeros(nS)
for i in range(max_iterations):
delta = 0
V_old = V.copy()
# 对每个状态更新值函数
for s in range(nS):
q_values = np.zeros(nA)
# 计算所有动作的Q值
for a in range(nA):
for prob, next_state, reward, done in env.P[s][a]:
q_values[a] += prob * (reward + gamma * V_old[next_state])
# 取最大Q值
V[s] = np.max(q_values)
delta = max(delta, abs(V[s] - V_old[s]))
# 检查收敛
if delta < theta:
print(f"值迭代收敛于第 {i+1} 次迭代")
break
# 提取最优策略
policy = np.zeros([nS, nA])
for s in range(nS):
q_values = np.zeros(nA)
for a in range(nA):
for prob, next_state, reward, done in env.P[s][a]:
q_values[a] += prob * (reward + gamma * V[next_state])
best_action = np.argmax(q_values)
policy[s, best_action] = 1.0
return policy, V, i+1

3.5 算法对比#

特性策略迭代值迭代
更新方式策略评估 + 策略改进直接更新值函数
每次迭代计算量高(需完全评估策略)低(单次扫描)
收敛速度迭代次数少迭代次数多
总计算时间取决于策略评估的精度通常更快
适用场景小规模MDP大规模MDP

复杂度分析:

  • 策略迭代:O(n2m+n3)O(n^2 m + n^3) 每次迭代

    • nn:状态数
    • mm:动作数
  • 值迭代:O(n2m)O(n^2 m) 每次迭代

4. 实战案例:冰湖环境(FrozenLake)#

4.1 环境介绍#

FrozenLake 是OpenAI Gym中的经典网格世界环境:

  • 目标:从起点(S)到达终点(G),避开冰洞(H)
  • 状态空间:4x4网格(16个状态)
  • 动作空间:4个方向(上、下、左、右)
  • 转移动态:有1/3概率滑向侧面方向(冰面滑动)
  • 奖励:到达终点 +1,其他 0
SFFF
FHFH
FFFH
HFFG

4.2 环境实现#

import gym
# 创建环境
env = gym.make('FrozenLake-v1', is_slippery=True)
# 环境信息
print(f"状态空间大小: {env.observation_space.n}")
print(f"动作空间大小: {env.action_space.n}")
# 查看转移概率
state = 6
action = 2 # 向右
print(f"\n状态 {state} 采取动作 {action} 的转移:")
for prob, next_state, reward, done in env.P[state][action]:
print(f" 概率={prob:.2f}, 下一状态={next_state}, 奖励={reward}, 终止={done}")

4.3 策略迭代求解#

# 运行策略迭代
policy_pi, V_pi, iters_pi = policy_iteration(env.unwrapped, gamma=0.99)
# 可视化值函数
import matplotlib.pyplot as plt
def visualize_value_function(V, shape=(4, 4)):
"""可视化值函数热力图"""
plt.figure(figsize=(6, 6))
V_grid = V.reshape(shape)
im = plt.imshow(V_grid, cmap='viridis', interpolation='nearest')
plt.colorbar(im)
# 添加数值标注
for i in range(shape[0]):
for j in range(shape[1]):
text = plt.text(j, i, f'{V_grid[i, j]:.3f}',
ha="center", va="center", color="w", fontsize=12)
plt.title('状态值函数热力图')
plt.xlabel('列')
plt.ylabel('行')
plt.tight_layout()
plt.show()
visualize_value_function(V_pi)
# 可视化策略
def visualize_policy(policy, shape=(4, 4)):
"""可视化策略(箭头表示)"""
action_symbols = ['↑', '↓', '←', '→']
policy_grid = np.argmax(policy, axis=1).reshape(shape)
fig, ax = plt.subplots(figsize=(6, 6))
ax.imshow(np.zeros(shape), cmap='gray', vmin=0, vmax=1)
for i in range(shape[0]):
for j in range(shape[1]):
action = policy_grid[i, j]
ax.text(j, i, action_symbols[action],
ha='center', va='center', fontsize=30, color='red')
ax.set_xticks(range(shape[1]))
ax.set_yticks(range(shape[0]))
ax.grid(True, color='black', linewidth=2)
plt.title('最优策略可视化')
plt.tight_layout()
plt.show()
visualize_policy(policy_pi)

4.4 值迭代求解#

# 运行值迭代
policy_vi, V_vi, iters_vi = value_iteration(env.unwrapped, gamma=0.99)
print(f"\n策略迭代:{iters_pi} 次迭代")
print(f"值迭代:{iters_vi} 次迭代")
# 对比两种算法的值函数
print("\n值函数差异:")
print(f"最大差异: {np.max(np.abs(V_pi - V_vi))}")
print(f"平均差异: {np.mean(np.abs(V_pi - V_vi))}")

4.5 测试最优策略#

def test_policy(env, policy, episodes=100, max_steps=100):
"""测试策略的性能"""
success_count = 0
total_rewards = []
for ep in range(episodes):
state, _ = env.reset()
episode_reward = 0
for step in range(max_steps):
# 根据策略选择动作
action = np.argmax(policy[state])
state, reward, terminated, truncated, _ = env.step(action)
episode_reward += reward
if terminated or truncated:
if reward > 0: # 到达终点
success_count += 1
break
total_rewards.append(episode_reward)
print(f"\n测试结果({episodes}局):")
print(f"成功率: {success_count/episodes*100:.2f}%")
print(f"平均奖励: {np.mean(total_rewards):.3f}")
print(f"奖励标准差: {np.std(total_rewards):.3f}")
test_policy(env, policy_vi)

5. 实践建议与总结#

5.1 算法选择指南#

使用动态规划的条件:

  1. ✅ 环境模型已知(PP和RR)
  2. ✅ 状态空间较小(<106<10^6)
  3. ✅ 需要精确解

选择策略迭代 vs 值迭代:

  • 策略迭代:当动作空间大于状态空间时
  • 值迭代:当状态空间远大于动作空间时

5.2 关键要点回顾#

  1. MDP五要素:⟨S,A,P,R,γ⟩\langle \mathcal{S}, \mathcal{A}, P, R, \gamma \rangle

  2. Bellman方程:

    • 期望方程:评估给定策略
    • 最优方程:求解最优策略
  3. 动态规划算法:

    • 策略迭代:评估 → 改进循环
    • 值迭代:直接迭代最优方程
  4. 广义策略迭代:几乎所有RL算法的框架

5.3 从模型基础到无模型#

模型基础强化学习为理解RL提供了坚实的理论基础,但在实际应用中,我们往往无法获得完美的环境模型。下一步学习方向:

  • 无模型方法:Q-Learning、SARSA、策略梯度
  • 函数逼近:处理大规模状态空间
  • 深度强化学习:DQN、A3C、PPO等

参考资源#

  1. 经典教材:

    • Sutton & Barto (2018) “Reinforcement Learning: An Introduction”
    • Bertsekas (2019) “Reinforcement Learning and Optimal Control”
  2. 在线课程:

    • David Silver的强化学习课程
    • CS285: Deep Reinforcement Learning (UC Berkeley)
  3. 代码库:


通过本文的学习,你应该已经掌握了强化学习的数学基础和经典算法。模型基础强化学习虽然在实际应用中受到环境模型获取的限制,但它提供的理论框架和分析工具对理解所有RL算法都至关重要。掌握这些基础知识后,你将能够更深入地理解现代深度强化学习算法的设计原理。

文章概念网络

从章节进入正文概念。实线表示所属层级,虚线连接跨章节重复出现的概念,不代表因果关系。

41 / 168 个节点 · 正文标记术语与关键词概念

模型基础强化学习详解同一概念 / Shared concept同一概念 / Shared concept同一概念 / Shared concept同一概念 / Shared concept模型基础强化学习详解模型基础强化学习详解引言引言1. 马尔可夫决策过程(MDP)1. 马尔可夫决策过程(MDP)1.1 MDP的形式化定义1.1 MDP的形式化定义1.2 马尔可夫性质1.2 马尔可夫性质1.3 回报与折扣1.3 回报与折扣1.4 策略(Policy)1.4 策略(Policy)2. 值函数理论2. 值函数理论2.1 状态值函数(State-Value Function)2.1 状态值函数(State-Value Function)2.2 动作值函数(Action-Value Function)2.2 动作值函数(Action-Value Function)2.3 Bellman期望方程2.3 Bellman期望方程2.4 Bellman最优方程2.4 Bellman最优方程3. 动态规划算法3. 动态规划算法3.1 策略评估(Policy Evaluation)3.1 策略评估(Policy Evaluation)3.2 策略改进(Policy Improvement)3.2 策略改进(Policy Improvement)3.3 策略迭代(Policy Iteration)3.3 策略迭代(Policy Iteration)3.4 值迭代(Value Iteration)3.4 值迭代(Value Iteration)3.5 算法对比3.5 算法对比4. 实战案例:冰湖环境(FrozenLake)4. 实战案例:冰湖环境(FrozenLake)4.1 环境介绍4.1 环境介绍4.2 环境实现4.2 环境实现4.3 策略迭代求解4.3 策略迭代求解4.4 值迭代求解4.4 值迭代求解4.5 测试最优策略4.5 测试最优策略5. 实践建议与总结5. 实践建议与总结5.1 算法选择指南5.1 算法选择指南5.2 关键要点回顾5.2 关键要点回顾5.3 从模型基础到无模型5.3 从模型基础到无模型参考资源参考资源经典教材经典教材在线课程在线课程代码库代码库强化学习强化学习reinforcement learningreinforcement learning环境环境规划规划利用利用规划规划强化学习强化学习reinforcement learningreinforcement learning环境环境
模型基础强化学习详解

模型基础强化学习详解

回到原文 ↗
BIBTEX

引用本文

@article{2024-07-28-模型基础强化学习,
  author  = {枫语},
  title   = {模型基础强化学习详解},
  journal = {枫语},
  year    = {2024},
  month   = {jul},
  url     = {https://meiluosi.github.io/posts/2024-07-28-%E6%A8%A1%E5%9E%8B%E5%9F%BA%E7%A1%80%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/}
}
🌐

本篇知识星丛与滑动侧栈

模型基础强化学习详解 当前主轴

搜索

正在载入索引…