一家面包房忽然接到一张苛刻的大订单:客户要求一整批招牌面包,每一只的重量都必须落在标称300克的正负15克以内。面粉供应商只能承诺“每袋500克,误差不超过5克”,水温和车间湿度也天天在变。质检员小李没有疯狂地拆开几千袋面粉做实验——那样工厂要停工十年。他换了一种思路:掏出一本“误差账本”,每走过一道工序,就把“所有面团目前可能的重量范围”更新一次。揉面是线性变换,账本精算到克;发酵涨落不规律,他就拿一个三角形的帐篷把真实变化整个罩进去。走到流水线尽头,只要账本上记的最大可能重量还没碰到315克的红线,就盖章放行。这个“追踪可能范围、逐层传播、最终判安全”的流程,就是线性界传播(Linear Bound Propagation,LBP)的灵魂:不拆开每一个可能的输入,而是把“可能性的范围”沿神经网络一层层传下去,用数学的确定性替代无穷次实验。

岗位关联

掌握LBP,你就能读懂主流AI鲁棒性认证工具的底层逻辑,在模型上线前用数学证据评价对抗风险,这是高级算法工程师与安全研究者拉开差距的关键能力。

目录
  1. 可视化演示
  2. 概念起源:一家面包房的质检难题
  3. 问题建模:给一批面粉圈出范围
  4. 核心原理:揉面机里的精确账本
  5. 关键实现:发酵工序的大帐篷
  6. 验证判定:翻到最后一页盖质检章
  7. 局限挑战:帐篷越搭越多
  8. 工程应用:把账本变成工厂SOP
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示线性界传播LBP的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。

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

线性界传播LBP:LBP核 LBP核心思想与精确界传播痛点 线性界表示与扰动区间前向传播 核心机制可视化 线性界传播LBP整体架构与关键组件

概念起源:一家面包房的质检难题

如果你是一家面包房的质检员,忽然接了一张苛刻的订单:客户要求一整批面包,每一只的重量都必须落在300克的正负15克内。面粉供应商只能承诺“每袋500克,误差不超过5克”,车间温度和水质也不是恒定的。你不可能把几万袋面粉的每一种搭配都揉成面包——那样工厂要停工十年。你需要一种更聪明的验收方式:不逐个试做,而是把“所有可能的误差”装进一个数学信封里。

深度学习模型落地时遇到的是同一道题。医疗影像模型上线前,医生最担心的是:输入图片只要被噪声、光线甚至对抗扰动改动一点点,模型就把“良性”判成“恶性”?暴力测试永远只能覆盖有限个样本,而安全攸关场景需要的是数学上的保证——对一整类可能的输入给出确定性结论。这正是形式化验证(Formal Verification)登场的动机:用逻辑和代数证明“无论输入怎么变,输出都不会跨过红线”。

LBP(Linear Bound Propagation,线性界传播)就是形式化验证中最直观的一类方法。它不逐个检查输入,而是把每一层神经元可能的输出值“包”成一个区间,像账本一样逐层往后传。这套方法在认证防御(Certified Defense)中扮演质检员角色:用可证实的上下界,给模型盖下“通过”或“待查”的章。它不依赖具体攻击方式,因此不会出现“挡住攻击者A、漏掉攻击者B”的假安全感。

小李的账本,就是LBP的化身。区别只在于,账本上记的不是面团克数,而是张量每个维度上的上下界。接下来的每一节,我们都沿着这条流水线,把这本账一页页翻开。

问题建模:给一批面粉圈出范围

走进车间前,小李做的第一件事是找面粉供应商要一份“波动承诺书”:每袋面粉的克数和标签值的偏差,绝不超过5克。有了这个承诺,他才敢在账本第一页写上:所有面粉的可能重量属于 [495, 505] 克。AI验证也一样,第一步不是训练模型,而是把“输入可能怎么变”用数学语言锁死。

数学上,这个承诺被写成输入扰动域。给定原始样本 \(x_0\)(标准标签重量)和半径 \(\epsilon\)(供应商承诺的误差上限),我们关心 \(x_0\) 的 \(\epsilon\)-邻域:

仅圈出范围还不够,还要定义什么是“合格”。在分类问题中,鲁棒性属性通常表述为:对扰动域内所有输入,模型给出的真实类别分数必须严格高于其他所有类别。这等价于“每一只面包,无论面粉如何波动,都落回300±15克的合格区间”。扰动域是账本的第一页,鲁棒性属性是挂在墙上的质检标准。两者都齐了,小李才敢开始翻页。

Bϵ(x0)={x∈Rd:∥x−x0∥∞≤ϵ}\mathcal{B}_\epsilon(x_0) = \left\{ x \in \mathbb{R}^d : \left\| x - x_0 \right\|_\infty \le \epsilon \right\}
这个公式画出一个以 \(x_0\) 为中心的超立方体,半径 \(\epsilon\) 决定每条边能伸长多少。无穷范数保证“最坏的那一维偏差也不会超过 \(\epsilon\)”。
  1. 候选输入向量扰动域中的每个 \(x\),对应一袋面粉在误差范围内的某一种实际克数组合。
    x∈Rdx \in \mathbb{R}^d
  2. 无穷范数刻画最大偏差\(\|x - x_0\|_\infty\) 表示所有维度中变化最大的那一维的绝对值,就像“最离谱的那袋面粉偏了5克”。
    ∥x−x0∥∞≤ϵ\left\| x - x_0 \right\|_\infty \le \epsilon
  3. 邻域集合把满足该条件的所有 \(x\) 收集起来,就得到以 \(x_0\) 为中心、半径 \(\epsilon\) 的“扰动超立方体”。
    Bϵ(x0)\mathcal{B}_\epsilon(x_0)

核心原理:揉面机里的精确账本

第一道工序是揉面。配方固定:加50克水、甩掉20克损耗、再拉伸到1.2倍。每一个输入的变化都按同一个线性规则被放大或缩小。既然规则是线性的,小李的账本就能做到分毫不差——输入的波动范围有多大,算出来的新范围就有多准。

神经网络中的仿射层 \(h_i = W h_{i-1} + b\) 就是那道“揉了揉又拉长”的工序。难点在于权重矩阵 \(W\) 里的每个元素有正有负:正权重让“输入下界”产生最小的输出,负权重则让“输入下界”产生最大的输出。于是需要把权重拆成正部 \(W^+\) 和负部 \(W^-\),再分别搭配相应的界值:

这也是“线性界”名字的由来:在仿射层上,边界跟着矩阵走,等价于把每个神经元的取值范围看作一维区间,做一次区间算术的前向传递。计算复杂度是 \(O(\text{层参数量})\),和一次普通前向传播相当。小李在这一页上写的数字,每一克都经得起复称。真正让账本需要“留余量”的,是下一道不讲道理的发酵工序。

W+=max⁡(W,0),W−=min⁡(W,0)W^{+} = \max(W, 0), \quad W^{-} = \min(W, 0)
l^i=W+l^i−1+W−u^i−1+b,u^i=W+u^i−1+W−l^i−1+b\hat{l}_i = W^{+}\hat{l}_{i-1} + W^{-}\hat{u}_{i-1} + b, \qquad \hat{u}_i = W^{+}\hat{u}_{i-1} + W^{-}\hat{l}_{i-1} + b
第一式告诉我们:想得到新的下界,就让正权重撞上输入下界、负权重撞上输入上界;第二式反之。对纯线性层,这两条公式算出的界是精确的,不掺一点水分。
  1. 正负权重拆解把权重矩阵按符号切成两块,正部保留正数、负部保留负数,其余位置补零。
    W+=max⁡(W,0),W−=min⁡(W,0)W^{+} = \max(W, 0), \quad W^{-} = \min(W, 0)
  2. 下界传播规则正权重乘以输入下界,负权重乘以输入上界,再加偏置,得到输出下界。
    l^i=W+l^i−1+W−u^i−1+b\hat{l}_i = W^{+}\hat{l}_{i-1} + W^{-}\hat{u}_{i-1} + b
  3. 上界传播规则正权重乘以输入上界,负权重乘以输入下界,加偏置,得到输出上界。
    u^i=W+u^i−1+W−l^i−1+b\hat{u}_i = W^{+}\hat{u}_{i-1} + W^{-}\hat{l}_{i-1} + b

关键实现:发酵工序的大帐篷

发酵是不讲道理的:有的面团发不起来,重量只减不增;有的正常鼓起,重量线性上浮。真实的变化曲线是一条“先平后升”的折线——账本没法精确记一条折线。小李的解决办法是掏出一个三角形帐篷,把整条折线罩在下面。帐篷比真实范围略大,但至少保证“真实值一定在帐篷里”。

ReLU激活函数 \(f(x)=\max(x,0)\) 就是这道发酵工序。设上一层传来的区间为 \([l,u]\),分三种情形处理:

引入过近似意味着账本记录的范围会比真实范围宽,多出来的部分叫“松弛”(slack)。松弛让验证结论可能变保守——原本安全的一批面料,账本上看着像越界。但它换来巨大的计算收益:每个神经元只需几次乘法和比较,就可以把非线性激活“线性化”,让整个网络保持可被区间算术处理的形式。帐篷比货物大一点没关系,重要的是货物一定在帐篷里。

f^(x)={x,l≥00,u≤0uu−l(x−l),l<0<u\hat{f}(x)=\begin{cases} x, & l \ge 0 \\ 0, & u \le 0 \\ \dfrac{u}{u-l}(x-l), & l < 0 < u \end{cases}
当整个区间都在正半轴,ReLU就是恒等;都在负半轴,输出被截成0;跨零时用一条割线把折线罩住,这就是三角过近似(Triangle Over-approximation)。
  1. 完全导通情形下界都不小于0,ReLU对区间内每个点都不截断,输出等于输入,精确复制。
    x,l≥0x, \quad l \ge 0
  2. 完全关闭情形上界都不大于0,所有输入都被压成0,输出区间写作常数0。
    0,u≤00, \quad u \le 0
  3. 跨零模糊情形区间横跨零点,真实输出是折线,必须用一条直线从上往下罩住它。
    l<0<ul < 0 < u
  4. 三角近似的割线斜率连接 \((l,0)\) 与 \((u,u)\) 两点,斜率为 \(\frac{u}{u-l}\),当 \(x=l\) 时近似值为0,当 \(x=u\) 时近似值为 \(u\),保证真实值不越界。
    uu−l(x−l)\dfrac{u}{u-l}(x-l)

验证判定:翻到最后一页盖质检章

经过六道工序,小李终于翻到账本最后一页。上面写着“全批次面包的可能重量:[285, 309]克”。上界309克仍低于315克红线——很好,整批放行!如果账本写的是[285, 322]克,那322越线了,不能盖章:要么真的有问题,要么某个帐篷搭得太大,需要复查。

对分类模型,验证目标被写成类别间距:

实现时,LBP把 \(f_c(x)\) 与 \(\max_{j\neq c} f_j(x)\) 的组合当作一个“输出层”,再做一次区间传播,得到间距的保守下界。若下界大于0,就拿到了数学保证:扰动域内每一个输入,模型都会给出正确类别。注意“验证未通过”和“存在对抗样本”并不等价——界太松、帐篷太大也会让下界跌破0。因此工程上往往把LBP当第一道筛子:通过了直接发“鲁棒性认证证书”;不通过再用分支定界、反例搜索等更精细的手段复核。这就好比账本上越界的面粉,未必真的超标,但稳妥起见还是要开袋复称。

∀x∈Bϵ(x0):fc(x)−max⁡j≠cfj(x)>0\forall x \in \mathcal{B}_\epsilon(x_0): \quad f_c(x) - \max_{j \neq c} f_j(x) > 0
这个式子要求:在扰动域内任意取一个输入,真实类别 \(c\) 的分数都要压过其他所有类别。LBP不直接遍历无穷多个输入,而是算出这个间距的保守下界,只要下界大于0就盖章。
  1. 真实类别分数模型对正确标签 \(c\) 的输出值,相当于面包的“实测重量”。
    fc(x)f_c(x)
  2. 其余类别最高分所有错误类别中分数最高的那个,相当于“最接近的竞争者”。
    max⁡j≠cfj(x)\max_{j \neq c} f_j(x)
  3. 安全间距真实类别分数减去最强竞争者的分数,必须严格大于0,分类才正确。
    fc(x)−max⁡j≠cfj(x)>0f_c(x) - \max_{j \neq c} f_j(x) > 0
  4. 全扰动域成立\(\forall x \in \mathcal{B}_\epsilon(x_0)\) 表示上述不等式要对扰动域内每一个输入都成立,这正是验证要保证的核心。
    ∀x∈Bϵ(x0)\forall x \in \mathcal{B}_\epsilon(x_0)

局限挑战:帐篷越搭越多

流水线上有六道工序,每道都要搭帐篷。帐篷A套帐篷B,边界一层层放宽。到了最后,账本上写的是[280, 330]克——可实际上每种配方的面包都在合格范围内。小李知道,不是面包不合格,是“帐篷叠帐篷”让账本太保守了。凡是被账本拦下的批次,都得花时间复查,这就是过近似误差累积的代价。

在LBP中,仿射层不引入任何过近似误差,因此误差的唯一来源是ReLU层的三角近似。每经过一个跨零的ReLU,界就宽一点;网络越深、跨零神经元越多,松弛累积越严重。理论研究表明,在最坏情况下LBP的界可能随网络深度指数级膨胀。此外,网络权重的尺度也直接影响界的紧致性:权重越大,输入范围的放大倍数越大,后续ReLU越容易跨零,界就越松。

缓解的核心思路是让模型“训练感知验证”:在训练损失中加入LBP界宽或间距下界的惩罚项,强制网络把决策边界与扰动域拉开距离,由此得到的模型往往有显著更紧的界。代价是训练时间变长、超参数变多。工程上总要在“界紧不紧”和“算得快不快”之间权衡——这也解释了为什么LBP适合做快速初筛,而硬核认证会给它配上更重的分析器。小李的账本越保守,工厂越不敢直接依赖它。真正好用的质检方案,得让帐篷尽量贴合货物。

工程应用:把账本变成工厂SOP

故事的最后,面包房把小李的方法固化成标准作业流程:新品上线之前必须先过账本;新供应商的面粉必须附上波动承诺书;每个月写一份全品类质量报告给大客户。账本从个人绝活变成了组织能力。在AI工程里,LBP也正经历同样的“制度化”过程。

其三种典型用法是:第一,鲁棒性认证。模型发布前,对测试集每个样本计算给定半径 \(\epsilon\) 下的验证结果,汇总成“认证鲁棒率”(Certified Robust Accuracy),写进模型卡,让使用方明确知道“这个模型在多大扰动下保证不变”。

第二,对抗防御评估。对抗训练等防御方法效果如何?只看普通准确率会被攻击强度欺骗——攻击不够强时,防御模型看似准确率很高。用LBP认证得到的鲁棒率不依赖攻击方式,是更可信的横向对比指标。第三,模型筛选与监控。在数据可信层,对候选模型批量运行LBP,挑选稳健者上线,再对线上输入扰动情况定期复核。开源工具链如ERAN、\(\alpha,\beta\)-CROWN 已经把LBP工程化,支持CNN、Transformer等主流架构,并用GPU加速和分支定界大幅提升可扩展性。从一张手写账本到一套自动化质检SOP,LBP完成了从论文到生产线的旅程。下次有人问“AI被对抗样本骗了怎么办”,你可以递上这本账本。

AI 应用场景

医疗影像模型上线前认证

阶段:模型评估与部署阶段

解决的问题:传统方式只能靠大量攻击样本来测试鲁棒性,样本覆盖不全、结果依赖攻击强度;LBP对指定扰动域给出确定性结论,相当于对整批输入做“全检”而不是“抽检”。医疗场景一旦误诊后果严重,需要可写入审计报告的数学证明。

具体案例:某医疗AI团队在肺结节分类模型上线前,对500张测试图施加像素级 \(\epsilon=0.05\) 的扰动,用LBP逐张计算类别间距下界,发现约12%的样本下界为负。团队先对这批样本做数据增强和梯度裁剪,再重新认证,认证鲁棒率从78%提升到93%,随后才申请临床备案。

对抗防御方法横向评测

阶段:安全测评与方案选型

解决的问题:普通准确率无法区分“真正抗攻击”和“只是没被攻破”的模型;LBP给出不依赖攻击方式的确定性鲁棒性指标,让不同防御方案的对比公正、可复现,避免“挡住攻击者A、漏掉攻击者B”的假安全感。

具体案例:某银行风控团队比较三类防御模型(对抗训练、输入去噪、梯度掩蔽)时,统一用LBP认证 \(\epsilon=0.1\) 下的鲁棒率,发现梯度掩蔽模型的认证鲁棒率不足15%,远低于对抗训练的71%,从而在采购决策中淘汰了华而不实的方案。

数据可信层的模型筛选流水线

阶段:数据可信层工程实践

解决的问题:模型库中数十个候选模型逐一做人工渗透测试成本太高;把LBP作为第一道自动筛子,快速淘汰认证鲁棒率不达标的模型,再对幸存者做深度测试,兼顾安全与效率。

具体案例:某自动驾驶团队每周从开源模型库拉取新版本语义分割模型,用ERAN工具对100个典型场景运行LBP认证,认证通过率低于90%的模型自动打回重训,只有通过者进入仿真评测队列,整体评估周期从两周缩短到三天。

Python 演示

python73 行
# -*- coding: utf-8 -*-"""LBP 线性界传播的玩具实现: 验证两层ReLU网络在输入扰动下的鲁棒性"""import numpy as np  class ToyNet:    """2维输入 -> 3个隐层神经元(ReLU) -> 2类输出"""     def __init__(self):        self.W1 = np.array([[1.0, -0.5],                            [-1.0, 0.8],                            [0.6, 0.6]])        self.b1 = np.array([0.2, 0.1, -0.1])        self.W2 = np.array([[1.0, -1.0, 0.5],                            [-0.5, 0.8, -1.0]])        self.b2 = np.array([0.1, 0.2])     def forward(self, x):        h = np.maximum(0, self.W1 @ x + self.b1)        return self.W2 @ h + self.b2     def margin(self, x):        out = self.forward(x)        return out[0] - out[1]     def lbp_margin_lb(self, x0, eps):        """返回 margin 的 LBP 保守下界"""        l0 = x0 - eps        u0 = x0 + eps        # 第1层: 仿射精确传播        pos_w = np.maximum(self.W1, 0.0)        neg_w = np.minimum(self.W1, 0.0)        l1 = pos_w @ l0 + neg_w @ u0 + self.b1        u1 = pos_w @ u0 + neg_w @ l0 + self.b1        # ReLU: 三角过近似        l2 = np.where(l1 >= 0, l1, 0.0)        u2 = np.where(u1 <= 0, 0.0, u1)        # 输出层: 先对margin做线性组合, 再精确传播        w_m = self.W2[0] - self.W2[1]        b_m = self.b2[0] - self.b2[1]        pos_wm = np.maximum(w_m, 0.0)        neg_wm = np.minimum(w_m, 0.0)        ml = pos_wm @ l2 + neg_wm @ u2 + b_m        return ml     def lbp_verify(self, x0, eps):        ml = self.lbp_margin_lb(x0, eps)        return ml > 0, ml  def mc_estimate(net, x0, eps, n=20000):    """蒙特卡洛采样估计, 只作对比, 不能给出保证"""    cnt = 0    rng = np.random.default_rng(42)    for _ in range(n):        x = x0 + rng.uniform(-eps, eps, size=x0.shape)        if net.margin(x) > 0:            cnt += 1    return cnt / n  def main():    net = ToyNet()    x0 = np.array([0.5, -0.3])    for eps in [0.1, 0.2, 0.35, 0.5]:        ok, ml = net.lbp_verify(x0, eps)        rate = mc_estimate(net, x0, eps)        print("eps=%.2f margin_lb=%.4f verified=%s mc_rate=%.2f%%"              % (eps, ml, ok, rate * 100))  if __name__ == "__main__":    main()
目的:用70行代码实现一个玩具LBP验证器,对两层ReLU网络完成“输入扰动→逐层界传播→margin下界判定”的全流程,并与蒙特卡洛采样对比,直观展示形式化验证与统计估计的差异。
  1. pos_w = np.maximum(self.W1, 0.0)把权重矩阵切成“正部”,负权重补零,这是仿射层界传播的基石。
  2. l1 = pos_w @ l0 + neg_w @ u0 + self.b1正权重乘下界、负权重乘上界,加偏置得到新的下界。
  3. u1 = pos_w @ u0 + neg_w @ l0 + self.b1正权重乘上界、负权重乘下界,对称地得到新的上界。
  4. l2 = np.where(l1 >= 0, l1, 0.0)ReLU的三角近似下界:完全导通时保留原值,其余情况一律截到0。
  5. u2 = np.where(u1 <= 0, 0.0, u1)ReLU的三角近似上界:完全关闭时为0,否则保留原上界。
  6. w_m = self.W2[0] - self.W2[1]把“类别间距”合并成一个线性层,再走一次精确的仿射传播。
  7. ml = pos_wm @ l2 + neg_wm @ u2 + b_m得到margin的保守下界,大于0即可通过验证。
  8. if net.margin(x) > 0:蒙特卡洛采样逐个判断,只能给出概率估计,无法覆盖全部输入。
  9. for eps in [0.1, 0.2, 0.35, 0.5]:逐步加大扰动半径,观察LBP验证从通过到拒绝的临界变化。

常见误区

误区“LBP和蒙特卡洛差不多吧?都是把输入改来改去,看模型输出变不变,采样数量越大结果越可信。”

正解这是两回事。采样是“抽查几袋面粉”,永远无法保证覆盖所有波动组合;LBP是“账本推导”,通过数学公式把无穷多个可能输入包在一个区间里,只要区间上界越不过红线,就给出100%的确定结论。采样的结果叫统计估计,LBP的结果叫形式化证明,二者的可信度层级完全不同。

为何常见:接触过对抗攻击评测的人习惯“生成样本测准确率”的范式,容易把“覆盖全部输入”误以为只是“样本足够多”,忽略了数学保证与统计推断的本质区别。

误区“LBP传播出来的上界和下界,不就是模型真实输出的最大最小值吗?验证时直接用就行。”

正解LBP给出的是过近似(Over-approximation),即真实输出一定在范围内,但范围可能比真实更大。就像小李的三角形帐篷一定罩得住发酵折线,但帐篷比折线宽。精确传播只在仿射层成立,一旦遇到ReLU激活,三角近似就会引入松弛,因此“界”是保守的,不是精确的。

为何常见:很多文章直接说“LBP计算输出界”,加上术语里“界”字容易被理解为“精确边界”,初学者便忽略了近似误差的存在。

误区“计算得更细、传播更多层,应该能让边界更准确吧?所以网络越深LBP效果越好。”

正解恰恰相反。层数越深,ReLU过近似误差一层层累积,界往往越松。深层网络中大量跨零神经元让三角形帐篷越叠越大,验证结果越来越保守。想缓解误差累积,要靠分支定界、更紧的激活近似或训练感知正则,而不是单纯加深网络。

为何常见:直觉上“信息越多越精确”误导了判断,但LBP的误差是累积型而非抵消型,每层只会更宽,不会更紧。

误区“只要LBP说验证失败,那这个模型肯定能被对抗样本骗过,赶紧打回重训吧。”

正解验证不通过只说明“界太松,无法证明安全”,并不代表“真的不安全”。帐篷搭太大、边界过度松弛,都会让margin下界跌破0。工程上此时应该换更紧的验证方法(分支定界、反例搜索)做复核,而不是直接判定模型有漏洞。

为何常见:把形式化验证当成“漏洞检测器”,忘了验证的本质是“可证明地安全”而非“证伪不安全”。两者在逻辑上不对称。

误区“文章里举的例子都是全连接网络,卷积层和池化层肯定没法用LBP。”

正解CNN里的卷积层本质是稀疏线性变换,可以写成矩阵乘法用仿射传播;池化层可以按上下界做最大值/最小值传播;BN、残差连接等也都有对应的界传播公式。主流工具ERAN、\(\alpha\)-CROWN都支持CNN甚至Transformer。LBP是通用框架,而不是某个网络结构的专属算法。

为何常见:教材为了讲清原理常用全连接网络做最小示例,让初学者误以为LBP被网络结构绑定;实际上线性层的传播规则可以推广到几乎所有可微算子。

面试题

Q1. LBP解决的核心问题是什么?

单选题 · easy

  • A.提高模型训练速度← 正确答案
  • B.计算输出上下边界
  • C.增强数据多样性程度
  • D.压缩模型参数数量

答案:A。LBP的目标是为神经网络在输入扰动下计算输出的保守上下界,就像质检员估计整批面包的重量范围。A是训练优化问题,C是数据增强问题,D是模型压缩问题,都与LBP的验证目标无关。

Q2. 输入扰动域 \(B_\epsilon(x_0)\) 中无穷范数的直观含义是什么?

单选题 · easy

  • A.各维度最大允许变化量← 正确答案
  • B.各维度平均允许变化量
  • C.各维度平方和的平方根
  • D.各维度变化量的连乘积

答案:A。无穷范数取的是所有维度中变化最大的那个绝对值,就像面粉批次里“最离谱的那袋偏了5克”。平均值是L1范数的直觉,平方和是L2范数,连乘积则没有任何范数对应,因此只有A正确。

Q3. “过近似”在LBP中的含义是什么?

单选题 · easy

  • A.以更大范围罩住真实输出← 正确答案
  • B.以更小范围贴近真实输出
  • C.以精确范围代替估计范围
  • D.以随机采样估计输出范围

答案:A。过近似指用一个比真实集合更大的范围把它包住,比如ReLU的三角帐篷比真实折线宽。B是欠近似,C是精确传播,D是统计估计,三者都不是过近似的定义。

Q4. 仿射层传播时,正权重应乘以输入的哪个界来更新下界?

单选题 · mid

  • A.取输入上界
  • B.取输入下界← 正确答案
  • C.取输入中值
  • D.取随机采样

答案:B。正权重与输入成正比,输入越小输出越小,所以更新下界时正权重应乘以输入下界;负权重与输入成反比,应乘以输入上界。这就像“揉面加水越多越重”——求最轻情况要用最少的加水量。

Q5. ReLU区间跨零时,三角近似给出的下界是多少?

单选题 · mid

  • A.输出恒为实数零← 正确答案
  • B.输出恒为负数
  • C.等于输入下界值
  • D.等于输入上界值

答案:A。跨零时三角近似是连接 \((l,0)\) 与 \((u,u)\) 的割线,割线的最小值出现在左端点,值为0。真实ReLU在负半轴也取0,所以下界是0;C和D分别是左右端点的坐标,B更是错误方向。

Q6. LBP验证不通过时,最准确的理解是什么?

单选题 · mid

  • A.模型一定存在对抗样本
  • B.尚无法证明安全性← 正确答案
  • C.采样攻击一定成功
  • D.模型一定安全无恙

答案:B。验证不通过只说明margin下界没能大于0,可能是真实有缺陷,也可能只是过近似太松。就像账本显示超重,开袋复称后未必真的超重。A和C把“无法证明”偷换成了“证伪”,D则完全相反。

Q7. LBP验证“通过”意味着什么?

多选题 · mid

  • A.输出边界下界大于零← 正确答案
  • B.扰动域内类别不变← 正确答案
  • C.采样实验全部成功
  • D.训练损失低于阈值

答案:AB。验证通过的本质是类别间距的下界大于0,由此可推出扰动域内任意输入都会得到正确类别,所以A和B都正确。采样实验属于统计证据,训练损失则与鲁棒性无关,C和D不能作为验证通过的判据。

Q8. LBP与蒙特卡洛采样的本质区别是什么?

单选题 · hard

  • A.LBP提供确定性保证← 正确答案
  • B.采样速度更快更轻
  • C.采样结果更加精确
  • D.LBP无需神经网络

答案:A。LBP通过区间传播给出数学上确定的结论,覆盖扰动域内所有输入;蒙特卡洛只能给出概率估计,永远存在漏网之鱼。B和C说的是采样在速度和精度上的局部优势,但改变不了其不完备性;D显然错误,LBP正是针对神经网络设计的。

Q9. 关于LBP误差来源和累积,下列说法正确的是?

多选题 · hard

  • A.仿射层不引入近似误差← 正确答案
  • B.ReLU层是误差主要来源← 正确答案
  • C.网络越深边界越保守← 正确答案
  • D.加大扰动可减少误差

答案:ABC。仿射层的界传播是精确的,误差只来自ReLU等非线性激活的过近似,所以A和B正确;深层网络中误差逐层累积,界越来越保守,C也正确;加大扰动只会让更多ReLU跨零、误差更大,D方向反了。

Q10. ReLU三角近似的割线斜率 \(u/(u-l)\) 起到什么作用?

单选题 · extreme

  • A.连接区间两端点的割线← 正确答案
  • B.保留原函数精确的输出
  • C.将输出范围整体缩小
  • D.对扰动范围进行缩放

答案:A。斜率 \(u/(u-l)\) 保证直线经过 \((l,0)\) 和 \((u,u)\) 两个端点,成为真实ReLU折线的一个上界超平面。B是恒等传播的效果,C方向相反,D与扰动范围缩放无关。理解这条割线是理解过近似误差的关键。