一、策略搜索算法概述

什么是策略搜索

策略搜索,说白了就是让智能体自己学会「该怎么做」的一套方法。

我刚开始接触这个领域时,总觉得它跟普通的机器学习没啥两样。后来踩了不少坑才明白——策略搜索的核心,是让智能体在环境中不断试错,找到那个能最大化累积奖励的决策函数。这个函数,我们叫它「策略」。

举个例子:你训练一个机器人走路。监督学习是给它看一万段「正确走路」的视频,让它模仿。但策略搜索不一样——它让机器人自己迈腿,摔倒了就调整,走稳了就奖励。嗯,这其实更像人类学习的过程。

策略搜索的定义: 在马尔可夫决策过程(MDP)框架下,寻找最优策略 π*(a|s),使得期望累积奖励最大化。

数学上,我们想最大化这个目标:

J(π) = E[ Σ γ^t * r(s_t, a_t) ]

其中 γ 是折扣因子,控制着智能体是「目光短浅」还是「高瞻远瞩」。我个人习惯把 γ 设成 0.99,除非任务本身是短视的。

策略搜索与监督学习的区别

很多新手会问:这不就是分类/回归问题吗?还真不是。我列个表,你一看就明白:

对比维度 监督学习 策略搜索
数据来源 人工标注的「正确答案」 智能体自己探索产生的数据
反馈信号 每个样本都有标签 只有稀疏的奖励信号
数据分布 独立同分布 策略改变 → 数据分布改变
目标 拟合训练数据 最大化长期累积奖励

这里有个关键点:监督学习假设数据是独立同分布的。但策略搜索不一样——你当前的策略决定了你会看到什么数据。策略变了,数据分布也跟着变。这就是所谓的「分布偏移」问题。

我曾经在一个机器人抓取项目里吃过这个亏。先用监督学习模仿人类动作,效果还行。一放到真实环境,机器人直接懵了——因为它没见过「自己犯错」时的状态。后来换成策略搜索,虽然训练慢了点,但泛化能力强太多了。

策略搜索的核心挑战

做策略搜索,说白了就是在跟三个「拦路虎」打交道。我一个个说:

1. 探索-利用困境

这是最经典的问题。你想想看:

  • 「利用」:走已知的好路,稳稳拿奖励
  • 「探索」:走没走过的路,可能发现更好的,也可能摔跟头

怎么平衡?我见过太多项目因为探索太少,策略收敛到局部最优。也见过探索太多,训练半天还在原地打转。

我的经验: 初期多探索(比如 ε=0.3),后期逐渐降低到 ε=0.01。但别死守这个值——如果发现奖励长期不增长,适当增加探索率。

常用的探索策略包括:

  • ε-贪心:以概率 ε 随机选动作,否则选最优
  • UCB:对「不确定性高」的动作更感兴趣
  • 熵正则化:在目标函数里加一项,鼓励策略的随机性

2. 高维动作空间

动作空间大了,问题就来了。比如机器人有 20 个关节,每个关节连续控制——动作空间是 R²⁰,无穷大。

为什么难?因为:

  • 采样效率极低:你试过的动作,在无穷空间里几乎可以忽略不计
  • 梯度估计方差大:稍微扰动一下,结果天差地别
  • 存储开销大:连续动作没法用表格存,得用函数逼近

我记得有个项目是做四足机器人步态控制。动作空间 12 维,用最原始的 REINFORCE 算法,跑了三天三夜都没收敛。后来换成 PPO,加上动作空间降维,一天就搞定了。

避坑指南: 我曾经天真地以为「动作空间大,那就多采样呗」。结果发现采样多了,方差反而更大。后来才明白——关键在于降低方差,而不是增加样本量。

3. 信用分配问题

这个最烧脑。智能体做了一连串动作,最后得到一个奖励。问题是:到底哪个动作「值得」这个奖励?

比如下围棋:下了 200 手,最后赢了。第 37 手那个「妙手」贡献了多少?第 128 手那个「昏招」又该扣多少?

数学上,我们通常用「优势函数」来估计:

A(s, a) = Q(s, a) - V(s)

说白了就是:这个动作比平均水平好多少?

但这里有个坑——估计 Q 值和 V 值本身就不容易。我见过不少项目,因为价值函数估计偏差太大,策略更新方向都是错的。

我的建议: 用 TD(λ) 或者 GAE(λ) 来做信用分配。λ 控制着「远见」程度——λ=0 只看一步,λ=1 看全部。我一般从 λ=0.95 开始调。

这三个挑战,说白了就是策略搜索的「不可能三角」:

  • 想探索充分 → 样本效率低
  • 想处理高维 → 方差大
  • 想分配信用 → 估计偏差大

你不可能同时做到三者最优。实际项目中,得根据任务特点做取舍。

策略搜索核心挑战 探索-利用困境 平衡已知最优与未知可能 高维动作空间 采样效率与方差问题 信用分配问题 长期依赖与延迟奖励 相互制约 相互制约 常见应对策略 熵正则化 / UCB 平衡探索与利用 动作空间降维 减少搜索维度 GAE / TD(λ) 更准确的信用分配

这张图把三个挑战和对应的解决思路串起来了。你仔细看——每个挑战都不是孤立的。比如你加强了探索,信用分配就更难了,因为轨迹变长了。你压缩了动作空间,可能又限制了策略的表达能力。

做策略搜索,说白了就是在这些矛盾中找平衡点。没有银弹,只有 trade-off。


专注资料整理