深夜的巷子里发生了一起案件,老探长在案发现场踱步。他最初的嫌疑人画像很模糊——“可能是高个,也可能是矮个”,这就像先验分布。随着警员送来一条条线索,他对嫌疑人的判断范围不断收窄、位置不断修正,最终给出“七成是这个人”的结论。这个“先有模糊画像→被证据修正→得到带置信度的判断”的过程,就是贝叶斯推断。TensorFlow Probability(TFP)正是 Google 为 TensorFlow 配齐的一套“探案工具箱”:它把模型参数写成分布、把数据当作线索,通过贝叶斯推断量化一切不确定性——既给出答案,也给出“我有多确定”。读完本文,你将掌握 TFP 的核心 API、概率层设计、损失函数与不确定性建模,并亲手跑通一次贝叶斯推断。
掌握 TFP 概率编程,意味着你从“只会输出一个数”的模型工程师,升级为“能输出分布与置信度”的贝叶斯思考者——这是金融风控、医疗 AI 等高确定性要求场景的核心竞争力。
可视化演示
展示自动驾驶SOTIF(ISO 21448)预期功能安全分析流程,包括触发条件识别、危害分析与安全措施设计,直观理解智能驾驶系统的功能安全保障机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
SOTIF预期功能安全(ISO 21448) 触发条件:天气、光照、传感器局限导致的功能不足 危害分析:识别触发条件→危害场景→安全措施 ODD约束:限定运行设计域,降低未知风险 Risk = P(trigger) × P(hazard|trigger) × Severity SOTIF与ISO 26262互补,共同保障自动驾驶安全
TFP核心概述
探长办案从来不只看一个数字。他翻开笔记本时,写的是“嫌疑人可能的身高分布”,而不是一个孤零零的“175 厘米”。概率编程的核心理念正是如此:把模型里的每个参数都当作一个有“可能性范围”的随机变量,让程序像侦探一样带着不确定性去思考、去推理。TensorFlow Probability(TFP)就是 Google 在 TensorFlow 之上打造的一整套“探案装备”。
TFP 的核心设计是“一切皆分布”。它把概率分布封装成与 TensorFlow 数值张量无缝协作的对象,开发者可以像写普通神经网络一样写出概率模型,再调用内置的贝叶斯推断引擎做推理。具体来说,TFP 由四大部分组成:tfp.distributions(tfd)负责各种概率分布;tfp.bijectors(tfb)负责分布之间的变换;tfp.mcmc 提供马尔可夫链蒙特卡洛采样;tfp.vi 提供变分推断工具。它们组合起来,构成了从“定义模型”到“推断后验”再到“输出不确定性”的完整闭环。
在 TFP 中,一个概率模型可以用联合分布来书写。假设观测数据 x 和隐变量 z,模型写为:
就像探长把“模糊画像”和“每条线索”拼成一张完整的案情拼图,TFP 用联合分布把先验与数据拼在一起。接下来的任务——贝叶斯推断——就是在这张拼图上找出最合理的嫌疑人范围。
- 隐变量先验 p(z)这是模型对未知参数 z 事先持有的信念,相当于探长对嫌疑人的初始画像。
- 观测似然 p(x_i | z)在给定参数 z 时,第 i 个样本出现的概率,相当于一条线索与当前理论的吻合程度。
- 连乘符号把所有样本的似然相乘,表示综合考虑全部线索后的共同解释力。
概率分布API
探长的笔记本里记录着不同证人的“说话风格”:有人答案只有“是/否”,有人会给出“大概 72 公斤左右”,还有人只会说“大于 5 年”。每种风格对应一种分布。TFP 的概率分布 API 正是这样一个“证人登记簿”,它让每一种可能性形态都有统一的打开方式。
TFP 以 tfd.Distribution 为基类,像一份“证人协议”:所有分布都必须会做两件事——sample()(给出一次采样)和 log_prob()(计算该点在此分布下的对数概率)。前者模拟“随机抽取一个证人答案”,后者回答“这位证人给出这个答案的可能性有多大”。这种统一接口让分布可以自由组合、变换,也能直接参与 TensorFlow 的自动求导。
tfd 内置了海量分布族:连续分布有 Normal(正态)、Uniform、Gamma,离散分布有 Bernoulli(两点)、Poisson、Categorical 等。以最常用的正态分布为例,它的概率密度函数是:
探长选证人要“看风格”:问身高用正态分布、问是否在场用伯努利分布。TFP 的分布 API 就像证人登记簿,关键不是“哪个分布更高级”,而是“哪种风格最适合这条线索”。
- 标准化系数分母用标准差 σ 乘以根号 2π 归一化,保证曲线下总面积为 1,即“所有可能性的总和必然是 100%”。
- 指数衰减负号使离中心越远的点概率越小,对应探长认为“离画像越远的嫌疑人越不可能是他”。
- 平方距离分子 $(x - \mu)^2$ 是样本到中心的平方距离,它决定了衰减的速度——距离每翻一倍,概率下降得更猛烈。
贝叶斯模型构建
探长不会因为一条线索就立刻下结论,而是把“原有画像”与“新线索”用贝叶斯公式融合。这就是先验、似然、后验三者的关系,也是整个贝叶斯建模的核心。设 θ 为模型参数,D 为观测数据,贝叶斯定理给出:
在 TFP 中,构建贝叶斯模型通常用 tfd.JointDistributionSequential 把先验和似然按顺序串起来:先定义参数的先验(如 w、b),再定义以参数为条件的数据生成分布。就像探长把“原有画像”和“现场线索”在脑中融合成“更新画像”,TFP 的 JointDistribution 就是那张融合表——左边写先验,右边写似然,中间由贝叶斯公式连接。
- 后验 P(θ|D)给定数据 D 后,参数 θ 的概率分布,是贝叶斯推断的最终输出,相当于探长看完所有线索后更新的嫌疑人画像。
- 似然 P(D|θ)在参数为 θ 的假设下,观测到这组数据的概率。它衡量“这个理论在多大程度上解释了证据”。
- 先验 P(θ)还没看数据时,我们对参数的初始信念。数据越少,先验的影响越大。
- 边际似然 P(D)对所有可能的 θ 平均后的数据概率,本质上是一个归一化常数,保证后验积分为 1。
MCMC采样推断
现实中后验往往算不出精确公式。探长换了一种策略:在嫌疑人范围里反复“走位”,走到哪都评估一下“这里符合线索吗”——走位越频繁的区域,越可能是真凶所在。这就是马尔可夫链蒙特卡洛(MCMC)的思路:与其推导后验的解析式,不如设计一条随机游走规则,让样本点在参数空间中“散步”,最终让访问频率正比于后验密度。
tfp.mcmc 提供了 Metropolis-Hastings、HMC 等采样器。Metropolis-Hastings 的核心是接受率,它决定采样点从当前位置 θ_t 跳到候选位置 θ\* 的概率:
如果说 Metropolis-Hastings 是探长“瞎转悠碰运气”,HMC 就是“顺着山坡滚下去”的智能探长——它借助目标分布的梯度信息和动量变量,避免纯随机游走那种原地打转的低效。tfp.mcmc.sample_chain 可以很方便地运行采样链,输出一批后验样本,最终画出的热力图就是破案结论。
- 候选状态 θ\*提议分布 q 从当前状态 θ_t 附近随机生成的一个新位置,相当于探长在画像范围内随机指出的一个嫌疑人。
- 后验比值候选位置与当前位置的后验概率之比,反映了“新位置是否更符合证据”。
- 提议分布比值修正提议分布不对称造成的偏差,保证马尔可夫链满足细致平衡条件。
- 取 min(1, ·)比值超过 1 时直接接收;否则以比值为概率接收,确保采样序列最终能“定居”在高后验区域。
变分推断
有一个案子的后验太复杂,MCMC 要跑一个礼拜。这时探长另辟蹊径:不追求精确画像,而是快速画一幅“最接近真相的简化画像”——这就是变分推断(Variational Inference, VI)。它把“求后验分布”这个难题转化为“优化分布参数”的优化问题。
VI 先指定一个简单分布族 q_φ(z)(比如高斯分布),然后调整参数 φ,使 q_φ(z) 尽量接近真实后验 p(z|x)。衡量“接近程度”的指标是 KL 散度。TFP 中 tfp.vi 模块的目标函数——ELBO(证据下界)——的表达式为:
变分推断的另一个关键技巧是重参数化:把采样过程写成“先从一个标准分布采噪声 ε,再通过可微变换得到 z = g_φ(ε)”。这样一来,对 φ 的梯度可以穿过采样过程反向传播,直接复用到 TensorFlow 的自动求导上。MCMC 像犯罪实验室的颅骨复原,细致但昂贵;变分推断像警局的速写师,几分钟画出一张八成相似的脸,足够巡逻队先按图抓人。两种方法,TFP 都信手拈来。
- 期望重构项在 q_φ 下对数据对数似然求期望,鼓励分布找到能解释数据的参数区域。
- KL 散度项衡量变分分布与先验的差异,相当于“画像不能跑偏得太离谱”的约束。
- 最大化目标两项相减得到 ELBO。它永远是真实对数边际似然的下界,故得名“证据下界”。
概率层设计
传统神经网络的权重是个固定数字,就像探长只记“嫌疑人 180 厘米”;概率层把权重变成一个分布,像记“嫌疑人大概 178 到 182 厘米,越靠近 180 越可能”。tfp.layers 把这种贝叶斯思想封装成了可直接嵌入 Keras 模型的层。
其中最常用的两个是 DenseVariational 和 DistributionLambda。前者让全连接层的权重不再是一个固定张量,而是一个可学习的变分分布 q(W),每次前向传播从 q(W) 中采样一套权重参与计算,相当于“每次调用都模拟一次小型案情推演”;后者让输出层的输出直接是一个分布对象,例如输出 tfd.Normal(loc, scale),从而让模型最终给出“带方差的预测”。
用 DenseVariational 构建的贝叶斯神经网络,其预测分布可以写成对权重后验的积分:
在代码里,你只需要像搭普通 Keras 模型一样:model = tf.keras.Sequential([tfp.layers.DenseVariational(...), tfp.layers.DistributionLambda(...)]),剩下的采样与训练细节都由 TFP 代劳。普通神经网络像只背结论的实习警员,概率层则像会写“可能性笔记”的老探长——每一条推理都附上置信区间。
- 条件输出 p(y|x,W)给定输入 x 和一套具体权重 W 时,输出 y 的概率,相当于“用一组固定规则断案的结论”。
- 权重分布 q(W)对各套“规则方案”赋予概率,对应“那些更符合历史案件的规则被赋予更高权重”。
- 积分求和对所有权重方案求平均,得到最终预测分布,也就是“综合全体探员的投票结果”。
损失函数
探长怎么判断“这套推理好不好”?要拿最终的实际抓捕结果(标签)与自己的预测对一下,预测越贴合时计分越低。这就是损失函数的作用。在贝叶斯框架中,最自然的损失函数是负对数似然(NLL):
在变分推断场景中,损失函数则变为 ELBO 的相反数(负 ELBO)。tfp.layers.DenseVariational 在训练时会自动把“变分分布 vs 先验”的 KL 散度作为正则项并入损失。TFP 模型可以无缝使用 TensorFlow 的优化器:只需调用 model.fit(),把自定义损失或内置损失传进去即可。就像探长用“错判率”考核自己,NLL 用“给真相打低分要挨罚”的机制倒逼模型校准置信度;ELBO 则还要检查“推理是否偏离常识(先验)”,两者合一,既是绩效考核表,也是自我纠偏的镜子。
- 单样本对数似然对每个样本,用模型给出的分布计算真实标签的概率,再取对数。
- 求平均对所有样本的对数似然取平均,保证损失不随数据集规模膨胀。
- 取负号最大化似然等价于最小化负值,符合“损失越小越好”的习惯。
不确定性建模
一个案子,探长说“凶手可能是 30 岁左右的男性”,这背后其实有两层不确定:一是现场证据本身模糊(脚印尺寸量不准),二是他对这类案子经验不足(第一次见勒杀案)。前者叫偶然不确定性,后者叫认知不确定性。不确定性建模是 TFP 最有价值的产出。
偶然不确定性(Aleatoric)来自数据本身的噪声,比如传感器误差、人群行为的随机性,它不可通过增加样本消除;认知不确定性(Epistemic)来自模型对参数的无知,反映训练数据覆盖不足,数据越多它越小。贝叶斯神经网络的输出分布可以显式建模这两部分:设观测噪声方差为 σ_a²,参数不确定性造成的预测方差为 σ_e²,则总预测方差为:
在工程中使用时,可先让模型输出 tfd.Normal(loc=μ(x), scale=σ_a(x)) 完成偶然不确定性建模;再用 DenseVariational 层构造贝叶斯网络,多次前向采样得到一组 μ 值,其标准差即 σ_e,进而报告 95% 置信度的预测区间。探长提交报告时不再只写“凶手是李某”,而是写“李某的概率 70%,区间覆盖到王某;若再调取监控,可以把李某锁定到 95%”——不确定性建模,就是让 AI 学会在关键时刻诚实地说“我不确定”。
- 总预测方差模型对预测目标的总不确定性,表现为预测分布的宽度。
- 偶然项 σ_a²把不可控的数据噪声单独建模,通常作为网络输出的 scale 参数直接学习。
- 认知项 σ_e²通过多次采样权重或 MC Dropout 估计,反映“样本覆盖不足”的部分。
AI 应用场景
信贷风控:给每笔贷款一个“不确定区间”
阶段:贝叶斯建模与不确定性量化
解决的问题:传统风控模型只输出一个违约概率点估计,对训练数据覆盖不足的客群容易过度自信。用 TFP 构建贝叶斯逻辑回归,参数带有后验分布,模型会对样本外客群自动给出更宽的预测区间,帮助风控团队区分“高风险的确定”与“不确定的高风险”。
具体案例:某消费金融公司用 tfp.layers.DenseVariational 替换最后一层逻辑回归,在审批新客群时发现模型对数据稀疏的年轻群体的预测区间显著变宽,据此将这些申请转入人工复核,坏账率下降约 18%。
医疗影像:让 AI 说出“哪里没把握”
阶段:概率层设计与预测分布输出
解决的问题:常规分割模型在罕见病变上经常给出“自信的错误”。贝叶斯分割网络用 DistributionLambda 输出每个像素的分布,把预测不确定性映射为可视化热力晕影,医生可以优先核查模型自己都没把握的区域。
具体案例:某肺结节筛查系统中,医生界面把不确定性叠加为原图上的半透明红晕,医生优先复核红晕区域,读片效率提升 30%,漏检率明显下降。
推荐系统冷启动:用先验“撑过”数据稀疏期
阶段:贝叶斯模型构建与变分推断
解决的问题:新用户没有行为数据,模型无法给出稳定推荐。贝叶斯协同过滤把用户偏好设为高斯先验,并用变分推断在大规模数据上快速更新后验,实现“少量点击即修正画像”。
具体案例:某视频平台用 TFP 的 VI 流程服务冷启动用户:先验来自同类人群的偏好分布,用户点几下后后验迅速收窄,7 日内新用户留存率提升 8%。
Python 演示
import numpy as npimport tensorflow as tfimport tensorflow_probability as tfp tfd = tfp.distributions # 1. 生成合成数据: y ~ Bernoulli(sigmoid(w*x + b))num_samples = 200true_w = 2.0true_b = -0.5x = np.random.randn(num_samples).astype(np.float32)y = tfd.Bernoulli(logits=true_w * x + true_b).sample(seed=42).numpy().astype(np.float32) # 2. 定义贝叶斯逻辑回归的联合对数概率def target_log_prob_fn(w, b): prior_w = tfd.Normal(loc=0.0, scale=1.0) prior_b = tfd.Normal(loc=0.0, scale=1.0) likelihood = tfd.Bernoulli(logits=w * x + b) return (prior_w.log_prob(w) + prior_b.log_prob(b) + tf.reduce_sum(likelihood.log_prob(y))) # 3. 均场高斯变分族: 标准差用 softplus 保证为正qw_loc = tf.Variable(0.0)qw_scale = tf.Variable(0.0)qb_loc = tf.Variable(0.0)qb_scale = tf.Variable(0.0) def surrogate_posterior(): return tfd.JointDistributionSequential([ tfd.Normal(loc=qw_loc, scale=tf.nn.softplus(qw_scale)), tfd.Normal(loc=qb_loc, scale=tf.nn.softplus(qb_scale)), ]) # 4. 变分推断: 最大化 ELBO 等价于最小化负 ELBO 损失losses = tfp.vi.fit_surrogate_posterior( target_log_prob_fn=target_log_prob_fn, surrogate_posterior=surrogate_posterior(), optimizer=tf.optimizers.Adam(learning_rate=0.05), num_steps=300, sample_size=10,) # 5. 输出后验近似参数, 并与真实权重对比w_mean = qw_loc.numpy()w_std = tf.nn.softplus(qw_scale).numpy()b_mean = qb_loc.numpy()b_std = tf.nn.softplus(qb_scale).numpy()print("w 后验: 均值 %.2f, 标准差 %.2f" % (w_mean, w_std))print("b 后验: 均值 %.2f, 标准差 %.2f" % (b_mean, b_std))print("真实参数: w=%.1f, b=%.1f" % (true_w, true_b))print("最后 5 步平均 ELBO 损失: %.2f" % float(np.mean(losses[-5:])))
y = tfd.Bernoulli(logits=true_w * x + true_b).sample(seed=42)用已知参数生成带随机性的数据,相当于布置好“真凶”后随机洒出线索。def target_log_prob_fn(w, b):贝叶斯模型的“计分函数”:给定参数 w、b,算出先验加上所有数据似然的联合对数概率。likelihood = tfd.Bernoulli(logits=w * x + b)伯努利分布描述“是/否”型线索,logits 是模型对每个样本打出的原始得分。tf.nn.softplus(qw_scale)把可训练的实数映射到正数,保证标准差始终合法,相当于“尺子刻度不能为负”。tfp.vi.fit_surrogate_posterior(...)变分推断主入口,内部自动计算负 ELBO 并反向传播优化变分参数。sample_size=10每次优化取 10 个样本估计期望项,样本越多梯度噪声越小。
常见误区
误区“TFP 不就是把 sklearn 里的贝叶斯模型换个 API 封装嘛,功能就那几个现成分类器,用处不大。”
正解TFP 是通用概率编程框架:你可以把任何神经网络改成贝叶斯版本、自定义任意先验、组合分布、用 MCMC 或 VI 做推断。它给的是“建模语言”,不是几个现成模型——就像工具箱给的是扳手和螺丝刀,而不是只给了你一辆装好的自行车。
为何常见:入门教程大多只演示现成的贝叶斯线性回归,初学者容易以为功能就那么多,看不到 TFP 的组合自由度。
误区“贝叶斯的正确用法就是让数据说话,先验只会引入主观偏差,应该尽量用无信息先验甚至不用。”
正解先验是所有贝叶斯模型的合法性来源,数据不足时提供正则化,把专家知识编码进来不是缺点而是优势。真正需要警惕的是“过度自信的尖峰先验”——它把画像画得太死,再多的线索也拉不回来。先验不代表随意,它代表“你在看数据之前合理的相信什么”。
为何常见:初学者常把频率派思维带进来,又受深度学习训练中长期弱化先验的影响,天然排斥先验的存在。
误区“既然 MCMC 理论上能得到精确后验,那变分推断就是劣质替代品,学了没用。”
正解MCMC 无偏但收敛慢、诊断难,参数维度一高就非常昂贵;变分推断快、可扩展、天然适合大模型和大数据。TFP 同时提供两者,选择标准是问题规模与精度需求,而不是哪个更“高级”——颅骨复原再精确,巡逻队等不及的时候还是速写图管用。
为何常见:教材常强调 MCMC 是“精确方法”,却忽略它的计算代价随维度剧增,导致学生形成“精确=更好”的单一印象。
误区“模型前向一次得到不同结果,这不就已经有不确定性了吗?”
正解单次采样只是噪声,不是不确定性的度量。要得到可靠的预测分布,必须多次前向采样,统计得出预测的均值与方差。一次采样既包含数据噪声、又包含权重采样噪声,两者混在一起,无法区分“数据本身的杂乱”与“模型有多少把握”。
为何常见:入门时容易混淆“随机性”和“不确定性的度量”这两个概念,看到随机输出就以为掌握了贝叶斯精髓。
误区“贝叶斯神经网络训练和普通网络差不多,损失就是交叉熵或负对数似然,KL 散度什么的都不用管。”
正解变分训练的完整损失是负 ELBO = 重构项(类似 NLL)+ KL 正则项。KL 项把变分分布拉向先验,防止过拟合和过度自信。漏掉 KL 项就退化成点估计,输出分布会严重低估不确定性——就像探长只信证据、完全丢掉常识,反而容易被单一线索带偏。
为何常见:从神经网络过渡到贝叶斯时,眼睛只盯着熟悉的似然项,忽略了 VI 特有的先验约束机制。
面试题
Q1. TFP 中的 tfd 是什么模块的简称?
- A.TF 数据管道模块
- B.TF 概率分布模块← 正确答案
- C.TF 模型部署模块
- D.TF 性能调试模块
答案:B。tfd 即 tfp.distributions,是 Normal、Bernoulli 等概率分布对象的家,相当于证人的“说话风格”登记簿。A 是 tf.data 的职责,C 对应 TF Serving,D 对应 tf.debugging。
Q2. 贝叶斯公式中的 P(θ|D) 在探案比喻中对应什么?
- A.探案的原始画像
- B.现场的全部线索
- C.更新后的嫌疑人画像← 正确答案
- D.未破案的悬案记录
答案:C。P(θ|D) 是给定数据 D 后参数 θ 的后验分布,正是“看完线索后更新的画像”。先验对应原始画像,似然对应线索与画像的匹配程度,D 选项与贝叶斯推断无关。
Q3. tfd.Normal 的 scale 参数控制分布的哪个性质?
- A.中心位置
- B.分布胖瘦← 正确答案
- C.分布形状
- D.横轴方向
答案:B。正态分布的 scale 即标准差 σ,控制曲线的“胖瘦”:σ 大则曲线扁平、取值分散,σ 小则曲线尖耸、取值集中。中心位置由 loc(均值 μ)控制,二者不要混淆。
Q4. 变分推断要解决的核心问题是什么?
- A.直接 MCMC 精确采样后验
- B.简单分布族逼近真实后验← 正确答案
- C.放弃先验只做最大似然
- D.网格搜索全部参数组合
答案:B。后验往往没有解析解,变分推断引入简单分布族 q_φ(z),通过优化 φ 最小化 KL(q‖p),用“速写画像”代替“颅骨复原”。A 是 MCMC 的思路,C 退化成频率派估计,D 在高维空间不可行。
Q5. 关于 HMC 采样器,下列说法正确的有?
- A.利用梯度信息引导采样← 正确答案
- B.依赖动量变量辅助探索← 正确答案
- C.无需计算目标分布梯度
- D.高维空间穿越效率更高← 正确答案
答案:ABD。HMC 引入动量变量,借助梯度信息模拟物理运动,顺势“滚”向高概率区域,在高维下显著优于纯随机游走的 Metropolis-Hastings。C 说反了——HMC 恰恰必须计算目标分布的梯度。
Q6. DenseVariational 层与传统 Dense 层的本质区别是什么?
- A.权重由变分分布代替固定参数← 正确答案
- B.激活函数被替换为采样函数
- C.输出维度被限制为固定值 1
- D.前向推理无法参与反向传播
答案:A。传统 Dense 的权重 W 是固定张量,而 DenseVariational 把 W 建模为可学习的变分分布 q(W),每次前向采样一套权重,本质上是从“背结论”升级为“记可能性笔记”。
Q7. 最大化 ELBO 等价于下列哪项操作?
- A.最大化 KL 散度数值
- B.最小化变分与后验的 KL← 正确答案
- C.最大化数据噪声的方差
- D.最小化先验与似然乘积
答案:B。ELBO = 重构项 − KL(q(z)‖p(z)),最大化 ELBO 等价于最小化变分分布与真实后验的 KL 散度——也就是让“速写画像”越来越接近“真实画像”。
Q8. 贝叶斯推断中,关于后验分布随数据增多变化的说法,正确的是?
- A.后验曲线会不断变宽以覆盖所有可能
- B.后验标准差单调下降并趋近数据均值← 正确答案
- C.后验均值永远停留在先验均值位置
- D.数据越多先验对后验影响反而越大
答案:B。数据越多,后验精度不断累加,方差单调下降,均值被数据“拉”向真实值;同时先验的影响随数据增多而减弱。A、C、D 都与贝叶斯更新的性质相反。
Q9. 关于认知不确定性与偶然不确定性,说法正确的有?
- A.偶然不确定性可由增加数据消除
- B.认知不确定性反映参数知识缺失← 正确答案
- C.偶然不确定性来自数据固有噪声← 正确答案
- D.认知不确定性随样本增加而减小← 正确答案
答案:BCD。偶然不确定性来自数据自身的噪声(测量误差、人群随机性),无论加多少数据都在;认知不确定性来自模型对参数的无知,反映训练数据覆盖不足,样本越多越小。A 把两者说反了。
Q10. 变分推断中的重参数化技巧要解决的核心难题是什么?
- A.让离散分布也能直接求导
- B.让策略梯度方差收敛到零
- C.使期望梯度可穿过采样反传← 正确答案
- D.消除对似然函数的全部需求
答案:C。重参数化把采样写成 z = μ + σ·ε,其中 ε 来自标准分布,梯度可以穿过确定性变换传到变分参数 φ,解决了“对随机采样点直接求导”的阻断问题。但它只对连续分布适用,并不能让离散分布直接可导,A 错。