强化学习基础-重要性采样

什么是重要性采样

重要性采样是一种数学工具,用于:当你无法从目标分布 P P P 中采样时,如何通过另一个分布 Q Q Q 的样本来估算 P P P 的期望值。

• 场景:你想知道某个随机变量 f ( x ) f(x) f(x) 在分布 P P P 下的平均值(期望 E P [ f ( x ) ] E_{P}[f(x)] EP[f(x)]),但你手里只有根据分布 Q Q Q 产生的数据。

• 做法:你在计算平均值时,给每个样本乘上一个"修正系数"(即重要性权重):

w = P ( x ) Q ( x ) w=\frac{P(x)}{Q(x)} w=Q(x)P(x)

重要性采样(Importance Sampling)本质上不是一种采样技术,而是一种统计估算技术。 它的核心目的不是为了获得目标分布 P P P 的样本,而是为了估算函数 f ( x ) f(x) f(x) 在该分布下的期望值,特别是当直接从 P P P 采样效率极低时。

如果一个样本在目标分布 P P P中出现的概率很高,但在你实际用的分布 Q Q Q中出现概率很低,那么这个样本就非常"稀有且重要",采样到它时,你要给它加很大的权重;反之则减小权重。

重要性采样的本质

重要性采样(Importance Sampling)的核心逻辑确实就是"加权平均"求期望。

1. 为什么不能直接采?(痛点)

通常我们想计算一个函数 f ( x ) f(x) f(x) 在概率分布 p ( x ) p(x) p(x) 下的期望。但现实中常遇到两个问题:

• p ( x ) p(x) p(x) 很难直接采样(比如分布极其复杂)。

• 样本分布不均:你感兴趣的部分(对结果贡献大的部分)在 p ( x ) p(x) p(x) 中概率极低(稀有事件),直接采样可能采样一万次都碰不到一次,导致结果偏差巨大。

2. 怎么变通?(采样分布的转换)

既然 p ( x ) p(x) p(x) 不好采样,我们就从一个好采样的分布 q ( x ) q(x) q(x)(称为 Proposal Distribution)中提取样本。但因为 q ( x ) q(x) q(x) 不是原分布,直接计算结果肯定不对,所以必须通过数学上的"变号"来修正:

E p [ f ( x ) ] = ∫ f ( x ) p ( x ) d x = ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x = E q [ f ( x ) p ( x ) q ( x ) ] E_{p}[f(x)]=\int f(x)p(x)dx=\int f(x)\frac{p(x)}{q(x)}q(x)dx=E_{q}\left[f(x)\frac{p(x)}{q(x)}\right] Ep[f(x)]=∫f(x)p(x)dx=∫f(x)q(x)p(x)q(x)dx=Eq[f(x)q(x)p(x)]

这个公式告诉我们:如果你想用旧数据算出新策略的得分,你就必须给每一个奖励 R R R 乘上这个概率比值。

3. 加权的本质(修正)

公式中多出来的 w ( x ) = p ( x ) q ( x ) w(x)=\frac{p(x)}{q(x)} w(x)=q(x)p(x)就是你提到的权重(Importance Weight)。

• 如果 p ( x ) > q ( x ) p(x)>q(x) p(x)>q(x):说明这个动作在新策略中发生的概率比旧策略大。 由于我们只有旧策略采集到的有限样本,为了模拟新策略的期望收益,我们需要"放大"这个样本的影响力,补偿它在新策略中本应出现但因采样源不同而显得不足的频率。

• 如果 p ( x ) < q ( x ) p(x)<q(x) p(x)<q(x): 说明新策略其实不太会走这条路。即使旧策略采集了很多这样的数据,我们在计算新策略的收益时,也要把它们的影响力"缩小"。

重要性采样的逻辑就是:用一个"错"的分布去采样,然后通过"加权"的方式把结果拉回到"对"的期望上。

重要性采样的本质(解读)

权重大于 1 不代表样本"更好",而代表这个样本对新策略"更重要"或"更有代表性"。"好坏"是由奖励(Reward)决定的,而权重决定的是影响力(Impact)。

1. 权重 > 1 的真实含义

在重要性采样中,权重 ρ = π ( a ∣ s ) π β ( a ∣ s ) \rho =\frac{\pi (a|s)}{\pi _{\beta }(a|s)} ρ=πβ(a∣s)π(a∣s)。

• 权重 > 1: 意味着"新策略 \\pi 比旧策略更倾向于做这个动作"。

• 例子: 假设旧策略在路口 90% 往左走,新策略 90% 往右走。当你手里只有旧数据时,往右走的样本非常稀少。为了准确评估新策略,算法必须给那几个罕见的"往右走"的样本乘上一个很大的权重(补足它们在新策略分布中应有的占比)。

2. 权重与奖励的组合决定"好坏"

判断一个动作是否"好",要看权重×奖励的结果:

• 权重 > 1 且 奖励为正: 这个动作对新策略很重要,而且结果很好。模型会大幅增加这个动作的概率。

• 权重 > 1 且 奖励为负: 这个动作对新策略很重要,但结果很糟。模型会剧烈地惩罚这个动作,让新策略以后别这么干。

• 结论: 权重只是一个"放大器"。它告诉模型:"喂!新策略非常关注这类行为,你要看清楚这些行为带来的后果是奖励还是惩罚!"

不要把权重看作"奖状",要把它看作"倍率"。它不代表样本本身优劣,只代表在计算新策略得分时,这个样本需要被放大的程度,以纠正采样造成的偏差**。

3. 为什么权重太大反而"不好"?

在实际训练中,过大的权重往往是危险的,而不是好事:

• 高方差风险: 如果权重很大(例如 100),说明新旧策略差异巨大。这时一个小概率样本就能让模型参数产生剧烈震荡,导致训练不稳定。

• 算法限制: 著名的 PPO 算法 会强制将权重裁剪(Clip)在 0.8 到 1.2 之间,就是为了防止权重过大导致模型"跑偏"。

case1:估算全校学生的平均身高

假设你想知道某所大学全校学生的平均身高,但你无法获得完整的学生名单。

  1. 直接采样的困难(目标分布 P P P):你本应该在校园里随机拦截学生。但遗憾的是,你只有在篮球队训练馆门口拦截学生的权限。

  2. 选择容易采样的分布(提议分布 Q Q Q):你只能从篮球队成员( Q Q Q 分布)中采样。显然,篮球队员的身高普遍很高,如果你直接取他们的平均值,结果肯定会偏高(估算不准)。

  3. 使用重要性采样进行修正(权重 W W W):为了得到全校的真实平均值,你在测量每个篮球队员时,需要给他们的身高乘上一个权重(修正系数):

    w = 全校出现该身高的概率 篮球队出现该身高的概率 w=\frac{全校出现该身高的概率}{篮球队出现该身高的概率} w=篮球队出现该身高的概率全校出现该身高的概率

    • 如果一个 2 米的人在篮球队里很常见,但在全校很罕见,他的权重就会很低(比如 0.1)。

    • 如果一个 1.7 米的人在篮球队里极其罕见,但在全校其实很普通,他的权重就会很高(比如 10)。

  4. 最终结果:将"篮球队员的身高 × 对应的权重"加起来求平均。虽然你只采访了篮球队,但通过这个权重的修正,你依然能推算出全校学生的真实平均身高。

case2:估算保险公司赔付大额保单的风险

假设你要计算某保险公司明年赔付金额超过 10 亿元的概率(即计算期望值)。

  1. 直接计算的困境(稀有事件):
    在现实中(目标分布 (P)),发生 10 亿元赔偿的概率极低(比如 (0.0001%))。如果你用普通的蒙特卡洛方法,模拟 10 万次可能一次大额赔付都不会发生。这样算出来的期望值误差极大,甚至全是 0
  2. 改变"玩法"(提议分布 (Q)):
    既然目标事件太罕见,我们就人为地提高它发生的概率。我们构造一个"灾难模拟器"(提议分布 (Q)),在这个模拟器里,地震、海啸等极端灾害发生的频率被大幅调高。
  3. 通过权重"拨乱反正":
    在模拟器里,你确实得到了很多大额赔付的样本,但这些样本是"虚高"的。所以,对于每一个模拟出的赔付金额,你都需要乘上一个重要性权重 (W):

W = 真实世界发生的概率 P ( x ) 灾难模拟器中发生的概率 Q ( x ) W=\frac{\text{真实世界发生的概率\ }P(x)}{\text{灾难模拟器中发生的概率\ }Q(x)} W=灾难模拟器中发生的概率 Q(x)真实世界发生的概率 P(x)

  1. 最终目的:你用模拟器里频繁出现的样本 x x x,乘以这个微小的权重 W W W,就能在较少的尝试次数内,非常精确地估算出真实世界中那个极小概率的期望值。

• 你不是想要P的样本(因为 P的样本**大多是平庸的零星理赔,对估算极端风险没贡献)。

• 你想要的是对估算结果贡献最大的样本(即便它们在现实中很少见)。

• 重要性采样就是通过在"重要"的地方多采样,再通过权重还原,从而高效地完成期望值的估算。

case3:评估一个新的"短视频排序算法"

假设你是一名算法工程师,公司现在运行的是算法 A,你新开发了一个算法 B。你想知道:如果换成算法 B,用户每天的观看时长(期望值)会增加吗?

  1. 为什么不能直接计算?
    你手头的数据全是算法 A 产生的。

• 算法 A 喜欢给用户推"新闻类"视频。

• 算法 B 倾向于给用户推"生活百科类"视频。

• 因为算法 A 很少推生活类视频,所以你的数据库里关于"用户看生活类视频会看多久"的记录非常稀疏。如果你直接用算法 A 的数据来估算算法 B 的效果,结果会产生极大的偏差,因为两个算法关注的视频类型(分布)完全不同。

  1. 引入重要性采样(权重修正)

    我们不能直接把算法 A 的平均时长当作算法 B 的预测值,我们需要利用重要性采样进行"数据重加权"。

    对于历史记录中的每一次推荐动作,我们计算一个重要性权重 W W W:

    W = 算法 B 推荐这个视频的概率 P ( x ) 算法 A 推荐这个视频的概率 Q ( x ) W=\frac{\text{算法\ B\ 推荐这个视频的概率\ }P(x)}{\text{算法\ A\ 推荐这个视频的概率\ }Q(x)} W=算法 A 推荐这个视频的概率 Q(x)算法 B 推荐这个视频的概率 P(x)

    • 情景 1: 如果某个视频算法 B 非常想推,但算法 A 以前很少推( P P P 大 Q Q Q 小),那么这个视频产生的观看时长就非常重要,我们要给它加权( W > 1 W>1 W>1),因为它代表了新算法的特性。

    • 情景 2: 如果某个视频算法 A 经常推,但算法 B 没兴趣( P P P 小 Q Q Q 大),那么这个数据对评估算法 B 贡献很小,我们要降低它的权重( W < 1 W<1 W<1)。

case4:评估一个"新算法"的效果(gemini)

假设你现在手里有一个新算法 B,你想知道如果把它上线,用户的点击率(CTR)会是多少。

• 传统做法(A/B Test):直接把 B 分给 1% 的用户。但这样做风险很高,如果 B 很烂,会直接损失收入。

• 理想做法(线下评估):利用历史日志数据。日志里记录了老算法 A 推荐了什么,以及用户是否点击了。

• 核心矛盾:

• 老算法 A 喜欢推荐"热门电影"。

• 新算法 B 喜欢推荐"小众电影"。

• 如果你直接用 A 的日志来评估 B,你会发现 B 推荐的很多小众电影在日志里根本没出现过(因为 A 没推荐过)。这种由于采样策略不同导致的评估偏差,就是重要性采样的用武之地。

我们想计算新算法 B B B 的预期点击率 μ B \mu _{B} μB:

μ B = E x ∼ π B [ R e w a r d ( x ) ] \mu {B}=E{x\sim \pi _{B}}[Reward(x)] μB=Ex∼πB[Reward(x)]

但我们只有来自算法 π A \pi _{A} πA 的数据。于是我们利用重要性采样进行转换:

μ B = ∑ x ∈ Logs R e w a r d ( x ) ⋅ P ( 算法B推荐x ) P ( 算法A推荐x ) \mu _{B}=\sum _{x\in \text{Logs}}Reward(x)\cdot \frac{P(\text{算法B推荐x})}{P(\text{算法A推荐x})} μB=x∈Logs∑Reward(x)⋅P(算法A推荐x)P(算法B推荐x)

这里的权重 w = P B ( x ) P A ( x ) w=\frac{P_{B}(x)}{P_{A}(x)} w=PA(x)PB(x) 被称为 离线策略评估 (Off-Policy Evaluation, OPE) 的修正系数。

case5:正负样本不均衡

正负样本不均衡的时候,训练集会通过降采样的方式是的正负样本均衡,那么训练集的数据分布和真实的数据分布不就不一致了吗,但是我们依然可以训练出一个有用的模型,这不就是重要性采样的结果吗

离线策略(Off-policy)的逻辑:用一个"扭曲"过的分布去训练,目标却是为了在"真实"分布上表现良好。

1. 为什么"分布不一致"反而能训练出好模型?

在真实分布中,少数类(如欺诈交易、罕见病)的样本极其稀少。

• 如果不降采样:少数类在总损失函数(Loss)中的贡献微乎其微。模型为了追求整体准确率,会"偷懒"把所有样本都预测为多数类。这本质上是采样信号太弱,导致模型无法提取少数类的特征。

• 降采样之后:你人为提高了少数类在训练集中的出现频率。这迫使模型在更新参数时,必须认真对待少数类的特征,否则 Loss 就降不下来。

2. 这里的"重要性采样"体现在哪里?

当你通过降采样(或过采样)使样本均衡时,你实际上是把训练集从真实分布 P r e a l P_{real} Preal 转换到了 人工分布 P t r a i n P_{train} Ptrain。

如果要保证数学上的严格无偏,你在计算损失函数(更新权重)时,理论上应该引入重要性权重 \\rho : : :\\rho =\\frac{P_{real}(x)}{P_{train}(x)} 对于被你大量删除的多数类样本, 对于被你大量删除的多数类样本, 对于被你大量删除的多数类样本,\\rho 应该很大(补偿它们被删掉的数量)。对于被你保留或重复的少数类样本,\\rho 应该很小。 但是,实际操作中我们往往"故意"不完全遵循这个比率。

3. 为什么我们可以"违背"重要性采样的严格比例?

在很多分类任务中,我们并不追求概率值的绝对准确(Calibration),而是追求分类边界(Decision Boundary)的准确。

• 修正偏差 vs 强化特征:严格的重要性采样是为了消除偏差(让模型预测的概率符合真实频率)。但在类别不平衡时,我们的首要矛盾是少数类特征学习不足。

• 有偏估计的价值:通过降采样但不完全按照 ρ \rho ρ还原权重,我们实际上是在做一个有偏估计。这个"偏见"是:我们宁愿模型对多数类有一点误判,也绝不能漏掉少数类。

4. 什么时候必须把"重要性采样"的影子找回来?

如果你的任务对概率预测的绝对值非常敏感(例如广告点击率预测 CTR,需要计算精确的 ROI),那么降采样后必须进行概率校准(Calibration)。

校准公式(对应逻辑回归)就是重要性采样的直接应用:

l o g i t 校准 = l o g i t 模型 + log ⁡ ( 正样本下采样率 负样本下采样率 ) logit_{校准}=logit_{模型}+\log (\frac{\text{正样本下采样率}}{\text{负样本下采样率}}) logit校准=logit模型+log(负样本下采样率正样本下采样率)

这个修正项,就是为了补偿训练集和真实分布之间不一致的那个"影子"。

总结

• 分布改变的补偿:当对多数类进行降采样时,训练集中多数类的概率分布就被人为地改变了。如果直接在这个分布上训练,模型会低估多数类的真实重要性。这时,给降采样后的样本赋予权重(例如,降采样10倍,则权重设为10),正是在补偿这种分布差异。这个权重可以被理解为重要性权重 w ( x ) = p ( x ) / q ( x ) w(x)=p(x)/q(x) w(x)=p(x)/q(x)的一种实践,其中 p ( x ) p(x) p(x)是真实分布, q ( x ) q(x) q(x)是降采样后的分布。

• 目标的一致性:无论是重要性采样还是这里的降采样加权,最终目的都不是让模型学习"训练集分布",而是希望模型能在"我们关心的分布"(通常是真实分布或均匀分布)上表现良好。通过加权,我们使得模型在训练时(基于 q ( x ) q(x) q(x))的梯度更新或损失计算,与我们最终的评价目标(基于 p ( x ) p(x) p(x))保持一致

case6: 正负样本不均衡(gemini)

在处理正负样本不均匀(类别不平衡)问题时,重要性采样(Importance Sampling, IS)确实是核心的底层逻辑之一,但其表现形式通常被称为重采样(Resampling)或代价敏感学习(Cost-Sensitive Learning)。

1. 逻辑转化:从"采样"到"权重"

处理样本不均匀时,我们通常面临两个分布:

• 训练集分布( b b b):负样本极多,正样本极少(例如 99:1)。

• 理想测试分布(\\pi ):我们希望模型在正负类别上表现同样出色(例如 50:50)。

为了让模型在分布 b b b 上训练,却能达到分布 \\pi 的效果,我们需要引入重要性权重 \\rho

2. 两种具体的应用形态

A. 过采样/欠采样(采样层面)

这是 IS 的随机实现版本。

• 当你对少数类进行过采样(Over-sampling)或对多数类进行欠采样(Under-sampling)时,你实际上是在手动构造一个新的采样分布。

• 这种做法通过改变样本出现的频率,隐式地实现了重要性比率的调整。

B. 代价敏感损失(更新层面)

这是 IS 的数学修正版本,在神经网络中更为常用。

• 操作:在计算损失函数时,给少数类样本乘以一个大的权重 w p o s w_{pos} wpos,给多数类样本乘以一个小的权重 w n e g w_{neg} wneg。

• 数学本质:这个权重 w w w 对应于重要性比率 ρ = P t a r g e t P o b s e r v e d \rho =\frac{P_{target}}{P_{observed}} ρ=PobservedPtarget。

效果:这使得在反向传播更新参数时,少数类的一个样本产生的梯度会被放大,从而在权值更新中占据更重要的地位,这与强化学习中使用 ρ \rho ρ修正策略偏差的逻辑完全一致。

任何通过加权损失函数(Weighted Loss)或有偏采样来处理不平衡数据的手段,本质上都是重要性采样思想的实践

case7: AdaBoost算法

在 AdaBoost 中,重要性采样(Importance Sampling)的思想同样是其核心基石,但它的应用方式比简单的降采样更具动态性和进化性。

1. 动态的"行为策略":样本权重的本质

在强化学习中,行为策略 b b b 通常是固定的或缓慢变化的。而在 AdaBoost 中,每一轮迭代都在产生一个新的"行为分布":

• 训练过程:AdaBoost 并不直接改变原始数据集,而是给每个样本分配一个权重 w i w_{i} wi。

• IS 视角:这个权重 w i w_{i} wi 本质上就是重要性权重。它定义了一个新的概率分布 D t D_{t} Dt。当算法进入下一轮时,弱学习器是在分布 D t D_{t} Dt 上进行优化的,而不是在原始的均匀分布上。

• 为什么要变?:算法故意调高那些"被前一个模型分类错误"的样本权重。从重要性采样的角度看,这是为了强迫模型去采样那些当前最具有"信息量"的样本。

2. 重采样(Resampling) vs. 重加权(Reweighting)

AdaBoost 的实现有两种方式,其中一种直接就是重要性采样的标准流程:

• 重加权(Reweighting):直接把权重 ** w i w_i wi丢进损失函数里。这等同于在更新模型时,通过权重来修正不同样本对梯度的贡献,这正是我们在离线策略(Off-policy)更新中看到的操作。

• 重采样(Resampling):如果弱学习器(比如某些简单的决策树实现)无法处理样本权重,AdaBoost 会根据权重分布 D t D_t Dt对原始数据进行有放回的随机采样。

• 权重大的样本(难题)会被多次抽到。

• 权重小的样本(易题)可能不被抽到。

• 结论:这个过程就是标准的重要性采样实现------通过改变采样频率,将一个分布下的问题转化为另一个分布下的训练任务。

理论层面的联系:IS 视角下的 AdaBoost

从统计学角度看,AdaBoost 的成功可以用重要性采样视角来解释:

• 本质是寻找"困难样本":AdaBoost 每一轮都在调整样本权重。从 IS 的视角看,它是在不断构造一个新的"建议分布",这个分布将注意力集中在模型表现最差的区域(即重要性更高的区域)。

• 权重的数学意义:AdaBoost 的样本权重 w i w_i wi 可以被视为目标分布(我们希望模型掌握的分布)与当前模型已掌握分布之间的重要性比率(Importance Ratio)。通过不断增加错题的权重,算法强制后续的学习器去"采样"并解决这些高难度的案例。

总结:AdaBoost 是"自动化的、多轮次"的重要性采样

• 离线策略 RL:是为了修正"前人的数据"和"我的目标"之间的差异(一次修正)。

• 正负样本不平衡:是为了修正"稀缺性导致的信号不足"(一次修正)。

• AdaBoost:是主动创造分布差异。它不断地制造不平衡(提高错题权重),利用重要性采样的机制强迫模型学习,最后再通过数学手段(加权求和)把这些差异抵消掉,还原出一个强大的分类器。

工程陷阱

1. 陷阱一:权重爆炸(Variance Explosion)

• 数学公式: W = P ( x ) Q ( x ) W=\frac{P(x)}{Q(x)} W=Q(x)P(x)。

• 问题所在: 如果在某个点 x x x 上,目标分布 P ( x ) P(x) P(x) 还有一点值,但你的提议分布 Q ( x ) Q(x) Q(x) 非常小(接近 0),那么 W W W 就会变得无穷大。

• 后果: 在推荐系统或金融模拟中,这意味着只要有一个样本的权重极高,它就会瞬间"绑架"整个计算结果。你会发现估算出的期望值波动剧烈,今天算出来是 10,明天可能就是 10000。

2. 陷阱二:维数灾难(Curse of Dimensionality)

在简单例子里(如身高、离线评估),变量维度很低。但在复杂的物理模拟或高维深度学习中:

• 如果 x x x 有 100 个维度,每个维度上 P P P 和 Q Q Q 只有一点点微小的差异,这 100 个微小差异相乘之后,权重 W W W 会变得极其不稳定。

• 结果: 绝大多数样本的权重都会趋近于 0,只有极个别样本权重巨大。这意味着你采样了半天,其实只有一两个样本在起作用,这会导致巨大的统计误差。

3. 陷阱三:提议分布 Q Q Q 极难设计

虽然理论上你可以随便选 Q Q Q,但选得不好,不如不选。

• 如果 Q Q Q 的形状和 P × f ( x ) P\times f(x) P×f(x)(目标函数)的形状差得太远,重要性采样的效率反而比普通的蒙特卡洛模拟还要低得多。

提议分布选择标准

1. 生死线:数学上的"覆盖"要求 (Support Condition)

这是最基本的前提:凡是原分布 p ( x ) p(x) p(x) 中可能出现的点(概率不为0的点),在 q ( x ) q(x) q(x) 中也必须可能出现。

• 规则:如果对于某个 x x x,有 p ( x ) > 0 p(x)>0 p(x)>0,那么必须满足 q ( x ) > 0 q(x)>0 q(x)>0。

• 后果:如果 q ( x ) q(x) q(x) 在某些 p ( x ) p(x) p(x) 有值的区域为 0,那么这些区域的样本永远不会被采到,你的期望估计就会产生不可弥补的偏差(偏低)。

2. 效率线:方差控制 (Variance Reduction)

虽然满足了第一条就能得到理论上的无偏估计,但如果 q ( x ) q(x) q(x) 选得差,方差会爆炸,导致你需要海量样本才能得到稳定的结果。

• 权重爆炸风险:记住权重是 w ( x ) = p ( x ) q ( x ) w(x)=\frac{p(x)}{q(x)} w(x)=q(x)p(x)。如果你选的 q ( x ) q(x) q(x) 在某个 p ( x ) p(x) p(x) 很大的地方非常小,那么 w ( x ) w(x) w(x) 就会变得极大。单一个巨大的权重样本就会瞬间"带偏"整个平均值,导致结果剧烈波动。

• 最佳实践: q ( x ) q(x) q(x) 的"尾部"应该比 p ( x ) p(x) p(x) 更厚。也就是说, q ( x ) q(x) q(x) 覆盖的范围最好比 p ( x ) p(x) p(x) 更广,而不是更窄。

3. 天花板:什么是"完美"的 q ( x ) q(x) q(x)

理论上存在一个最优分布 q ∗ ( x ) q^{*}(x) q∗(x),能让估计值的方差降为 0(即采一次样就能得到精确结果):

• 理想分布: q ( x ) ∝ ∣ f ( x ) ∣ p ( x ) q(x)\propto |f(x)|p(x) q(x)∝∣f(x)∣p(x)。

• 直白解释:你应该在"对结果贡献最大"的地方多采样。这个贡献由两部分决定:该点的发生概率 p ( x ) p(x) p(x) 和该点的函数值 f ( x ) f(x) f(x)。

• 现实困境:我们通常不知道这个分布的积分(因为这正是我们要算的目标),所以只能尽量寻找一个形状与之接近的 q ( x ) q(x) q(x)。

相关推荐
Remember_9932 小时前
文件系统与IO操作:深入解析与Java实践
java·开发语言·数据结构·ide·python·算法
纪伊路上盛名在2 小时前
Chap2 Neural Networks with PyTorch
人工智能·pytorch·python·深度学习·机器学习
小舞O_o2 小时前
gitlab文件上传
linux·服务器·git·python·目标检测·机器学习·gitlab
大江东去浪淘尽千古风流人物2 小时前
【DSP】DSP核心组件 SM算法部署
算法
努力学习的小廉2 小时前
我爱学算法之—— 递归
算法·深度优先
一个不知名程序员www10 小时前
算法学习入门 --- 哈希表和unordered_map、unordered_set(C++)
c++·算法
Sarvartha11 小时前
C++ STL 栈的便捷使用
c++·算法
Quintus五等升11 小时前
深度学习④|分类任务—VGG13
人工智能·经验分享·深度学习·神经网络·学习·机器学习·分类
夏鹏今天学习了吗11 小时前
【LeetCode热题100(92/100)】多数元素
算法·leetcode·职场和发展