假设你得到一盒 1000 片的城市风景拼图,但盒子封面图被撕掉了。你只能根据碎片的颜色、形状和纹理,把整幅画拼回来。这时你发现盒子角落残留着一小片封面碎屑,隐约能看到“这座城市的河流是从北向南流的”。别小看这条模糊的信息——它让你不用一片片试错,就能先把河边碎片的朝向定下来,拼图速度瞬间快了一大截。 因果发现做的事情,和拼图很像:我们手里只有一堆观测数据(碎片),要还原出变量之间真正的因果关系(完整的 DAG 图)。而结构先验,就是那一片封面碎屑——把专家对世界的已知经验,编码成对某些因果结构的偏好:哪些边不可能存在、哪些边更可能真实、哪些变量必然先发生。它不是用来替代数据的,而是帮数据更快、更准地找到答案。

岗位关联

对 AI 从业者来说,掌握结构先验意味着你能把领域知识与数据驱动优雅地结合,在样本稀缺的真实项目中显著提升因果结构学习的准确性和效率,这是从“调包”走向“建模”的关键一步。

目录
  1. 可视化演示
  2. 先验概念
  3. 边约束
  4. 拓扑先验
  5. 概率加权
  6. 搜索引导
  7. 样本融合
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

先验概念

拼过 1000 片拼图的人都知道,最痛苦的时刻不是碎片太多,而是毫无头绪。如果这时你发现盒子角落残留一片封面碎屑——哪怕只透出一座桥的轮廓——整幅拼图就有了锚点:你知道桥附近的碎片该往哪里找,河岸的颜色块应该如何归类。结构先验(Structural Prior)在因果发现中扮演的正是这个角色:它是数据之外、由领域知识提供的“封面碎屑”。

因果发现的任务,是从观测数据中还原变量之间的因果结构(一个有向无环图,简称 DAG)。纯数据驱动的方式就像闭着眼睛拼图:把每一对碎片都试一遍。而结构先验会把专家经验——哪些因果关系已经被文献证实、哪些在物理上不可能——编码成 DAG 上的概率偏好。这个偏好不是简单的“对”或“错”,而是对每个候选结构给出一个先验的合理程度。

在基于分数的因果发现里,我们为每个候选 DAG 打分,分数越高代表结构与数据越契合。最经典的贝叶斯分数把总分数拆成两股力量:数据怎么说,加上专家怎么想。

就像拼图老手一边看碎片吻合度(似然),一边参考封面碎屑的提示(先验),两边都照顾到了,才能在庞杂的搜索空间里快速锁定真正合理的结构。

Score(G∣D)=log⁡P(D∣G)+log⁡P(G)\displaystyle \text{Score}(G \mid D) = \log P(D \mid G) + \log P(G)
通俗地说:候选结构的最终得分 = 数据觉得它有多合理 + 专家觉得它有多合理。
  1. Score(综合评分)$Score(G \mid D)$ 表示给定观测数据 D 时,候选结构 G 的总分,模型选择时挑分数最高的图。
    Score(G∣D)\displaystyle \text{Score}(G \mid D)
  2. log(对数变换)取对数能把连乘化为连加,数值范围更稳定,也便于计算机求解。
    log⁡P(D∣G)\displaystyle \log P(D \mid G)
  3. P(D|G)(似然)在假设结构 G 下生成观测数据 D 的概率,衡量数据的解释力。
    P(D∣G)\displaystyle P(D \mid G)
  4. P(G)(先验概率)不依赖数据、仅凭领域经验判断 G 合理的程度,这是结构先验的数学归宿。
    P(G)\displaystyle P(G)

边约束

拼图时,你绝不会把“天空蓝”碎片和“柏油路黑”碎片硬拼在一起——它们之间必然隔着建筑或树木。这种“经验铁律”帮你直接淘汰了一大批荒谬组合。结构先验中最直接、最常用的一类,就是边的约束:对 DAG 中某条有向边“存在”或“不存在”做出规定。

专家知识常常能以“边”的形式表达。比如在医学上,已知“吸烟”会导致“肺部病变”,但没有医生会认为“肺部病变”会导致“吸烟”。于是我们可以把反向边 $肺病变 \to 吸烟$ 列入禁止边(黑名单)。反过来,经过验证的调控关系可以列入强制边(白名单),比如“转录因子 → 目标基因”。这些约束的本质,是把领域知识翻译成图的边集合上的规则。

在分数函数中,这类边约束通过一个加权求和项进入先验:

边约束就像拼图时的“颜色匹配铁律”:直接划掉不可能的配对,候选空间瞬间缩水,搜索也轻松大半。

log⁡P(G)=∑(i,j)∈Ewij⋅1[i→j∈G]+C\displaystyle \log P(G) = \sum_{(i,j) \in \mathcal{E}} w_{ij} \cdot \mathbb{1}[i \to j \in G] + C
每条边都有一个“经验权重”:正数代表鼓励出现,负数代表禁止出现,最后归一化保证它是一个合法的概率。
  1. 求和号 Σ把每一条可能边对先验的贡献累加起来,得到整张图的先验分数。
    ∑(i,j)∈E\displaystyle \sum_{(i,j) \in \mathcal{E}}
  2. 边集合 E遍历所有需要考虑的变量对(i, j),此处 E 是全体候选边的集合。
    (i,j)∈E\displaystyle (i, j) \in \mathcal{E}
  3. 权重 w_ij专家为这条边打的分,正数表示“更可能存在”,负数表示“更不可能存在”。
    wij\displaystyle w_{ij}
  4. 指示函数当图 G 中确实存在 $i \to j$ 这条边时取 1,否则取 0,只让实际存在的边贡献权重。
    1[i→j∈G]\displaystyle \mathbb{1}[i \to j \in G]
  5. 归一化常数 C保证所有结构的先验概率之和为 1,不影响结构之间的相对比较。
    +C\displaystyle + C

拓扑先验

拼图有天然的层次感:先拼外框、再填内部、最后补天空细节。有些碎片注定属于底层,有些必然叠在上面——这种空间秩序感,让拼图者在面对散乱碎片时仍能保持清晰思路。因果图同样存在类似的“秩序”,这就是拓扑先验。

拓扑先验约束的是变量之间的祖先关系。专家常常知道某些事情在时间或逻辑上必然先发生:比如“年龄”先于“患病”,“电压”先于“电流”。把这些知识形式化,就得到了祖先约束:要求某个变量 i 在图中必须是另一个变量 j 的祖先,即存在一条从 i 到 j 的有向路径。这种约束远比单条边更严格——它规定了整条链条的方向与顺序。

祖先约束可以写成如下概率形式:

拓扑先验让因果图拥有“向上的方向感”:不允许云朵悬空,不允许结果倒因为果。搜索算法沿着合法层次推进,天然避开大量方向颠倒的错误结构。

Panc(G)=∏(i,j)∈A1[i∈AncG(j)]\displaystyle P_{\text{anc}}(G) = \prod_{(i,j) \in \mathcal{A}} \mathbb{1}[i \in \text{Anc}_G(j)]
意思很直白:凡是专家规定的“i 必须是 j 的祖先”这类关系,只要有一条不满足,整张图的先验概率直接归零,即被淘汰。
  1. P_anc(G)(祖先先验)在所有祖先约束下,结构 G 被认可的先验概率。
    Panc(G)\displaystyle P_{\text{anc}}(G)
  2. 连乘 Π所有祖先约束必须同时满足,任何一条失败都会让乘积变成 0。
    ∏(i,j)∈A\displaystyle \prod_{(i,j) \in \mathcal{A}}
  3. 祖先关系集合 A专家列出的“i 必须是 j 的祖先”这类关系的清单。
    (i,j)∈A\displaystyle (i, j) \in \mathcal{A}
  4. 判断条件检查在 G 中 i 是否真的属于 j 的祖先集合 $\text{Anc}_G(j)$。
    i∈AncG(j)\displaystyle i \in \text{Anc}_G(j)

概率加权

同样是提示,可信度天差地别。封面碎屑上“河流从北向南”可能是印刷清晰的实锤;而“东边大概有个公园”只是你的模糊猜测。聪明的拼图者会按可靠性分配注意力:可靠的线索多信几分,模糊的猜测先放一边。结构先验同样需要这样的“可信度旋钮”——这就是概率加权。

在分数函数中,数据项和先验项之间的平衡由系数 λ 控制。λ 是强度的调节器:λ = 0 时完全不信任专家,纯数据说话;λ 越大,专家知识的分量越重;λ → ∞ 时,结构完全由先验决定。实际应用中,λ 可以通过交叉验证来选择,也可以根据先验来源的可信程度人工设定。

带加权的分数表达式如下:

概率加权就像给每条封面提示标上“置信度星级”:提示越可靠,λ 越高,搜索方向越被牵引;提示模糊时,就静下来听碎片自己说话。

Score(G)=ScoreD(G)+λ⋅Prior(G)\displaystyle \text{Score}(G) = \text{Score}_D(G) + \lambda \cdot \text{Prior}(G)
λ 可以理解为“对专家的信任程度”:值越大,专家意见在最终决策中占的比重就越高,但过大的 λ 也可能让数据被专家的偏见带偏。
  1. Score(G)(最终分数)带先验加权后的结构总分,作为结构搜索的排序依据。
    Score(G)\displaystyle \text{Score}(G)
  2. Score_D(G)(数据分)纯数据驱动的分数,通常是似然、BIC 或 MDL 分数。
    ScoreD(G)\displaystyle \text{Score}_D(G)
  3. λ(调节系数)控制先验强度的非负实数,是“先验信任度”的旋钮。
    λ\displaystyle \lambda
  4. Prior(G)(先验分)归一化后的先验偏好分数,衡量结构在领域知识下的合理度。
    Prior(G)\displaystyle \text{Prior}(G)

搜索引导

资深拼图玩家不会拿碎片一片片盲目尝试,而是先分类、找边角、按色块推进。这种“经验驱动的策略”让他几小时完成新手几天的活。结构先验在算法层面的作用与之如出一辙——它不只修改分数,更能引导搜索过程本身。

基于分数的因果发现通常采用爬山法、贪心搜索等策略:从某个初始图出发,每次增边、减边或翻转一条边,探索“邻居”结构。如果没有任何引导,算法会在庞大的结构空间里无头苍蝇般乱撞。加入结构先验后,哪些邻居值得探索、哪些方向直接放弃,都有了明确的依据——就像拼图者先排除不可能的配对,再集中火力攻克可能的区域。

带先验的邻域可以写成:

搜索引导让算法拥有了拼图高手的“地图感”:先排除不可能的,再锁定可能的区域集中突破。每一步都走得更准,收敛自然更快。

Nprior(G)={ G′:Dist(G′,G)≤k,  G′⊨Cprior }\displaystyle \mathcal{N}_{\text{prior}}(G) = \{\, G' : \text{Dist}(G', G) \le k,\; G' \models \mathcal{C}_{\text{prior}} \,\}
意思是:算法只允许在“离当前结构不太远,且满足所有先验约束”的候选集合里移动。这样一来,搜索步数大幅减少,收敛速度显著提升。
  1. N_prior(G)(先验邻域)从当前图 G 出发,在一步搜索中能到达的合法候选结构集合。
    Nprior(G)\displaystyle \mathcal{N}_{\text{prior}}(G)
  2. 编辑距离约束G' 与 G 之间最多相差 k 条边的增/减/翻,保证搜索的局部性。
    Dist(G′,G)≤k\displaystyle \text{Dist}(G', G) \le k
  3. 约束满足G' 必须满足全部先验约束集合 $\mathcal{C}_{\text{prior}}$,否则直接不予考虑。
    G′⊨Cprior\displaystyle G' \models \mathcal{C}_{\text{prior}}
  4. 集合界定花括号整体划定了合法的搜索“活动范围”。
    { G′:… }\displaystyle \{\, G' : \ldots \,\}

样本融合

如果拼图只有 20 片,又没有任何提示,几乎无法下手。可一旦有半张封面图,哪怕碎片极少,你也能推理出大致的全貌。数据量越少,先验越珍贵——样本融合讲的正是这个道理。

因果发现在真实项目中经常遭遇“小样本困境”:样本量不足时,纯数据驱动的分数噪声极大,很容易把根本不存在的边“拼”出来。结构先验此时充当了第二信息源。贝叶斯框架天然地把两者融为一体:后验信念 = 先验经验 × 数据证据。

后验分布(让人想起拼图者综合“封面提示”和“碎片吻合度”的最终判断):

样本越少,你越依赖提示;同样,数据量越有限,先验在结构学习中的话语权就越大。它像一个经验丰富的向导,在证据模糊时帮你稳住大方向,不让模型被噪声带偏。

P(G∣D)∝P(D∣G)⋅P(G)\displaystyle P(G \mid D) \propto P(D \mid G) \cdot P(G)
看见数据之后,我们对某个结构的信念,正比于“数据支持度”乘以“先验合理度”。样本越少,先验项的相对影响越大。
  1. P(G|D)(后验概率)观测到数据 D 后,候选结构 G 为真的概率,是最终决策依据。
    P(G∣D)\displaystyle P(G \mid D)
  2. ∝(正比符号)两边差一个归一化常数,不影响结构之间的相对比较。
    ∝\displaystyle \propto
  3. P(D|G)(似然)数据在假设结构 G 下被观测到的可能性,反映数据对结构的支持程度。
    P(D∣G)\displaystyle P(D \mid G)
  4. P(G)(先验)在观测数据之前,领域知识对结构 G 的固有合理度。
    P(G)\displaystyle P(G)

AI 应用场景

药物研发中的基因调控网络推断

阶段:模型构建与知识约束融合

解决的问题:纯数据驱动的基因调控网络推断容易产生大量假阳性边——数据量有限时,算法会把相关性误认为因果性。利用通路数据库(如 KEGG)中已验证的调控关系,把“转录因子必在靶基因上游”这类时间先验和“某基因不可能调控另一基因”的禁止边直接编码进 BDeu 分数,能显著提升网络的可信度。

具体案例:某肿瘤药物靶点筛选项目中,研究者用 RNA 测序数据推断基因调控网络。他们从文献中提取了 23 条公认的调控关系和 5 条禁忌反向边,加入结构先验后,网络的可重复性提升了约 40%,且搜索时间缩短了三分之一。

工业系统故障根因分析

阶段:因果结构发现与根因定位

解决的问题:制造产线传感器数据高度耦合,纯相关分析无法区分因果方向。物理知识提供了天然先验——比如“电压变化先于电流变化”、“真空度不可能由良率问题反向导致”。这些时间先后和物理约束可以作为拓扑先验与禁止边融入分数搜索。

具体案例:某半导体产线用带先验的因果发现定位良率异常根因。专家将“真空度变化不可能导致机械臂报错”等 3 条禁止边与 2 条祖先约束加入模型后,候选结构搜索时间缩短 60%,根因定位准确率从 71% 提升到 89%。

Python 演示

python76 行
import numpy as npimport itertools np.random.seed(42)n = 30x = np.random.normal(0, 1, n)# 真实因果: X -> Z, 且让 X 与 Z 同方差, 使两方向分数几乎相同z = 0.7 * x + np.sqrt(1 - 0.7 ** 2) * np.random.normal(0, 1, n)data = np.stack([x, z], axis=1)names = ['X', 'Z']  def fmt(G):    out = []    for (i, j) in [(0, 1), (1, 0)]:        if G[i][j]:            out.append(names[i] + ' -> ' + names[j])    return ', '.join(out) if out else '空图'  def is_dag(G):    n = len(G)    Gc = [row[:] for row in G]    removed = [False] * n    for _ in range(n):        indeg = [sum(Gc[i][j] for i in range(n)) for j in range(n)]        sink = next((j for j in range(n) if not removed[j] and indeg[j] == 0), None)        if sink is None:            return False        removed[sink] = True        for i in range(n):            Gc[i][sink] = 0    return True  def bic_score(data, parents, child):    y = data[:, child]    if parents:        cols = [data[:, p] for p in parents] + [np.ones(len(data))]        X = np.column_stack(cols)    else:        X = np.ones((len(data), 1))    beta, _, _, _ = np.linalg.lstsq(X, y, rcond=None)    rss = np.sum((y - X @ beta) ** 2)    k = len(parents) + 1    return -n * np.log(rss / n) - k * np.log(n)  def total_score(G, data, forbidden=(), lam=0.0):    s = 0.0    for j in range(2):        parents = [i for i in range(2) if G[i][j] == 1]        s += bic_score(data, parents, j)    for (i, j) in forbidden:        if G[i][j] == 1:            s -= lam    return s  edges = [(0, 1), (1, 0)]candidates = []for mask in itertools.product([0, 1], repeat=2):    G = [[0] * 2 for _ in range(2)]    for (i, j), v in zip(edges, mask):        G[i][j] = v    if is_dag(G):        candidates.append(G) print('无先验时各候选结构分数:')for G in candidates:    print(' ', fmt(G), '= %.2f' % total_score(G, data)) # 专家知识: Z 时间上晚于 X, 不可能是 X 的因forbidden = [(1, 0)]best_prior = max(candidates, key=lambda G: total_score(G, data, forbidden, lam=3.0))print('带先验最优: ' + fmt(best_prior))
目的:演示两个变量 X、Z 的因果方向识别困境——无先验时两种结构分数几乎并列,算法无法区分方向;加入“Z 不可能是 X 的原因”这条结构先验后,正确方向 X→Z 被唯一锁定。
  1. z = 0.7 * x + np.sqrt(1 - 0.7 ** 2) * np.random.normal(0, 1, n)按真实因果 X→Z 生成数据,并让 X、Z 同方差,使两个方向的 BIC 分数几乎相等
  2. def is_dag(G):用拓扑排序检查候选图是否含环,确保搜索空间内全是有向无环图
  3. def bic_score(...):计算单节点的 BIC 分数,兼顾拟合优度与复杂度惩罚
  4. def total_score(...):总分数 = 数据分之和 + 先验惩罚项(禁止边扣分)
  5. forbidden = [(1, 0)]专家知识编码:变量 Z 不可能作为 X 的父节点
  6. max(candidates, key=...)遍历所有合法 DAG,选出先验加权后分数最高的结构

常见误区

误区结构先验不就是人为拍脑袋吗?我拿到数据直接跑算法就好,加入先验反而让结果带了人的主观色彩,不够客观。

正解结构先验是领域知识的显式编码,来源于文献、实验和学科规律,不是随意猜测。因果发现的核心目标是恢复真实机制,而纯数据在有限样本下常常存在多个得分相似的候选图——先验正好提供数据之外的有效信息。就像拼图时封面碎屑来自厂家而不是玩家,自然有助于还原真实图案。

为何常见:许多人把“先验”等同于统计里的“偏见”,忽略了它可以被形式化验证、调节和与数据互相纠正。

误区先验嘛,就是把不能出现的边列出来,其余功能就没有了。黑名单一列,我就懂结构先验了。

正解禁止边只是最基础的形式。结构先验还可以是边的加权偏好(w_ij 可正可负)、祖先关系约束(i 必须为 j 的祖先)、拓扑序的概率分布,甚至是对某个子结构的整体偏好。它们以不同方式编码进分数函数,影响力远超一张黑名单。

为何常见:入门教程通常从“禁止边”讲起,容易让初学者误以为先验只是简单的排除法。

误区既然先验有用,那把 λ 调到很大,让专家知识完全主导搜索,结果肯定更准。

正解先验过强会压制数据信号,甚至把错误的先验固化。更糟的是,如果封面碎屑其实来自另一幅拼图,你越相信它,拼出的图就越离谱。最佳实践是通过交叉验证或模型选择来调节 λ,让先验和数据形成健康的对话关系。

为何常见:人类对“专家经验”天然带有过度信任,忽略了知识本身可能过时、片面或适用范围有限。

误区只要数据量够大,似然项会碾压先验项,结构先验完全可以丢掉。

正解当样本无限时似然确实主导,但真实场景中样本总有限。更重要的是,先验还承担着搜索裁剪、可解释性、以及打破马尔可夫等价类(即利用数据无法区分 X→Y 与 Y→X)的功能——这些与样本量无关。即使数据大,先验依然能显著降低计算成本。

为何常见:直觉上觉得“数据多了就是万能”,忽略了因果方向不可识别与搜索复杂性是两个独立于样本量的难题。

面试题

Q1. 结构先验在因果发现中最主要的贡献是?

单选题 · easy

  • A.加速搜索并缩小候选空间← 正确答案
  • B.完全替代观测数据的分析
  • C.自动生成新的实验数据
  • D.消除所有模型不确定性

答案:A。结构先验的核心价值是把领域知识编码进搜索过程,显著缩减候选空间。它不能替代数据、不能生成数据,也无法消除所有不确定性。就像拼图时先排除不可能的配对,而不是替你完成整幅拼图。

Q2. 贝叶斯分数 Score=logP(D|G)+logP(G) 中,先验项 logP(G) 的意义是?

单选题 · mid

  • A.数据对结构的似然支持程度
  • B.结构本身的先验概率得分← 正确答案
  • C.模型参数的复杂度惩罚项
  • D.变量间互信息的数值大小

答案:B。logP(G) 编码领域知识对结构 G 的偏好,数据拟合由 logP(D|G) 负责。BIC 的复杂度惩罚在标准 BIC/MDL 变体中已隐含于似然项内部,不属于先验项。选项 D 与结构打分无关。

Q3. 以下哪些属于结构先验的具体形式?

多选题 · mid

  • A.禁止边出现的黑名单机制← 正确答案
  • B.强制边出现的白名单机制← 正确答案
  • C.对拓扑序施加的概率偏好← 正确答案
  • D.对参数分布的非参数估计

答案:ABC。结构先验作用于图结构层面,黑名单、白名单和祖先/拓扑约束都是 DAG 空间上的偏好。选项 D 是对参数 θ 的建模方法,不属于结构先验,而是参数先验。

Q4. 加入“禁止 Z→X 这条边”的先验后,搜索算法会?

单选题 · easy

  • A.提升含该边结构的搜索优先度
  • B.排除所有含该边的候选结构← 正确答案
  • C.减少 X 和 Z 之间的数据相关性
  • D.增加该边对应参数的正则约束

答案:B。禁止边会令包含该边的候选图先验分降到极低或直接移出候选集,算法不可能再选中它们。先验不触碰数据本身,因此不能改变 X 与 Z 的相关性。

Q5. 分数函数中 λ 设置过大时最可能的结果是?

单选题 · mid

  • A.模型完全忽略数据信号而跟随先验← 正确答案
  • B.搜索结果更依赖样本自身方差
  • C.先验信息失去全部的约束效力
  • D.数据项的数值被算法自动提高

答案:A。λ→∞ 时先验项主导总分,算法会输出先验最偏好的结构,哪怕它与数据严重不符。这正是“先验过强”的风险,对应拼图时过度信任一张错误的提示。

Q6. 小样本场景下结构先验能提升学习质量的机制是?

多选题 · hard

  • A.提供正则化防止对噪声过拟合← 正确答案
  • B.剪除搜索空间减少假阳性边← 正确答案
  • C.引入因果方向的外部辨识线索← 正确答案
  • D.直接扩充样本的容量与代表性

答案:ABC。先验提供正则约束、缩小搜索空间、补充方向信息,从而在小样本下降低过拟合与假阳性。但它不能产生新数据,D 错误。就像拼图碎片不足时,提示能帮你归位但不能新增碎片。

Q7. 祖先约束要求 i ∈ Anc_G(j),其本质作用是?

单选题 · mid

  • A.将搜索限制在满足该层次的拓扑序中← 正确答案
  • B.直接改变变量观测值的统计分布
  • C.自动估计每条边因果效应的强度
  • D.为参数优化提供初始点与步长

答案:A。祖先约束是拓扑层面的硬性偏好:i 必须在 j 的祖先链条中,这等价于规定了一条从 i 到 j 的有向路径,限制了合法拓扑序集合。它不改变数据、不估计因果强度、也不参与参数优化。

Q8. 下列哪项不是结构先验的常见来源?

单选题 · easy

  • A.文献中经过验证的因果结论
  • B.领域专家的经验判断与规则
  • C.对观测数据的非参数密度拟合← 正确答案
  • D.时间先后等逻辑上的因果关系

答案:C。结构先验来自“数据之外”的知识:文献、专家、逻辑常识。对观测数据的密度拟合本质上是从数据中提取信息,属于统计建模范畴,不叫先验。

Q9. 关于结构先验与数据似然的关系,正确的有?

多选题 · hard

  • A.先验可引导搜索朝合理结构收敛← 正确答案
  • B.先验作为正则项控制结构复杂度← 正确答案
  • C.先验与似然必须设置成完全相反
  • D.先验可降低结构不可识别性问题← 正确答案

答案:ABD。先验与似然互补而非对立:先验提供收敛方向、正则约束和识别性帮助。C 没有依据。贝叶斯分数正是二者的统一:后验正比于似然乘以先验。

Q10. 样本量不断增加时,结构先验在贝叶斯学习中的影响会?

单选题 · extreme

  • A.相对减弱但不会完全消失← 正确答案
  • B.绝对强度随之线性增强
  • C.完全抵消数据的似然信号
  • D.与样本量同步持续上升

答案:A。后验 ∝ 先验 × 似然,样本增大时似然项信息量线性增长,先验的相对影响自然下降;但由于先验还承担搜索剪枝与打破等价类的功能,即使样本无限,它也不会完全消失。