4.1 无模型强化学习

无模型强化学习

一、无模型强化学习(Model-Free RL)的核心思想
1. 什么是“无模型”?
  • 无需环境模型:不依赖状态转移概率 ( P ( s ′ ∣ s , a ) P(s'|s,a) P(ss,a)) 和奖励函数 ( R ( s , a , s ′ ) R(s,a,s') R(s,a,s)) 的先验知识。
  • 直接交互学习:通过与环境的实时交互(试错)来优化策略,适用于真实场景中模型难以获取的任务(如机器人控制、游戏AI)。
2. 与有模型(Model-Based)方法的对比
特性无模型(Model-Free)有模型(Model-Based)
依赖信息仅需状态、动作、奖励序列需完整的环境动态模型
计算成本低(无需维护模型)高(需模型预测或规划)
适用场景复杂、高维或随机环境状态空间小且模型已知的任务
典型算法Q-Learning、SARSA、策略梯度动态规划(DP)、蒙特卡洛树搜索(MCTS)

二、无模型强化学习的核心挑战
1. 探索与利用(Exploration vs. Exploitation)
  • 探索:尝试新动作以发现潜在高回报路径。
  • 利用:根据已有知识选择当前最优动作。
  • 平衡策略:ε-贪心、Softmax、UCB等。
2. 信用分配问题(Credit Assignment)
  • 延迟奖励:如何将最终奖励归因于前期动作(如围棋中某一步对胜负的影响)。
  • 解决方案:折扣回报、资格迹(Eligibility Traces)。
3. 非平稳性(Non-Stationarity)
  • 策略与数据依赖:策略改进导致数据分布变化,传统监督学习假设失效。
  • 应对方法:经验回放(Experience Replay)、目标网络(Target Network)。

三、时序差分算法(Temporal Difference, TD)
1. TD的核心思想
  • 融合蒙特卡洛与动态规划

    • 蒙特卡洛:依赖完整Episode的回报 ( G t G_t Gt)。
    • 动态规划:通过自举(Bootstrapping)用当前估计更新值函数。
  • TD更新公式
    V ( s t ) ← V ( s t ) + α [ r t + 1 + γ V ( s t + 1 ) − V ( s t ) ] V(s_t) \leftarrow V(s_t) + \alpha \left[ r_{t+1} + \gamma V(s_{t+1}) - V(s_t) \right] V(st)V(st)+α[rt+1+γV(st+1)V(st)]

    • TD误差:( δ t = r t + 1 + γ V ( s t + 1 ) − V ( s t ) \delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t) δt=rt+1+γV(st+1)V(st) )
2. TD vs 蒙特卡洛 vs 动态规划
特性TD蒙特卡洛动态规划
更新时机单步更新(在线学习)Episode结束后更新全状态迭代更新
偏差-方差低方差,有偏差高方差,无偏差低方差,依赖模型准确性
数据效率高(即时利用数据)低(需完整轨迹)依赖模型
3. 经典TD算法
  1. SARSA(On-Policy TD)

    • 更新公式:
      Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + 1 + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \left[ r_{t+1} + \gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t) \right] Q(st,at)Q(st,at)+α[rt+1+γQ(st+1,at+1)Q(st,at)]

    • 特点:遵循当前策略选择动作,强调“在策略(On-Policy)”学习。

  2. Q-Learning(Off-Policy TD)

    • 更新公式:
      Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + 1 + γ max ⁡ a Q ( s t + 1 , a ) − Q ( s t , a t ) ] Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \left[ r_{t+1} + \gamma \max_a Q(s_{t+1},a) - Q(s_t,a_t) \right] Q(st,at)Q(st,at)+α[rt+1+γamaxQ(st+1,a)Q(st,at)]

    • 特点:学习最优策略,允许使用历史数据(Off-Policy)。


四、无模型强化学习的算法分类
1. 基于值函数的方法
  • 目标:学习最优值函数 ( Q ∗ ( s , a ) Q^*(s,a) Q(s,a)),间接得到策略。
  • 代表算法
    • Q-Learning
    • Deep Q-Network (DQN)
    • Double DQN
2. 基于策略的方法
  • 目标:直接参数化策略 ( π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as)),通过梯度上升优化。
  • 代表算法
    • REINFORCE
    • 策略梯度(Policy Gradient)
    • PPO(Proximal Policy Optimization)
3. 演员-评论家(Actor-Critic)
  • 融合值函数与策略
    • Actor:策略函数,负责生成动作。
    • Critic:值函数,评估动作价值并提供梯度。
  • 代表算法
    • A2C(Advantage Actor-Critic)
    • A3C(Asynchronous Advantage Actor-Critic)
    • SAC(Soft Actor-Critic)

五、无模型强化学习的应用场景
1. 游戏AI
  • Atari游戏:DQN通过像素输入直接学习游戏策略。
  • AlphaGo:结合蒙特卡洛树搜索与策略网络。
2. 机器人控制
  • 机械臂抓取:PPO优化连续动作空间下的控制策略。
  • 足式机器人行走:SAC实现复杂地形自适应。
3. 资源管理
  • 云计算调度:Q-Learning优化任务分配与资源利用率。
  • 能源网络:Actor-Critic平衡发电与消耗。

六、无模型强化学习的代码框架
1. Q-Learning 伪代码
Initialize Q-table Q(s,a)
for each episode:
    s = env.reset()
    while not done:
        a = ε-greedy(Q, s)
        s_next, r, done = env.step(a)
        Q[s,a] += α * (r + γ * max(Q[s_next,:]) - Q[s,a])
        s = s_next
2. DQN 核心步骤
# 初始化Q网络和目标网络
Q_net = NeuralNetwork()
target_Q_net = NeuralNetwork()
replay_buffer = ExperienceReplay()

for episode in range(num_episodes):
    state = env.reset()
    while not done:
        action = ε-greedy(Q_net, state)
        next_state, reward, done = env.step(action)
        replay_buffer.add(state, action, reward, next_state, done)
        # 从缓冲区采样并更新网络
        batch = replay_buffer.sample()
        loss = calculate_loss(Q_net, target_Q_net, batch)
        optimize(Q_net, loss)
        # 定期同步目标网络
        if step % target_update:
            target_Q_net.load_state_dict(Q_net.state_dict())

七、总结

无模型强化学习通过直接与环境交互,摆脱了对精确环境模型的依赖,成为解决现实复杂问题的核心工具。时序差分算法作为其理论基石,以高效的数据利用在线学习能力,架起了从理论到实践的桥梁。后续章节将深入解析TD算法的变体、深度强化学习的实现细节,以及如何应对实际应用中的挑战(如稀疏奖励、高维输入)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值