3、水印技术概述:数字水印在深度学习模型中的原理、分类与评价指标

TinyML模型部署在资源受限的微控制器(MCU)或边缘设备上,其参数规模小、结构相对简单,且往往以二进制固件形式直接烧录。这种特性使得模型极易被整体复制、逆向提取或未授权再分发。数字水印技术通过在模型中嵌入不可见但可验证的标识信息,为模型提供了一种“事后可追溯、事前可威慑”的版权保护手段。与加密技术不同,水印并不阻止非法访问,而是在模型被窃取或泄露后,能够通过提取水印来证明所有权、追踪泄露源头。本节将系统阐述深度学习水印的核心原理、分类体系以及评价指标,为后续章节中TinyML场景下的水印实现奠定理论基础。

深度学习模型数字水印技术全景 嵌入时机 训练前 / 训练中 / 训练后 嵌入载体 参数 / 结构 / 行为 / 数据 提取方式 白盒 / 黑盒 / 无盒 核心水印属性 保真度 · 鲁棒性 · 容量 · 安全性 · 完整性 保真度指标 ACC drop / 输出偏差 鲁棒性指标 BER / 提取成功率 安全性指标 误检率 / 伪造难度 TinyML 场景特殊约束 存储开销 < 1% · 计算开销 < 2% · 抗量化/剪枝 · 固件级提取

上图给出了深度学习模型水印技术的整体框架。水印的嵌入时机决定了其与模型训练流程的耦合程度;嵌入载体决定了水印的隐蔽性和鲁棒性基础;提取方式则直接关联到实际验证场景中的可操作性。在TinyML场景下,这三者均需在极端的资源约束下重新权衡。下面逐一展开。

3.1 核心原理:从信号水印到模型水印的映射

数字水印起源于多媒体领域,其核心思想是在载体信号(图像、音频、视频)中嵌入不可感知的标记信息。深度学习模型水印借鉴了这一思想,但载体从像素矩阵变成了神经网络的高维参数空间或决策边界。其基本原理可概括为:在满足模型性能损失最小化的约束下,通过特定算法将水印信息(如二进制序列、版权标识、用户ID)编码到模型的参数、结构或行为中,使得授权方能够在需要时可靠地提取该信息以证明所有权。

从信息论角度看,模型水印是一个带约束的信源编码问题。设原始模型为 \( f_\theta(x) \),水印信息为 \( w \),嵌入过程可表示为 \( \theta' = E(\theta, w, K) \),其中 \( K \) 为密钥。要求 \( f_{\theta'}(x) \approx f_\theta(x) \)(保真度),且存在提取函数 \( \hat{w} = D(\theta', K) \) 使得 \( \hat{w} = w \)(可提取性)。在TinyML中,由于模型参数量可能仅有几十KB到几百KB,水印的嵌入空间极为有限,这要求水印算法必须具有极高的嵌入效率。

关键理解:模型水印与加密的本质区别在于——加密是“阻止访问”,水印是“允许访问但保留追责能力”。在TinyML场景中,固件一旦烧录到设备上,攻击者可以通过调试接口(如JTAG、SWD)直接读取Flash内容,加密密钥同样面临泄露风险。水印的价值在于即使模型被完整提取,版权方仍能通过水印证明所有权。

3.2 水印分类体系:多维度视角

根据不同的分类维度,深度学习水印技术可以划分为多种类型。理解分类体系有助于在实际场景中选择合适的水印方案。

3.2.1 按嵌入时机分类

类型 嵌入方式 优点 缺点 TinyML适用性
训练前水印 在模型初始化或数据预处理阶段嵌入 对训练过程无干扰,水印容量大 需要从头训练,计算成本高 低(TinyML通常基于预训练模型微调)
训练中水印 在损失函数中加入水印正则项,随训练迭代优化 水印与模型参数深度融合,鲁棒性好 需要修改训练流程,可能影响收敛 中(适用于微调阶段)
训练后水印 对已训练模型参数进行后处理修改 无需重新训练,计算开销小 可能引入参数扰动,鲁棒性较弱 高(适合TinyML的快速部署)

3.2.2 按嵌入载体分类

  • 参数水印:直接修改模型权重或偏置的数值。例如将特定位置的权重值微调至预设区间,或利用权重分布的高斯特性嵌入信息。优点是提取简单,缺点是易被微调或剪枝破坏。
  • 结构水印:在模型架构中嵌入特定模式,如添加冗余神经元、特定连接模式或激活函数变体。结构水印隐蔽性强,但会引入额外计算开销,在TinyML中需谨慎设计。
  • 行为水印:通过构造特定的触发输入(trigger set),使模型对这些输入产生预设的输出行为。例如,对特定噪声图案输出特定类别。行为水印无需修改参数,但需要维护触发集,且可能被对抗样本攻击。
  • 数据水印:在训练数据中嵌入水印模式,模型在训练后隐式学习该模式。这种方式与模型无关,但需要控制训练数据,不适用于已有模型。

3.2.3 按提取方式分类

  1. 白盒水印:需要访问模型内部参数或结构进行提取。适用于版权方自己持有模型副本的场景,提取准确率高。
  2. 黑盒水印:仅通过查询模型的输入输出接口来验证水印。适用于模型以API形式部署的场景,但需要精心设计触发集。
  3. 无盒水印:无需访问模型本身,仅通过观察模型的行为模式(如输出分布特征)来推断水印存在。这种方式的可靠性较低,通常作为辅助验证手段。

TinyML选型建议:在MCU部署场景中,由于模型通常以静态固件形式存在,版权方往往能够保留完整的模型副本,因此白盒参数水印是最直接、最可靠的选择。若模型通过OTA升级分发,则需考虑黑盒行为水印作为补充验证。

3.3 评价指标:如何衡量水印方案的好坏

一个优秀的水印方案需要在多个维度上达到平衡。以下是核心评价指标体系:

指标类别 具体指标 定义与计算 TinyML参考阈值
保真度 准确率下降(ACC Drop) \( \Delta ACC = ACC_{orig} - ACC_{wm} \) < 1%
输出分布偏差 KL散度或最大均值差异(MMD) KL < 0.01
鲁棒性 比特错误率(BER) 提取水印与原始水印的汉明距离 / 水印长度 < 5%
提取成功率 在攻击后成功提取完整水印的概率 > 95%
容量 水印比特数 可嵌入的有效信息量 ≥ 32 bit(UUID)
嵌入密度 每千参数可嵌入的比特数 ≥ 1 bit/1K params
安全性 误检率(FPR) 未嵌入水印的模型被误判为有水印的概率 < 10⁻⁶
抗伪造性 攻击者伪造合法水印的难度 需密钥保护

3.4 案例拆解:TinyML图像分类模型的水印方案设计

为具体说明上述原理,我们设计一个基于MobileNetV2的TinyML图像分类模型水印方案。该模型用于工业视觉质检,部署在STM32H743(Cortex-M7, 480MHz, 2MB Flash)上,模型量化后大小为850KB。

背景与约束:模型由某设备厂商训练,需向三家代工厂分发固件。厂商希望在水印中编码代工厂ID(8bit)、生产批次(8bit)和唯一序列号(16bit),共32bit水印信息。约束条件为:模型准确率下降不超过0.5%,水印提取时间不超过100ms(在PC端验证),且需抵抗常见的模型微调攻击。

方案选择:采用训练后参数水印 + 白盒提取方案。具体步骤如下:

  1. 水印编码:将32bit水印信息通过BCH纠错码扩展为64bit编码序列,以增强鲁棒性。
  2. 嵌入位置选择:选取模型最后一个卷积层的权重矩阵,该层参数量为1280×10=12800个参数。将权重按列分组,每组16个参数嵌入1bit信息。
  3. 嵌入算法:对每组参数计算均值 \( \mu \),若需嵌入比特“1”,则将均值调整至 \( \mu + \delta \);嵌入“0”则调整至 \( \mu - \delta \)。其中 \( \delta = 0.01 \times \sigma \),\( \sigma \) 为该组参数的标准差。调整时保持参数相对顺序不变,以最小化对输出的影响。
  4. 密钥保护:嵌入位置由伪随机序列决定,该序列由密钥 \( K \) 种子生成。攻击者即使知道水印算法,也无法确定嵌入位置。

验证结果:

指标 嵌入前 嵌入后 变化
Top-1准确率 92.3% 92.1% -0.2% ✓
模型大小 850KB 850KB 无变化 ✓
水印提取时间 - 35ms 满足要求 ✓
微调攻击后BER - 1.2% 可纠错恢复 ✓

风险与代价:该方案的主要风险在于,若攻击者对模型进行较大幅度的微调(如重新训练最后两层),水印可能被部分破坏。为应对此风险,可在嵌入时增加冗余度(如每bit嵌入到3组参数中,采用多数表决提取)。代价是水印容量下降至约10bit,但可通过增加嵌入层数来弥补。

重要提醒:在TinyML场景中,水印嵌入必须考虑量化效应。上述案例中模型为INT8量化,权重值域为[-128, 127]。若 \( \delta \) 设置过小(小于量化步长),水印信息将在量化过程中丢失。因此,嵌入强度 \( \delta \) 必须大于量化步长,通常取 \( \delta \geq 2 \times \) 量化步长。

3.5 常见误区与总结复盘

在设计和实施模型水印时,工程师常陷入以下误区:

  • 误区一:水印容量越大越好。实际上,容量与鲁棒性、保真度之间存在不可调和的矛盾。在TinyML中,32bit水印通常已足够编码版权方信息和序列号,盲目增加容量会显著降低模型性能。
  • 误区二:水印可以抵抗一切攻击。水印的鲁棒性是有限度的。针对剪枝、量化、微调、蒸馏等常见攻击,水印方案需要针对性设计。不存在“万能水印”。
  • 误区三:只关注嵌入而忽略提取流程。在实际维权场景中,提取流程的标准化和可复现性至关重要。建议将提取工具、密钥管理和验证协议固化为标准操作流程(SOP)。
  • 误区四:忽视密钥管理。水印的安全性高度依赖密钥。若密钥随固件一同泄露,水印将形同虚设。密钥应存储在安全元件(SE)或通过安全启动链保护。