共计 1529 个字符,预计需要花费 4 分钟才能阅读完成。
1. MDP 核心概念简介
马尔可夫决策过程 (MDP) 是强化学习的理论基础,它描述了一个智能体在环境中通过行动获得奖励的学习过程。MDP 由五个核心要素组成:

- 状态(S):环境可能处于的所有情况集合
- 动作(A):智能体可以执行的所有操作
- 转移概率(P):执行某动作后状态转移的概率分布
- 奖励(R):状态转移后获得的即时奖励
- 折扣因子(γ):未来奖励的衰减系数
在 4×4 方格世界中,这些概念都有直观的表现形式,我们接下来会具体展开。
2. 4×4 方格世界的具体建模过程
4×4 方格世界是一个经典的强化学习教学环境,由一个 4 行 4 列的网格组成。在这个世界中:
- 每个格子代表一个状态,共 16 个状态
- 智能体可以执行上、下、左、右四种动作
- 目标是找到从起始状态 (通常为(0,0)) 到终止状态 (通常为(3,3)) 的最优路径
- 碰到边界时保持原地不动
- 某些格子可能是障碍物或陷阱
3. 状态转移矩阵和奖励函数的设计
状态转移矩阵
在理想情况下,执行某个动作会 100% 转移到预期状态。但在实际建模中,我们通常会考虑:
- 80% 概率按预期方向移动
- 10% 概率向左偏转
- 10% 概率向右偏转
这种设计更贴近现实世界的不确定性。
奖励函数设计
奖励函数是引导智能体学习的关键:
- 到达目标状态:+1
- 掉入陷阱状态:-1
- 其他普通移动:-0.04(鼓励尽快到达目标)
4. Python 实现代码示例
import numpy as np
# 定义环境参数
GRID_SIZE = 4
ACTIONS = ['up', 'down', 'left', 'right']
GOAL = (3, 3)
TRAP = (1, 1) # 示例陷阱位置
def get_next_state(state, action):
"""根据当前状态和动作计算下一个状态"""
i, j = state
if action == 'up':
next_state = (max(i-1, 0), j)
elif action == 'down':
next_state = (min(i+1, GRID_SIZE-1), j)
elif action == 'left':
next_state = (i, max(j-1, 0))
elif action == 'right':
next_state = (i, min(j+1, GRID_SIZE-1))
return next_state
def get_reward(state):
"""定义奖励函数"""
if state == GOAL:
return 1
elif state == TRAP:
return -1
else:
return -0.04
5. 价值迭代和策略迭代算法的比较
价值迭代
- 初始化所有状态价值为 0
- 迭代更新每个状态的价值
- 直到价值函数收敛
- 根据最优价值函数导出最优策略
策略迭代
- 随机初始化一个策略
- 策略评估:计算当前策略下的价值函数
- 策略改进:根据价值函数改进策略
- 重复 2 - 3 步直到策略收敛
比较
- 价值迭代更关注最终结果,计算更快
- 策略迭代在每次迭代中都保持一个可行策略
- 对于小规模问题(如 4×4 网格),两者差异不大
6. 实际应用中的注意事项和优化建议
- 状态空间爆炸:4×4 网格只有 16 个状态,但扩展到 N×N 网格时状态数呈平方增长
- 奖励塑形:精心设计奖励函数可以显著加快学习速度
- 折扣因子选择:γ 接近 1 时更关注长期回报,接近 0 时更注重即时奖励
- 部分可观测性:真实环境往往是部分可观测的,需要考虑 POMDP 扩展
思考题
如何将此模型扩展到更大规模的网格世界?可以考虑以下方向:
- 使用函数逼近代替表格法存储价值函数
- 引入分层强化学习,将大问题分解为子问题
- 利用并行计算加速价值迭代过程
- 采用深度强化学习方法处理高维状态空间
结语
通过构建 4×4 方格世界的 MDP 模型,我们能够直观理解强化学习的核心概念。虽然这个示例很简单,但它包含了 MDP 的所有关键要素。在实际项目中,我们可以基于这些基础知识,逐步扩展到更复杂的应用场景。
正文完
发表至: 未分类
近一天内
