欢迎光临
我们一直在努力

强化学习篇---强化学习策略

强化学习策略深度解析:智能体的“行动指南”

什么是策略?

策略(Policy)是强化学习智能体的“大脑”或“行为准则”——它告诉智能体在特定情况下应该做什么。

想象一下:

  • 你开车遇到红灯 → 策略告诉你:停车

  • 你闻到烧焦味 → 策略告诉你:检查厨房

  • 股票涨了 → 策略告诉你:卖还是持有?

策略就是从“状态”到“动作”的映射函数,用数学符号表示:π(a|s),表示在状态s下选择动作a的概率。

策略的两种基本类型

1. 确定性策略(Deterministic Policy)

“一条路走到黑”

  • 定义:给定状态,永远输出同一个动作

  • 公式:a = π(s)

  • 类比:自动售货机——你投币(状态),它一定出可乐(动作)

  • 例子:

    • 状态:肚子饿 → 动作:吃饭

    • 状态:红灯 → 动作:停车

    • 状态:100°C水 → 动作:沸腾

# 确定性策略示例
def deterministic_policy(state):
if state == "红灯":
return "停车"
elif state == "绿灯":
return "前进"
else:
return "观察"

2. 随机性策略(Stochastic Policy)

“看概率下菜碟”

  • 定义:给定状态,输出各个动作的概率分布

  • 公式:π(a|s) = P(a|s)

  • 类比:你掷骰子——虽然你知道6点概率是1/6,但具体掷出什么不确定

  • 例子:

    • 石头剪刀布:出拳概率各1/3(防止被对手看穿)

    • 探索新餐厅:80%去常去的,20%尝试新店

# 随机性策略示例
import random
def stochastic_policy(state):
if state == "对手可能出石头":
# 30%石头,40%布,30%剪刀
return random.choices(
["石头", "布", "剪刀"],
weights=[0.3, 0.4, 0.3]
)[0]

策略的数学表示

表格型策略(离散状态)

当状态空间有限时,策略就是一张查找表:

状态动作A概率动作B概率动作C概率
S1 0.7 0.2 0.1
S2 0.1 0.8 0.1
S3 0.3 0.3 0.4

参数化策略(连续/大规模状态)

当状态空间巨大时(如图像),用神经网络表示策略:

状态(图像) → [神经网络] → 动作概率分布
↓ ↓
像素数据 [0.2, 0.7, 0.1]

策略的优化目标

智能体要找到最优策略π*,使得累积奖励最大化:

目标函数

J(π) = E[所有时刻奖励的总和]
最优策略 = argmax J(π)

通俗理解

就像找工作:

  • 策略A:去大公司(稳定但成长慢)→ 总收益 = 500万

  • 策略B:去创业公司(风险高但可能暴富)→ 总收益 = 1000万(也可能0)

  • 策略C:自己创业(自由但辛苦)→ 总收益 = 800万

我们要选总收益最大的策略(考虑概率后)。

策略的评估:如何知道策略好坏?

1. 状态价值函数 V^π(s)

“在这个状态下,按当前策略走,未来总共能得多少分”

  • 数学定义:V^π(s) = E[未来累积奖励 | 当前状态s,遵循策略π]

  • 通俗理解:你现在站在这个位置,按你的习惯行动,最终能赚多少钱

2. 动作价值函数 Q^π(s,a)

“在这个状态下做这个动作,然后按当前策略走,未来总共能得多少分”

  • 数学定义:Q^π(s,a) = E[未来累积奖励 | 当前状态s,做动作a,然后遵循策略π]

  • 通俗理解:你现在决定做这件事,做完后再按习惯走,最终能赚多少钱

两者关系

Q^π(s,a) = 即时奖励 + 未来奖励
= R(s,a) + γ * V^π(s')

其中γ是折扣因子(0~1),表示对未来的重视程度。

策略迭代:如何改进策略?

策略评估 → 策略改进 循环

初始策略 → 评估这个策略有多好 → 根据评估改进策略 → 新策略 → 再次评估…

具体步骤

  • 策略评估:计算当前策略的价值函数

  • 策略改进:在每个状态选择更好的动作

    • 新策略 π'(s) = argmax Q^π(s,a)

    • 直观理解:原来你可能随机选,现在知道哪个动作价值高,就改选那个

  • 重复直到收敛:策略不再变化

  • 基于策略的方法 vs 基于价值的方法

    维度基于策略的方法基于价值的方法
    学习对象 直接学策略 π(a s) 学价值函数 Q(s,a),再推导策略
    输出 动作概率分布 动作价值
    适合场景 连续动作空间、随机策略 离散动作空间、确定性策略
    优点 能学习随机策略,收敛性好 样本效率高,稳定
    缺点 容易陷入局部最优 无法处理连续动作
    代表算法 Policy Gradient, PPO Q-learning, DQN

    策略梯度:直接优化策略

    核心思想

    让好动作的概率变大,坏动作的概率变小。

    # 伪代码
    if 动作结果好:
    增加这个动作的概率
    else:
    减少这个动作的概率

    数学直觉

    ∇J(π) = E[∇log π(a|s) * 累积奖励]

    • ∇log π(a|s):概率的梯度方向

    • 累积奖励:动作好坏的标尺

    类比:教练指导运动员

    • 运动员做了动作 → 教练给出评分

    • 评分高 → 以后多做类似动作

    • 评分低 → 以后少做类似动作

    实际策略示例:不同场景下的策略

    场景1:围棋AI

    策略形式:深度神经网络
    输入:19×19棋盘状态
    输出:361个位置的落子概率
    特点:随机策略,增加变化性

    场景2:自动驾驶

    策略形式:确定性策略 + 安全约束
    输入:摄像头图像、雷达数据
    输出:方向盘角度、油门、刹车
    特点:连续动作,必须安全

    场景3:推荐系统

    策略形式:多臂老虎机算法
    输入:用户历史行为
    输出:推荐物品的概率分布
    特点:平衡探索与利用

    策略的挑战与解决方案

    挑战1:探索与利用的平衡

    • 问题:太保守(利用)可能错失更好选择;太激进(探索)可能效率低

    • 解决方案:

      • ε-greedy:小概率随机探索

      • 熵正则化:鼓励策略保持一定随机性

    挑战2:策略的表示能力

    • 问题:简单策略无法处理复杂情况

    • 解决方案:

      • 深度神经网络(深度强化学习)

      • 循环神经网络(处理时序依赖)

    挑战3:稳定训练

    • 问题:策略更新太猛会导致性能崩溃

    • 解决方案:

      • TRPO/PPO:限制每次更新的步长

      • 自然梯度:考虑参数空间的结构

    Mermaid总结框图

    策略学习的关键公式总结

    贝尔曼最优方程

    V*(s) = max_a [R(s,a) + γ * Σ P(s'|s,a) * V*(s')]
    最优策略:π*(s) = argmax_a [R(s,a) + γ * V*(s')]

    策略梯度定理

    ∇J(θ) = E[∇θ log πθ(a|s) * Qπ(s,a)]

    优势函数

    A(s,a) = Q(s,a) – V(s)
    优势 = 这个动作比平均好多少

    实际应用小例子:网格世界策略学习

    假设一个4×4网格,智能体要从起点(1,1)到终点(4,4):

    初始随机策略:

    • 每个方向概率25%

    学习后的最优策略:

    • 在(1,1):向右(100%)

    • 在(1,2):向右(80%),向下(20%)

    • 在(2,2):向下(70%),向右(30%)

    策略可视化:

    text

    → → → ↓
    → → ↓ ↓
    → ↓ ↓ ↓
    → → → ⭐


    一句话总结:策略就是智能体的“人生哲学”——在每一个选择的十字路口,决定该往哪儿走。好的策略能让智能体在复杂环境中做出最优决策,实现长期收益最大化。

    赞(0)
    未经允许不得转载:171主机测评 » 强化学习篇---强化学习策略
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址