整体说明
- 在强化学习中,探索(Exploration)与利用(Exploitation)的平衡是核心挑战之一
- 探索(Exploration) :探索旨在发现环境中未知的信息
- 利用(Exploitation) :根据已有知识选择最优动作以最大化收益
基于随机性的策略
\(\epsilon\)-贪心(\(\epsilon\)-Greedy)
- 核心思路是以概率 \(\epsilon\) 随机选择动作(探索),否则选择当前最优动作(利用)
- \(\epsilon\)-Greedy简单易实现,但探索效率低(可能重复探索次优动作)
- 升级版 :\(\epsilon\) 可随时间衰减(如 \(\epsilon = \frac{1}{\sqrt{t}}\) )
Boltzmann探索(Softmax)
- 核心思路 :根据动作的Q值按概率分布选择动作(玻尔兹曼分布),使用温度参数 \(\tau\) 控制探索强度:
$$
P(a) = \frac{e^{Q(a)/\tau} }{\sum_{b} e^{Q(b)/\tau} }
$$- 玻尔兹曼分布 ,英文名是Boltzman Distribution ,又称吉布斯分布或Softmax分布
- \(\tau\) 是温度系数,\(\tau\)高时偏向探索,\(\tau\) 低时偏向利用
基于不确定性的策略
Upper Confidence Bound (UCB)
- 基本思路 :为每个动作的Q值添加置信区间上界,选择上界最大的动作:
$$
A_t = \arg\max_a \left[ Q(a) + c \sqrt{\frac{\ln t}{N_t(a)} } \right]
$$- \(N_t(a)\) 是动作 \(a\) 被选择的次数,\(c\) 是探索系数
- 特点 :适用于多臂赌博机(Multi-Armed Bandit, MAB) ,但需维护动作计数(注:Bandit 本意为 “匪徒/强盗”,之前的老虎机又称为 “单臂强盗”)
- MCTS 中的UCT(Upper Confidence Bound applied to Trees)和PUCT(Polynomial Upper Confidence Trees)都是 UCB 的变体
- UCT(Upper Confidence Bound applied to Trees)算法:
$$
\textit{UCT}(s, a) = Q(s, a) + c \sqrt{\frac{\ln N(s)}{N(s, a)} }
$$- \(Q(s, a)\):动作\(a\)的平均回报
- \(N(s)\):状态\(s\)的访问次数,\(N(s, a)\):动作\(a\)的访问次数(注:如果分母不会为0,此时所有节点都是完整探索过的,不存在为0的情况)
- \(c\):探索系数(通常设为\(\sqrt{2}\)),当\(c=\sqrt{2}\)时,UCT的累计遗憾(Regret)有对数上界
- 探索时选择动作为: \(a^* = \arg\max_a \textit{UCT}(s, a)\)
- PUCT(Predictor UCT)算法:
$$
\textit{PUCT}(s, a) = Q(s, a) + c_\textit{puct}\cdot P(s,a)\cdot \frac{\sqrt{N(s)}}{1+N(s, a)}
$$- \(P(s,a)\):即 \(\pi(a|s)\),是先验策略网络(Policy Network)给出的先验概率(表示动作 \(a\) 的初始偏好)
- \(c_\text{puct}\):探索系数(控制先验权重,AlphaZero中常设为1~2)
- \(1+N(s,a)\):(不用为了避免除0操作而增加1吧,毕竟此时所有节点都是完整探索过的,不存在为0的情况)
- 探索时选择动作为:探索时选择 \(a^* = \arg\max_a \textit{PUCT}(s, a)\)
- 基本思想:采样次数 \(N(s, a)\) 少时,按照策略 \(\pi(a|s)\) 为主探索;采样次数 \(N(s, a)\) 多时,按照价值 \(Q(s, a)\) 为主探索
Thompson Sampling
- 汤普森采样(Thompson Sampling, TS)的核心思想是通过概率分布建模不确定性,并基于后验分布采样
- 汤普森采样也称为后验采样(Posterior Sampling) ,是一种基于贝叶斯思想的探索与利用(Exploration-Exploitation)策略
- 广泛应用于多臂赌博机、推荐系统、在线广告投放和强化学习等领域
- 以点击率预估中伯努利奖励为例:
- 初始化 :
- 假设每个动作 \( a \) 的奖励服从伯努利分布(Bernoulli Distribution) \( \text{Bern}(\theta_a) \),即两点分布或0-1分布 ,\(\theta_a\) 是动作 \(a\) 真实的奖励期望
- 设先验分布为 Beta 分布 :\( \theta_a \sim \text{Beta}(\alpha_a, \beta_a) \)(初始 \( \alpha_a = \beta_a = 1 \))
- 注:Beta 分布的概率密度函数为\(f_\text{Beta}(x;\alpha, \beta) = \frac{1}{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1}\),其中 \(B(\alpha,\beta) = \frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)}\) 是 Beta 函数 ,(\(\Gamma(\alpha)\)为 伽马函数)
- 迭代过程 :
- 采样 :对每个动作 \( a \),从其后验分布 \( \text{Beta}(\alpha_a, \beta_a) \) 中采样动作 \(a\) 的奖励值 \( \hat{\theta}_a \)(当采样次数足够多以后有\( \hat{\theta}_a = \theta_a\))
- 注意:每个动作都有一个自己的 Beta分布,都有自己的后验数据 \(\alpha_a, \beta_a\)
- 选择动作 :执行 \( a^* = \arg\max_a \hat{\theta}_a \)
- 观测奖励 :获得二元反馈 \( r \in {0, 1} \)
- 更新后验 :
- 若 \( r = 1 \),则 \( \alpha_{a^*} \leftarrow \alpha_{a^*} + 1 \)
- 若 \( r = 0 \),则 \( \beta_{a^*} \leftarrow \beta_{a^*} + 1 \)
- 采样 :对每个动作 \( a \),从其后验分布 \( \text{Beta}(\alpha_a, \beta_a) \) 中采样动作 \(a\) 的奖励值 \( \hat{\theta}_a \)(当采样次数足够多以后有\( \hat{\theta}_a = \theta_a\))
- 初始化 :
基于内在激励的策略
好奇心驱动(Intrinsic Curiosity)
- 基本思想 :通过预测环境动态模型(如状态转移)的误差作为内在奖励,鼓励探索新状态
- ICM(Intrinsic Curiosity Module)是一种好奇心驱动策略,通过预测下一状态和动作的误差生成奖励
计数基方法(Count-Based)
- 基本思想 :对访问过的状态或动作计数,给予未频繁访问的状态更高探索奖励:
$$
R_{intrinsic} = \frac{1}{\sqrt{N(s)} }
$$
神经网络中的探索策略
对输出动作加噪
- 动作空间加噪 :直接在输出动作上添加噪声(如高斯噪声),思路和离散动作中的 \(\epsilon\)-Greedy 思想相似
对输入观测加噪
- 观测空间加噪 :直接在观测上添加噪声(如高斯噪声)
对参数加噪(Parameter Noise)
- 参数空间加噪 :直接在策略网络的参数上添加噪声(如高斯噪声)
熵正则化(Entropy Regularization)
- 在策略梯度目标函数中增加策略熵项,鼓励动作多样性:
$$
\nabla J(\theta) = \mathbb{E} \left[ \nabla \log \pi(a|s) Q(s,a) + \beta H(\pi(\cdot|s)) \right]
$$- \(H\) 是熵,\(\beta\) 是权重系数
一些实践技巧
- 离散动作使用\(\epsilon\)-Greedy;连续动作使用参数噪声或动作噪声
- Thompson采样成本太高,一般选择 \(\epsilon\)-Greedy这种简单的即可