NingG +

AI 系列:对数导数技巧 log-derivative trick

1. log-derivative trick 对数导数trick

log-derivative trick” 中文一般翻译为:“对数导数技巧”“对数梯度技巧”

这是在强化学习概率模型求导中非常常见的数学技巧。

它的核心作用是:把对概率分布参数的导数,转化成期望形式,从而方便采样估计梯度

1.1. 基本形式

假设我们要对一个期望求导:

\[\nabla_\theta \mathbb{E}_{x \sim p_\theta(x)}[f(x)]\]

其中 $p_\theta(x)$ 是依赖于参数 $\theta$ 的概率分布。

直接对这个期望求导不方便,因为 $x$ 是从分布中采样得到的。

于是用 log-derivative trick

\[\nabla_\theta p_\theta(x) = p_\theta(x) \nabla_\theta \log p_\theta(x)\]

简单推导:$\nabla \log x = \frac{1}{x}\nabla x \implies \nabla x = x \nabla \log x$。

代入后:

\(\nabla_\theta \mathbb{E}_{x \sim p_\theta}[f(x)]\) \(= \nabla_\theta \int f(x) p_\theta(x) dx\) \(= \int f(x) \nabla_\theta p_\theta(x) dx\) \(= \int f(x) p_\theta(x) \nabla_\theta \log p_\theta(x) dx\)

\[= \mathbb{E}_{x \sim p_\theta}[f(x) \nabla_\theta \log p_\theta(x)]\]

这就是 对数导数技巧(log-derivative trick) 的核心结论。


1.2. 直观理解

“把求导移到 log 上,再乘回来。”

直觉上:

这一步在数学上,相当于引入了一个 对数梯度,让期望的梯度可以用采样估计

\[\nabla_\theta J(\theta) = \mathbb{E}[f(x)\nabla_\theta \log p_\theta(x)]\]

1.3. 在强化学习中的应用

在强化学习的策略梯度(Policy Gradient)中,策略 $\pi_\theta(a s)$ 是一个概率分布,目标函数是:
\[J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}[R(\tau)]\]

用 log-derivative trick:

\[\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}[R(\tau) \nabla_\theta \log \pi_\theta(\tau)]\]

这一步就让策略梯度可以通过采样轨迹来估计,而不需要知道整个分布形式。

这就是 REINFORCE算法 的数学基础。

1.4. 总结一句话

英文 中文 作用 应用场景
log-derivative trick 对数导数技巧 / 对数梯度技巧 把对概率分布的导数,转化为 log 概率的导数,从而方便采样估计梯度 策略梯度、变分推断、概率图模型求导等

2.采样轨迹

为什么说:通过采样轨迹来估计呢?是否还有其他可能呢?

我们来仔细分清楚这句话“通过采样轨迹来估计”的含义,以及是否“只有这一种方式”。

2.1.为什么是“通过采样轨迹来估计”

我们在强化学习中要优化的是:

\[J(θ) = \mathbb{E}_{τ \sim π_θ}[R(τ)]\]

这里:

直接算期望 $\mathbb{E}{\tau \sim \pi\theta}$ 很困难,因为轨迹空间非常大分布复杂

于是使用 log-derivative trick

\[\nabla_θ J(θ) = \mathbb{E}_{τ \sim π_θ}[R(τ) \nabla_θ \log π_θ(τ)]\]

这一步的关键好处是:

于是我们用采样平均来估计梯度:

\[\nabla_\theta J(\theta) \approx \frac{1}{N} \sum_{i=1}^N R(\tau_i) \nabla_\theta \log \pi_\theta(\tau_i)\]

这就是“通过采样轨迹来估计”的含义: 我们不需要解析积分,只需采样轨迹、用 Monte Carlo 平均即可。

2.2. 是不是“只有这一种方式”?

不是。

这只是 一种常见的近似求解思路。还有几类更高级或替代的方法:

2.2.1. 基于采样的变体(依然是轨迹采样)

比如:

这些仍然依赖采样轨迹,但改进了估计方式。

2.2.2. 模型驱动的方法(不一定采样轨迹)

如果你有已知的环境模型 $p(s’ s,a)$,可以直接:

这类方法属于 model-based RL(基于模型的强化学习),不需要真实采样轨迹。

2.2.3. 离线强化学习(Offline RL)

在离线场景中,轨迹不是你采样的,而是历史数据集给的

这时你依然用类似 log-derivative trick 的思想,但要修正分布偏差(off-policy correction),例如:

所以这时梯度的估计不是“采样轨迹”,而是“利用已有轨迹”。

2.3. 总结一句话

方法类型 是否采样轨迹 说明
REINFORCE、Policy Gradient 通过环境采样轨迹估计梯度
Actor-Critic / PPO / A3C 采样轨迹 + 学习价值函数减少方差
Model-based RL 使用已知环境模型推导梯度或规划
Offline RL 是 / 否 使用历史轨迹数据集估计梯度

所以那句话更准确的理解是:

log-derivative trick 使得我们可以通过采样轨迹来估计梯度,而不是说“只能这样做”。 它是“能这样做”的数学基础,但并非唯一手段。

原文地址:https://ningg.top/ai-series-log-derivative-trick/
微信公众号 ningg, 联系我

同类文章:

微信搜索: 公众号 ningg, 联系我, 交个朋友.

Top