18605 字
93 分钟
不只准确率:「可信机器学习」课程笔记

教学大纲节选#

教学计划#

  • 一、机器学习系统事故案例介绍及风险分析

    • 1.1 系统泄露隐私
    • 1.2 系统存在偏见
    • 1.3 系统不鲁棒
  • 二、机器学习典型算法介绍

    • 2.1 线性回归与分类
    • 2.2 神经网络与深度学习
    • 2.3 支持向量机
  • 三、可信机器学习之隐私保护

    • 3.1 联邦学习的概念与分类
    • 3.2 横向联邦学习算法FedAverage
    • 3.3 纵向联邦学习算法
    • 3.4 模型逆向攻击
    • 3.5 模型逆向攻击防御之差分隐私
    • 3.6 模型逆向攻击防御之聚合模型
  • **四、可信机器学习之公平 **

    • 4.1 公平的概念
    • 4.2 多种公平的形式化定义
  • 五、可信机器学习之数据投毒与防御

    • 5.1 数据投毒攻击的概念
    • 5.2 面向SVM的数据投毒攻击
    • 5.3 面向 SVM 的数据投毒防御方法
  • 六、可计算学习之对抗攻击与防御

    • 6.1 对抗攻击的基本概念
    • 6.2 典型对抗攻击算法 —— PGSM
    • 6.3 典型对抗攻击算法 —— PGD
  • 七、可信机器学习之模型可视化

    • 7.1 卷积神经网络的可视化方法
  • 八、可信机器学习之模型可解释

    • 8.1 模型可解释的概念与常见分类
    • 8.2 典型模型解释方法——LIME
    • 8.3 典型模型解释方法——反事实解释

章节重点概括#

第一章 机器学习系统事故案例介绍及风险分析#

第一部分:机器学习系统安全风险分析#

本部分将机器学习系统的安全风险分为两大类:数据安全风险和算法安全风险,并阐述了相应的缓解策略。

数据安全风险

数据安全风险主要涉及用于训练机器学习模型的敏感数据被未经授权地访问或推断。

  • 数据泄露——本地存储 一个基础性风险是原始数据(如人脸图像、医疗记录)在被集中收集和存储时发生泄露。一个关键的缓解策略是联邦学习 (Federated Learning)。在该框架下,数据保留在用户的本地设备上,模型在本地进行训练,只有训练产生的参数更新被发送到中央服务器进行聚合。这种方法可以防止原始数据离开用户的控制范围。

  • 数据窃取——模糊处理 即便原始数据没有直接泄露,敏感信息仍可能通过模型逆向攻击 (Model Inversion Attacks)被窃取。在这种攻击中,攻击者通过反复查询模型的API接口,利用返回的预测结果(例如类别标签和置信度)来逆向工程并重构出用于训练的私有数据。针对此风险的一种防御方法是PATE框架,它通过在不相交的数据分区上训练多个“教师”模型,并使用带有噪声的聚合预测结果来训练最终的“学生”模型,从而“模糊化”或混淆任何单个数据点的贡献。

算法安全风险

算法安全风险源于学习算法自身的内在属性和漏洞。

  • 偏见——数据预处理、公平约束 算法可能会学习并放大数据中存在的社会偏见,从而导致歧视性的决策结果。缓解策略包括进行仔细的数据预处理以移除或调整有偏见的特征,以及在模型训练过程中引入算法层面的公平约束(例如,人口统计均等),以确保在不同群体间实现公平的结果。

  • 投毒攻击——筛选投毒样本 投毒攻击指攻击者将恶意的、经过精心构造的数据注入训练集中。这些被“投毒”的样本旨在破坏模型的训练过程,导致其在特定任务上失败或整体性能下降。主要的防御措施是部署强大的数据筛选和清洗机制,旨在模型训练前识别并移除这些异常或具有高度影响力的投毒样本。

  • 对抗攻击——对抗训练 对抗攻击发生在模型的测试阶段,攻击者对输入数据进行微小且人眼难以察觉的扰动,以诱导模型做出错误的分类。最常见的防御方法是对抗训练,即将对抗样本加入到训练数据中。通过迫使模型学习正确分类这些被扰动的输入,可以显著提高其对类似攻击的鲁棒性。

  • 不可解释——可视化、反事实 许多复杂模型(特别是深度神经网络)如同“黑箱”,其决策过程不透明。这种不可解释性削弱了用户的信任,并使得诊断模型故障变得困难。缓解技术包括模型可视化方法,用于揭示模型在做决策时关注输入的哪个部分;以及生成反事实解释 (Counterfactual Explanations),它能展示对输入进行何种最小的改动会改变模型的预测,从而阐明其决策边界。

  • 训练偏差——迁移学习、小样本学习 当训练数据的分布与真实世界部署场景的数据分布不匹配时(即数据集偏移问题),就会产生此风险。例如,一个主要使用特定族裔图像训练的人脸识别系统,在识别其他族裔时性能可能会大幅下降。迁移学习可以通过少量新数据来适配一个预训练好的模型,而小样本学习技术则旨在从极少量样本中构建有效模型,这两种方法都有助于解决少数群体数据稀缺的问题。

第二部分:机器学习系统事故案例介绍#

本部分通过真实的事故案例,展示了机器学习系统在安全性与可靠性方面的具体失效表现。

系统泄露隐私

  • 人脸识别系统隐私泄露 在教室等场景部署人脸识别系统带来了直接的隐私风险。例如,南京某高校试点的系统能够追踪学生的行为,如看手机、打瞌睡、阅读的次数。这种技术会生成一份详细且连续的个人行为记录,若被滥用,则构成严重的隐私侵犯。

  • 逆向攻击模型获取敏感信息 即便无法直接访问数据库,私有信息仍可从模型的输出中被窃取。攻击者可通过反复查询一个人脸识别模型,系统性地修改一个随机输入图像,以最大化模型对某个特定人名(如“Alice”)的预测置信度。这个被称为模型逆向攻击的过程,最终可以成功重构出Alice的可识别图像,从而窃取其生物特征数据。

系统存在偏见

  • 种族歧视、性别歧视等
    • 种族歧视: 在美国司法系统中广泛用于预测再犯风险的COMPAS算法被发现存在对黑人被告的偏见。研究指出,该算法错误地将未再犯的黑人标记为“高风险”的可能性几乎是白人的两倍。
    • 性别歧视: 针对谷歌在线广告系统的一项研究发现,该系统向男性用户展示高薪职位广告的频率远高于女性用户,从而在就业机会上加剧了性别刻板印象。

系统不鲁棒、莫名其妙的错误

  • 自动驾驶事故(识别错误、决策错误)
    • 特斯拉事故 (2016年,佛罗里达州): 一起致命事故发生的原因是,一辆处于Autopilot模式下的特斯拉在强烈的日照条件下,未能识别出正在前方左转的白色半挂卡车。车辆的传感器和驾驶员都未能察觉到障碍物,最终导致碰撞。
    • 优步事故 (2018年,亚利桑那州): 一辆优步的自动驾驶测试车撞击并导致一名在非人行横道过马路的行人死亡。事后分析显示,系统在感知和决策上都存在灾难性失误。系统软件在碰撞前反复将行人错误地分类为“未知物体”、“车辆”和“自行车”,未能正确识别。更致命的是,即使在碰撞前1.3秒系统判断需要紧急制动,其内置的逻辑(为防止过度反应)却阻止了紧急制动的执行,最终酿成悲剧。

第二章 机器学习典型算法介绍#

一、线性回归与分类 (Logistic Regression)#

1. 核心模型与求解

  • 线性回归模型: 假设因变量 yiy_i 和自变量 xix_i 之间存在线性关系。模型可以表示为 yi=ϕ(xi)Tβy_i = \phi(x_i)^T \beta,其中 ϕ(xi)\phi(x_i) 是对原始特征进行变换的基函数,β\beta 是待求的回归系数。
  • 最小二乘法 (Least Squares): 线性回归最常用的求解方法是最小化预测值与真实值之间的 平方误差和。优化目标为: S=i=1N(yif(xi,β))2S = \sum_{i=1}^{N}(y_i - f(x_i, \beta))^2 该问题有解析解:β^=(ΦTΦ)1ΦTy\hat{\beta} = (\Phi^T\Phi)^{-1}\Phi^T y

2. 概率视角与正则化

  • 与最大似然估计的关系:
    • 最小二乘估计 在概率上等价于假设预测误差服从 高斯分布 时的 最大似然估计。这是因为高斯分布的对数似然函数与最小二乘的损失函数形式上只相差一个常数项。
  • 正则化 (Regularization):
    • 目的: 主要目的是 防止过拟合,通过在损失函数中添加惩罚项来约束模型复杂度。
    • L2 正则化 (岭回归): 惩罚项为参数的L2范数平方 λβTβ\lambda\beta^T\beta。它倾向于让所有参数的权重都变小,但不会变为零。
    • L1 正则化 (Lasso回归): 惩罚项为参数的L1范数 λdβd\lambda\sum_d|\beta_d|。它具有 稀疏性,即倾向于让许多不重要的特征的权重变为零,从而实现特征选择。
  • 正则化与最大后验估计 (MAP) 的关系:
    • L2范数正则化 的最小二乘估计,在概率上等价于为参数 β\beta 设定一个 高斯分布的先验,并且似然概率也是高斯分布时的 最大后验估计。正则化项对应于先验概率项。

3. 逻辑回归 (Logistic Regression)

  • 模型: 逻辑回归用于解决 分类问题。它通过 Sigmoid函数 (逻辑函数) σ(x)=11+ex\sigma(x) = \frac{1}{1+e^{-x}} 将线性回归的输出值映射到 (0, 1) 区间,表示样本属于正类的概率。
  • 损失函数: 逻辑回归的损失函数是 交叉熵损失 (Cross-Entropy Loss)
  • 与最大似然的关系: 从概率角度看,最小化交叉熵损失等价于最大化多个 独立同分布的伯努利变量 的联合似然。
  • 多类逻辑回归: 对于多于两个类别的问题,使用 Softmax函数 代替Sigmoid函数,将输出转换为所有类别的概率分布。

二、支持向量机 (Support Vector Machine, SVM)#

1. 核心原理

  • 大间隔原理 (Large Margin Principle): SVM的核心思想是寻找一个 最优分类超平面,这个超平面不仅能将两类数据点正确分开,而且能使距离它最近的不同类别的样本点(即 支持向量)到该平面的 间隔最大化
  • 支持向量 (Support Vectors): 这些位于间隔边界上或在错误一侧的数据点,是唯一对决策超平面起决定作用的样本。在对偶问题中,它们对应的拉格朗日乘子 αi>0\alpha_i > 0

2. 模型类型

  • 硬间隔SVM (Hard Margin): 用于处理 线性可分 数据。要求所有样本都被正确分类,且位于间隔边界之外。其优化目标是最小化 12w2\frac{1}{2}\|w\|^2,约束条件为 yi(wTxi+b)1y_i(w^T x_i + b) \ge 1
  • 软间隔SVM (Soft Margin): 用于处理 线性不可分 数据。通过引入 松弛变量 ξi0\xi_i \ge 0 和惩罚系数 CC,允许部分样本被错分或进入间隔带内。其优化目标是最小化 12w2+Cξi\frac{1}{2}\|w\|^2 + C\sum\xi_i,这等价于最小化 铰链损失 (Hinge Loss)
  • 支持向量回归 (SVR): SVM也可用于回归任务。它引入一个 ϵ\epsilon-不敏感损失函数,即对预测值与真实值之差在 ϵ\epsilon 范围内的样本不计算损失,从而得到由少数支持向量决定的稀疏解。

3. 优化与核方法

  • 拉格朗日对偶优化 (Lagrange Duality): SVM的求解通常通过拉格朗日对偶将原约束优化问题(原问题)转化为对偶问题。
    • 弱对偶性: 对偶问题的最优值总是 小于等于 原问题的最优值,即对偶函数是原问题最优值的一个 下界
    • 强对偶性: 在满足 KKT条件 的情况下(对于凸优化问题是充要条件),对偶问题的解与原问题的解相等。
    • 互补松弛: KKT条件中的一个重要部分是互补松弛条件,如 αi(yi(wTxi+b)1+ξi)=0\alpha_i(y_i(w^T x_i + b) - 1 + \xi_i) = 0。这个条件用于求解偏置项 bb 和识别支持向量。
  • 核技巧 (Kernel Trick):
    • 目的: 用于解决 非线性分类问题
    • 原理: 通过一个 核函数 κ(x,z)=ϕ(x),ϕ(z)\kappa(x, z) = \langle\phi(x), \phi(z)\rangle 将数据隐式地映射到一个更高维的特征空间,使得原本线性不可分的数据在新空间中变得线性可分。这个过程避免了显式计算高维映射,大大降低了计算复杂度。
    • 影响: 使用核方法后,模型参数 ww 无法在原始输入空间中被显式计算出来,决策函数完全依赖于支持向量和核函数的计算。
    • 常见核函数: 线性核、多项式核、高斯核(RBF核)。

三、人工神经网络与深度学习#

1. 基本构成与训练

  • 神经元 (Neuron/Perceptron): 是神经网络的基本单元。它接收多个输入,进行加权求和并加上一个偏置项,然后通过一个非线性的 激活函数(如Sigmoid, tanh, ReLU)产生输出。
  • 反向传播算法 (Backpropagation): 这是训练多层神经网络的核心算法。它通过 链式法则,从输出层开始逐层向后计算损失函数对每一层网络参数的梯度,然后利用 梯度下降法 来更新参数。

2. 深度学习挑战与对策

  • 过拟合 (Overfitting):
    • 原因: 模型过于复杂或训练数据太少。
    • 对策:
      • **早停止:**是指在模型训练过程中,可通过观察验证集上的预测性能来 决定何时停止对参数的优化,从而可以在产生过拟合之前停止训练
      • 权重衰减 (Weight Decay): 是指为了防止得到的权重参数过大,而采取的在每步迭代 中少量减少权重的方法。采用L2正则化,防止权重过大。
      • 丢弃法 (Dropout): 在训练过程中,以一定概率随机“丢弃”一些神经元及其连接,强迫网络学习更鲁棒的特征。在 测试时,使用全部权重,但通常需要按保留概率进行缩放。
  • 梯度消失/爆炸 (Vanishing/Exploding Gradients):
    • 原因: 在深层网络中,使用反向传播时,梯度的连乘效应可能导致梯度值变得极小(消失)或极大(爆炸),尤其在使用Sigmoid或tanh等饱和激活函数时。
    • 对策:
      • 使用合适的激活函数: 如 ReLU 及其变体(Leaky ReLU),由于其在正区间的导数为1,可以有效缓解梯度消失问题。
      • 设计特殊的网络结构: 如 LSTMGRU 通过引入门控机制来控制信息流动,有效解决了RNN中的长期依赖和梯度消失问题。

3. 典型深度学习模型

  • 卷积神经网络 (CNN):

    • 特点: 主要基于 参数共享(通过卷积核)和 局部连接 的思想,非常适合处理图像等网格状数据。
    • 关键层:
      • 卷积 (Convolution):使用滤波器(卷积核)对输入数据进行扫描,以生成特征图(feature map)。
      • 激活 (Activation):将非线性激活函数(通常是ReLU)应用于特征图的每个元素,以引入非线性,使网络能够学习更复杂的模式 。在卷积神经网络(CNN)中,激活函数(如ReLU)通常应用于卷积操作之后,池化操作之前
      • 池化 (Pooling):对激活后的特征图进行下采样(通常是最大池化,也有平均池化),以降低其维度,减少计算量,并防止过拟合 。
    • 如何理解参数共享
      • 定义:参数共享指的是在卷积层中,用于提取特征的卷积核(或滤波器)在输入图像的所有位置上都是相同的 。这个卷积核就是一组被共享的参数 。
      • 工作原理:一个卷积核从输入图像的左上角开始,以固定的步长(stride)滑过整个图像,在每个位置执行卷积运算,从而生成一张特征图。在这个过程中,无论卷积核移动到哪个位置,其内部的权重值都是固定不变的,即被“共享”了 。 *
      • 背后的假设:这种机制基于一个合理的假设:如果一个特征(例如,检测鸟嘴的模式)在图像的某个部分有用,那么它在图像的其他部分也可能同样有用 。因此,没有必要为图像的每个位置都学习一个单独的检测器;一个共享的卷积核就足够了。
      • 与全连接层的对比:在一个全连接层中,每个输出神经元都与前一层的所有输入神经元有独立的连接权重。而在卷积层中,一张特征图上的所有神经元都共享同一组卷积核权重,从而显著降低了参数量 。
  • 循环神经网络 (RNN):

    • 特点: 通过一个循环的 隐藏状态 来处理 序列数据(如文本、语音),能够捕捉数据中的时间依赖关系。
    • 局限: 存在 梯度消失 问题,难以捕捉长期依赖。长短期记忆网络 (LSTM) 通过引入输入门、遗忘门和输出门来解决此问题。
    • 常用任务:
      • 多对一:时序分类,如情感分析,行为识别
      • 一对多:时序生成,如图像描述
      • 多对多(对齐):时序标注,如实体识别,填空
      • 多对多(非对齐):机器翻译
  • Transformer

    • 核心思想: Transformer是一种基于 自注意力机制 (Self-Attention) 的深度学习模型,完全摒弃了循环神经网络(RNN)和卷积神经网络(CNN)的结构。它在处理序列数据(如自然语言)时表现出色,能够并行处理整个序列并有效捕捉长距离依赖关系。
    • 注意力机制 (Attention): 其基础是注意力机制,用于学习序列中不同部分之间的重要性。它通过三个向量来工作:查询(Query, Q)、键(Key, K)和值(Value, V)。首先,通过计算查询向量与所有键向量的相似度(评分函数,如点积)来获得权重,然后将这些权重应用于对应的值向量上进行加权求和,得到最终的输出。 Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V
    • 自注意力机制 (Self-Attention): 这是Transformer的关键,它允许输入序列中的每个元素关注序列内的所有其他元素,从而学习句子内部的语法和语义结构。Q、K、V均来自同一个输入序列。
    • 多头自注意力 (Multi-Head Self-Attention): 为了让模型能够从不同角度关注信息,Transformer并行地运行多个自注意力“头”,每个头学习不同的注意力模式,最后将所有头的结果拼接并线性变换,从而获得更丰富的特征表示。
    • 整体架构:
      • 包含一个 编码器 (Encoder) 和一个 解码器 (Decoder)
      • 位置编码 (Positional Encoding): 由于模型没有循环结构,需要向输入中添加位置编码来提供序列中单词的位置信息。
      • 编码器和解码器都由多层堆叠而成,每一层都包含多头自注意力模块和前馈神经网络模块。
  • 变分自编码器 (Variational Autoencoder, VAE)

    • 核心思想: VAE是一种生成模型,它通过学习数据的 潜在空间 (latent space) 表示来生成新的数据。它假设数据是由某个不可见的潜在变量 zz 生成的。
    • 模型结构: 由两部分组成:
      1. 编码器 (Encoder): 也称为推断网络 qϕ(zx)q_\phi(z|x),负责将输入数据 xx 映射到一个潜在的概率分布(通常是高斯分布),而不是一个单一的点。它输出这个分布的参数,如均值 μ\mu 和方差 σ2\sigma^2
      2. 解码器 (Decoder): 也称为生成网络 pθ(xz)p_\theta(x|z),负责从潜在分布中采样一个点 zz,并将其重构回原始数据空间,生成新的数据 x^\hat{x}
    • 训练目标: VAE的优化目标是最大化 证据下界 (Evidence Lower Bound, ELBO),该目标函数包含两项: L(θ,ϕ,x)=Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)pθ(z))\mathcal{L}(\theta,\phi,x) = \mathbb{E}_{q_{\phi}(z|x)}[\log p_{\theta}(x|z)] - D_{KL}(q_{\phi}(z|x) || p_{\theta}(z))
      • 重构损失: 第一项 Eqϕ(zx)[logpθ(xz)]\mathbb{E}_{q_{\phi}(z|x)}[\log p_{\theta}(x|z)],鼓励解码器能够精确地从潜在编码中恢复原始输入。
      • 正则化项: 第二项是KL散度 DKL(qϕ(zx)pθ(z))D_{KL}(q_{\phi}(z|x) || p_{\theta}(z)),它约束编码器产生的潜在分布接近一个标准正态分布先验 p(z)p(z),使得潜在空间规整、连续,便于生成。
    • 重参数化技巧 (Reparameterization Trick): 为了在训练中能够使用反向传播,VAE采用此技巧。它不直接从分布 qϕ(zx)q_\phi(z|x) 中采样,而是先从一个标准正态分布中采样一个随机噪声 ϵN(0,I)\epsilon \sim \mathcal{N}(0, I),然后通过 z=μ+σϵz = \mu + \sigma \cdot \epsilon 计算出潜在变量 zz。这样,采样过程就与网络参数解耦,梯度可以顺利地传播回编码器。
  • 生成对抗网络 (Generative Adversarial Network, GAN)

    • 核心思想: GAN通过一种 对抗性训练 的方式来学习数据分布。它包含两个相互博弈的神经网络:一个生成器和一个判别器。
    • 模型结构:
      1. 生成器 (Generator, G): 接受一个随机噪声向量 zz 作为输入,目标是生成与真实数据尽可能相似的“假”数据 G(z)G(z)
      2. 判别器 (Discriminator, D): 是一个二元分类器,目标是准确地判断输入的数据是来自真实数据集还是由生成器生成的“假”数据。
    • 训练过程: 这是一个 零和游戏 (minimax game)
      • 训练判别器(D)时,固定生成器(G),让D学习最大化地区分真实样本和生成样本。
      • 训练生成器(G)时,固定判别器(D),让G学习生成能最大程度“欺骗”D的样本,即使D将其误判为真实样本。
    • 目标函数: minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{data}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_z(z)}[\log(1 - D(G(z)))]
    • CycleGAN: 是GAN的一个重要变体,用于 非成对的图像到图像翻译。它通过引入 循环一致性损失 (Cycle Consistency Loss),确保图像在经过两次相反方向的翻译后(例如,从A风格->B风格->A风格),能够恢复到原始状态,从而在改变风格的同时保持内容的一致性。
  • 扩散模型 (Diffusion Model)

    • 核心思想: 扩散模型的灵感源于非平衡热力学,它通过学习一个“去噪”过程来生成数据。
    • 模型过程:
      1. 前向过程 (扩散过程): 在这个过程中,通过一个马尔科夫链,逐步、多次地向原始的干净图像 x0x_0 中添加少量高斯噪声,直到经过 TT 步后,图像完全变成纯粹的随机噪声 xTx_T。这个过程的每一步都是已知的,并且在任意时刻 tt 的加噪图像 xtx_t 都可以由 x0x_0 直接算出。 xt=αˉtx0+1αˉtϵx_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon
      2. 反向过程 (去噪过程): 生成数据的过程就是学习这个扩散过程的逆过程。模型从一个纯高斯噪声 xTx_T 出发,逐步地、迭代地去除噪声,最终恢复出一张清晰的图像 x0x_0
    • 训练: 模型的训练目标是预测在每一步扩散中被添加的噪声。通常使用一个 U-Net 结构的神经网络来作为噪声预测器 ϵθ(xt,t)\epsilon_\theta(x_t, t)。其损失函数通常是预测噪声与真实添加噪声之间的均方误差。
    • Stable Diffusion (潜在扩散模型, LDM): 为了解决扩散模型在原始像素空间计算成本高昂的问题,LDM被提出。它首先使用一个变分自编码器(VAE)将高分辨率图像压缩到一个维度小得多的 潜在空间。然后,整个扩散和去噪过程都在这个计算效率更高的潜在空间中进行。最后,再通过VAE的解码器将去噪后的潜在向量还原为高分辨率图像。这种方法不仅大幅降低了计算需求,还通过在去噪过程中引入文本等条件,轻松实现了高质量的文生图功能。

第三章 可信机器学习之隐私保护#

本章聚焦于数据隐私保护技术,重点介绍了联邦学习和针对模型逆向攻击的防御策略。

  • 3.1-3.3 联邦学习

    • 概念:一种加密的、分布式的机器学习范式。多个参与方(如机构或设备)在 不共享本地原始数据 的前提下,协同训练一个机器学习模型。
    • 动机:在现实世界中,数据常常以“数据孤岛”的形式存在于不同机构或设备中。由于数据隐私法规(如欧盟的GDPR)和商业竞争等原因,这些数据不能被直接汇集起来进行模型训练。联邦学习旨在解决这一问题,它是一种加密的、分布式的机器学习框架,允许多个参与方在 不共享原始数据 的前提下,协同训练一个共享的机器学习模型。
    • 核心思想:将模型训练任务下放到各个数据持有方(客户端),客户端在本地数据上进行计算(如计算梯度或更新模型参数),然后将这些计算的 中间结果(而非原始数据)通过加密机制进行安全传递和聚合,以更新全局模型。
    • 分类
      • 横向联邦学习:参与方的数据 特征重叠多,用户重叠少(如不同地区银行的相似业务)。
        • 例子:不同地区的两家银行,其业务相似(特征相似),但服务的客户群体不同(用户不同)。谷歌的安卓手机输入法更新就是典型的跨设备横向联邦学习。
        • 方法:各客户端拥有完整的特征和标签,可以在本地独立训练模型。
      • 纵向联邦学习:参与方的数据 用户重叠多,特征重叠少(如同一地区的银行和电商)。
        • 例子:同一地区的银行和电商平台,它们拥有大量重合的用户,但银行拥有用户的金融行为特征,而电商拥有用户的购物特征。
        • 方法:由于每个客户端只拥有部分特征,它们需要协同计算才能完成模型训练,通常依赖加密技术保护中间结果。
      • 联邦迁移学习 (Federated Transfer Learning)
        • 场景:不同客户端的 用户和特征重叠都很少
        • 方法:利用迁移学习的思想,将在一个数据源上学到的知识应用于另一个数据源,同时保护数据隐私。
    • 核心算法
      • 横向联邦学习算法 - FedAverage:各客户端在本地数据上训练模型,然后将 梯度或模型参数 上传至中心服务器进行聚合更新,服务器再将聚合后的模型下发给各客户端。
        • 目标:在大量客户端(如手机)上训练一个中心化的全局模型。
        • 流程
          1. 分发:服务器将当前的全局模型分发给一部分被随机选中的客户端。
          2. 本地更新:每个被选中的客户端利用其本地数据对模型进行多轮(Epochs)的梯度下降更新。这相比于每一步都上传梯度,大大降低了通信开销。
          3. 聚合:客户端将本地更新后的模型参数上传到服务器。
          4. 更新全局模型:服务器对收集到的来自不同客户端的模型参数进行 加权平均,得到新的全局模型。这个过程会重复进行多轮,直到模型收敛。
        • 关键参数CC (每轮选择的客户端比例),EE (本地更新的轮数),BB (本地训练的批大小)。
      • 纵向联邦学习的加密技术:纵向联邦学习需要各方交换中间计算结果,因此必须使用加密技术来保护隐私。通常依赖 同态加密 等密码学技术。各方加密并交换中间计算结果(而非原始数据),在一个可信的第三方协作下计算加密的梯度和损失,最终更新各自的模型部分。
        • 公钥-私钥加密机制 (非对称加密):
          • 性质:加密和解密使用的密钥是不同的,一个公钥对应一个私钥。
          • 工作方式:通常,公钥 会被分发给他人用于加密信息,而 私钥 由自己秘密保存,用于解密由对应公钥加密的信息。
        • 同态加密 (Homomorphic Encryption):
          • 性质:允许直接对 密文 进行计算,其计算结果在解密后与对明文进行相同计算的结果一致。
          • 加法同态:满足 f(x+y)=f(x)+f(y)f(x+y) = f(x)+f(y),其中 ff 是加密函数。这意味着两个密文的和解密后等于两个明文的和。这在纵向联邦学习的安全聚合中至关重要。
  • 3.4-3.6 模型逆向攻击与防御

    • 概念:一种隐私攻击,攻击者在仅能访问模型API(黑盒攻击)或已知模型参数(白盒攻击)的情况下,通过模型的输出(特别是 类别置信度分数)来逆向重构出训练该模型所使用的敏感数据。

    • 攻击流程(以人脸重构为例)

      1. 目标:攻击者已知某个受害者的名字(例如 “Alice”),该名字是模型的一个输出类别。
      2. 优化:攻击者从一个随机的噪声图像开始,将其输入模型,获得 “Alice” 类别的置信度。
      3. 迭代:攻击者以最大化 “Alice” 的置信度为目标,通过梯度上升等方法,反复迭代地修改输入图像。
      4. 重构:最终,优化得到的图像会高度接近训练集中 “Alice” 的真实人脸图像,从而窃取了其生物特征隐私。
    • 防御一:差分隐私 (Differential Privacy)

      • 核心思想:通过向算法中注入可控的随机噪声,使得 单个样本的加入或移除不会显著影响算法的输出结果。这从根本上切断了从模型输出反推单个输入数据的可能性。

      • 形式化定义:一个算法 A\mathcal{A} 满足 ϵ\epsilon-差分隐私,如果对于任意两个仅相差一条记录的相邻数据集 DDDD',以及任意可能的输出 tt,都满足:

        Pr[A(D)=t]Pr[A(D)=t]eϵ\frac{Pr[\mathcal{A}(D)=t]}{Pr[\mathcal{A}(D')=t]} \le e^{\epsilon}

        其中 ϵ\epsilon 是隐私预算,ϵ\epsilon 越小,隐私保护程度越高。

      • 差分隐私随机梯度下降 (DP-SGD):是一种将差分隐私应用于深度学习训练的实用方法。其核心步骤是在梯度更新时:1)对每个样本的梯度进行 范数裁剪 (Clipping),限制单个样本的影响力;2)在聚合的梯度中加入 高斯噪声,以满足差分隐私的定义。

    • 防御二:PATE (Private Aggregation of Teacher Ensembles)

      • 核心思想:这是一个基于“教师-学生”框架的隐私保护方案,通过集成学习和知识迁移来保护隐私。
      • 流程
        1. 训练教师模型 (Teachers):将私有的敏感数据集分割成多个互不相交的子集,并在每个子集上独立训练一个“教师”模型。
        2. 隐私聚合 (Noisy Aggregation):当需要对一个新样本进行预测时,所有教师模型进行投票。最终的标签由一个 带噪声的投票机制 决定(例如,在各类别的票数上加入拉普拉斯噪声)。只有当教师们的投票结果达成高度共识时,噪声才不会轻易改变结果,从而在保护隐私的同时保证准确性。
        3. 训练学生模型 (Student):利用这个隐私聚合机制去标注一个公开的、无标签的数据集。然后,在这个新标注的数据集上训练一个“学生”模型。
        4. 发布:最终发布的只有这个学生模型。因为它没有直接接触过任何私有数据,其参数是安全的,从而保护了原始数据的隐私。
  • 核心考点要点

    • 学习方法区分

      • 横向联邦学习:客户端数据特征相同,用户不同,需要隐私保护。
      • 纵向联邦学习:客户端数据用户相同,特征不同,需要隐私保护。
      • 联邦迁移学习:客户端数据用户和特征重叠都很少,需要隐私保护。
      • 多任务学习:多个学习目标,可能共用数据,但没有隐私保护要求
    • 加密技术

      • 加法同态加密 的核心性质是 f(x+y)=f(x)+f(y)f(x+y) = f(x)+f(y),允许对密文进行加法运算。
      • 公钥-私钥机制 是一种 非对称加密,公钥用于加密,私钥用于解密。通常公钥是公开的,私钥是私有的。
    • FedAverage算法

      • 服务器端负责 聚合 各客户端上传的 模型参数(或梯度)。
      • 为了减少通信成本,客户端可以执行 多步 本地梯度下降更新,而不仅是单步。
    • 模型逆向攻击

      • 攻击的关键是利用模型返回的 类别置信度分数
      • 一种简单的防御方法是 模糊化置信度,例如对输出的置信度进行数值修约,降低其精度,从而使攻击者难以获得有效的梯度信息。
    • 差分隐私

      • 其核心目标是确保 单个数据点的存在与否对算法输出结果的影响极小,从而保护个体隐私。
    • PATE框架

      • 这是一个“教师-学生”模型,通过 多个教师模型在私有数据子集上训练,然后通过 带噪声的投票 聚合机制来“教”一个在公开数据上训练的学生模型,从而实现隐私保护。

第四章 可信机器学习之公平#

本章探讨了机器学习中的公平性问题,包括其产生原因和多种形式化的数学定义。

  • 4.1 公平的概念

    • 动机:机器学习系统被广泛应用于金融、招聘、司法等高风险领域。如果模型基于训练数据学习并放大了人类社会中已有的偏见,就可能对特定群体(如按种族、性别划分)做出歧视性决策,从而引发严重的社会和伦理问题。例如,COMPAS犯罪风险评估算法被指控对黑人存在偏见,而一些招聘系统则被发现存在性别歧视。
    • 偏见的来源
      • 偏斜的样本 (Skewed Sample):数据收集过程本身存在偏见。例如,警察更关注高犯罪率地区,导致在这些地区记录的犯罪案件更多,从而训练出的模型会加剧这种偏见。
      • 有偏见的标签 (Biased Labels):训练数据的标签本身就反映了人类的偏见。例如,使用过去带有偏见的招聘决策作为标签来训练一个新的招聘筛选模型,新模型只会复制并固化这些偏见。
      • 敏感属性的代理 (Sensitive Proxies):即使在训练中移除了敏感属性(如种族),其他看似无害的特征(如邮政编码、地域)也可能与敏感属性高度相关,成为其“代理”,导致间接歧视。
      • 样本量差异与特征有限:少数群体在训练数据中的样本量可能过少,或者其特征信息量不足,导致模型对这些群体的预测准确性较低。
    • 法律概念
      • 差别对待 (Disparate Treatment):决策过程直接使用了敏感属性,是故意的歧视。
      • 差别影响 (Disparate Impact):决策结果对某个群体产生了不成比例的负面影响,可能是无意的。
  • 4.2 多种公平的形式化定义

    • 符号约定:AA为敏感属性(如性别),YY为真实标签(如是否合格),CC为模型预测结果(如是否录用)。
    • 群体公平 (Group Fairness)
      • 无意识公平 (Unawareness)

        • 定义C=c(X)C=c(X),即在模型训练和决策中不使用敏感属性 AA
        • 缺点:最简单但最不可靠,因为它无法处理代理变量的问题。
      • 统计平等 (Demographic Parity)

        • 定义P(C=1A=0)=P(C=1A=1)P(C=1|A=0) = P(C=1|A=1)
        • 解释:要求不同受保护群体的 录取率(获得有利结果的比例) 必须相等。它不考虑群体间真实能力的差异(基础率不同)。
      • 几率平等 (Equalized Odds)

        • 定义P(C=cY=y,A=0)=P(C=cY=y,A=1)P(C=c|Y=y, A=0) = P(C=c|Y=y, A=1) 对所有 c,yc, y 成立。
        • 解释:要求在 所有真实标签相同的个体 中,不同群体获得特定预测结果的概率必须相等。这意味着 真正率(TPR)假正率(FPR) 在各个群体间都必须相等。
      • 机会平等 (Equality of Opportunity)

        • 定义P(C=1Y=1,A=0)=P(C=1Y=1,A=1)P(C=1|Y=1, A=0) = P(C=1|Y=1, A=1)
        • 解释:这是几率平等的一个放宽版本,只要求在 真正合格的个体 (Y=1Y=1) 中,不同群体的 录取率(即真正率) 必须相等。
      • 预测率平等 (Predictive Rate Parity)

        • 定义P(Y=1C=1,A=0)=P(Y=1C=1,A=1)P(Y=1|C=1, A=0) = P(Y=1|C=1, A=1)
        • 解释:要求在 所有被模型预测为合格的个体 (C=1C=1) 中,不同群体 真正合格的比例(即精确率/PPV) 必须相等。COMPAS算法公司声称其模型满足此定义。
      • 个体公平 (Individual Fairness)

        • 定义:“相似的个体应该得到相似的对待”,即 D(C(X),C(X))d(X,X)D(C(X), C(X')) \le d(X, X')
        • 挑战:核心难点在于如何定义一个既合理又可计算的“个体相似性”度量函数 d(X,X)d(X, X')
      • 反事实公平 (Counterfactual Fairness)

        • 定义P(CA0=cX,A=a)=P(CA1=cX,A=a)P(C_{A \leftarrow 0}=c|X, A=a) = P(C_{A \leftarrow 1}=c|X, A=a)
        • 解释:基于因果模型,一个决策是公平的,当且仅当“如果我们改变一个个体的敏感属性(例如,将性别从男改为女),而保持其所有非因果依赖的属性不变时,模型的决策结果不会改变”。
    • 公平定义的不可能性与权衡
      • 不可能性定理:在现实世界中,当不同群体的基础比率不同时(即 P(Y=1A=0)P(Y=1A=1)P(Y=1|A=0) \neq P(Y=1|A=1)),上述主要的群体公平定义(如统计平等、几率平等、预测率平等)在数学上是 相互冲突、不可兼得 的。COMPAS算法的争议正是这一矛盾的体现:它满足了预测率平等,却违反了机会平等。
      • 公平与准确性的权衡:在模型中强加公平性约束,通常会以牺牲一部分 模型准确率 为代价。因为公平性约束限制了模型的优化空间,使其无法完全以准确率为唯一目标。因此,在实践中,必须在二者之间做出权衡。
  • 核心考点要点

    • 混淆矩阵与核心指标计算 给定一个混淆矩阵(以习题为例):

      预测为正预测为负
      真实为正8 (TP)2 (FN)
      真实为负3 (FP)7 (TN)
      • 准确率 (Accuracy):所有预测正确的样本占总样本的比例。 Accuracy=TP+TNTP+TN+FP+FN=8+78+2+3+7=1520\text{Accuracy} = \frac{TP+TN}{TP+TN+FP+FN} = \frac{8+7}{8+2+3+7} = \frac{15}{20}
      • 真正率 (True Positive Rate, TPR):也称为 召回率 (Recall)敏感性 (Sensitivity)。真实为正的样本中,被正确预测为正的比例。 TPR=TPTP+FN=88+2=810\text{TPR} = \frac{TP}{TP+FN} = \frac{8}{8+2} = \frac{8}{10}
      • 真负率 (True Negative Rate, TNR):也称为 特异性 (Specificity)。真实为负的样本中,被正确预测为负的比例。 TNR=TNTN+FP=77+3=710\text{TNR} = \frac{TN}{TN+FP} = \frac{7}{7+3} = \frac{7}{10}
    • 公平性定义的形式化匹配

      • 无意识公平 (Unawareness): c(x,A)=c(X)c(x, A) = c(X)
      • 统计平等 (Demographic Parity): P(C=cA=0)=P(C=cA=1)P(C=c|A=0) = P(C=c|A=1)
      • 机会平等 (Equality of Opportunity): P(C=1Y=1,A=0)=P(C=1Y=1,A=1)P(C=1|Y=1, A=0) = P(C=1|Y=1, A=1)
      • 预测率平等 (Predictive Rate Parity): P(Y=1C=1,A=0)=P(Y=1C=1,A=1)P(Y=1|C=1, A=0) = P(Y=1|C=1, A=1)
      • 个体公平 (Individual Fairness): D(C(X),C(X))d(X,X)D(C(X), C(X')) \le d(X, X')
      • 反事实公平 (Counterfactual Fairness): P(CA0=cX,A=a)=P(CA1=cX,A=a)P(C_{A \leftarrow 0}=c|X, A=a) = P(C_{A \leftarrow 1}=c|X, A=a)
    • 关于公平的关键认知

      • 公平性定义的冲突:预测率平等(要求精确率相同)和机会平等(要求真正率相同)等主流公平定义通常 无法同时满足
      • 公平与准确性的权衡:实现公平通常需要以牺牲一定的模型准确率为代价,这是一个必须面对的权衡。
      • 偏见的根源:机器学习系统产生偏见,其根本原因往往不是模型错了,而是模型 忠实地学习了数据中已存在的偏见
      • 公平问题的广泛性:公平性不仅是分类任务中需要考虑的问题,在 回归、排序 等其他机器学习任务中同样非常重要。

第五章 可信机器学习之数据投毒与防御#

本章探讨了数据投毒攻击,即攻击者通过向训练集中注入恶意样本来破坏模型完整性的行为,并介绍了针对性的攻防方法。

  • 5.1 数据投毒攻击的概念

    • 定义: 数据投毒是一种在模型训练阶段发起的“诱发攻击”。攻击者通过向训练数据中注入少量精心构造的恶意样本,来操纵模型的训练过程,最终目标是降低模型在测试阶段的准确率或使其对特定输入做出错误预测。
    • 攻击时机: 此类攻击常见于需要持续学习的系统,主要有两种模式:
      1. 增量更新 (Incremental Update): 系统每接收一个新数据点,就立即用它来微调模型。攻击者可以利用这个机会注入恶意样本。
      2. 周期性重训练 (Periodic Retraining): 系统将新数据收集到缓冲区,在性能下降或固定时间后,用缓冲区内的数据对模型进行完全重训练。
  • 5.2 面向SVM的数据投毒攻击

    • 目标: 攻击者的目标是构造一个投毒点 (xc,yc)(x_c, y_c),将其加入训练集后,能最大化SVM在干净验证集上的分类错误。这通常通过最大化验证集上的 铰链损失 (hinge loss) 来实现。 maxxcL(xc)=k=1m(1ykfxc(xk))+\max_{x_{c}} L(x_c) = \sum_{k=1}^{m}(1 - y_k f_{x_c}(x_k))_+
    • 攻击方法: 由于损失函数 L(xc)L(x_c) 是非凸的,攻击采用 梯度上升 的方法进行迭代优化。从一个初始攻击点 xc(0)x_c^{(0)} 开始,在每一步中,计算损失函数 LL 对攻击点 xcx_c 的梯度 xcL(xc)\nabla_{x_c} L(x_c),并沿着梯度方向更新攻击点 xc(p)=xc(p1)+txcL(xc)x_c^{(p)} = x_c^{(p-1)} + t \cdot \nabla_{x_c} L(x_c)
    • 梯度计算: 核心挑战在于计算梯度。因为SVM的决策函数 fxc(xk)f_{x_c}(x_k) 依赖于模型参数(对偶变量 α\alpha 和偏置 bb),而这些参数又随着攻击点 xcx_c 的变化而变化。因此,需要通过复杂的链式法则,最终将损失函数的梯度表示为对核函数 K(xi,xc)K(x_i, x_c) 的梯度,从而进行优化。
  • 5.3 面向SVM的数据投毒防御方法

    • 防御方法:Curie: 这是一种在模型训练前对数据进行预处理,旨在筛除投毒样本的防御方法。
    • 核心思想: 投毒样本为了隐藏自己,其特征向量(xcx_c)通常会与某一类的干净样本非常相似,但其标签(ycy_c)却是相反的。因此,在“特征+标签”的联合空间中,投毒样本会成为其所在簇内的“异常点”。
    • 算法流程:
      1. 降维与聚类: 首先使用 PCA 对数据的特征进行降维,然后使用密度聚类算法 DBSCAN 在无标签的特征空间中对样本进行聚类。DBSCAN的优势在于无需预设簇的数量,且能识别任意形状的簇和噪声点。
      2. 计算距离分数: 对于每个样本点,计算它与其同簇内其他样本点的平均距离。这个距离是在一个特殊空间中计算的,该空间将样本的类别标签作为一个加权的额外维度。
      3. 识别异常点: 对所有样本的距离分数进行 Z-score标准化。由于投毒样本在“特征+标签”空间中会偏离其簇中心,它们的Z-score会显著高于正常样本。
      4. 过滤: 设定一个阈值 θ\theta,将Z-score高于该阈值的样本点识别为投毒样本并从训练集中移除。
    • 优缺点:
      • 优点: 思想简单,无需了解分类器内部信息(模型无关),可作为通用的数据预处理步骤。
      • 缺点: 效果依赖于聚类算法的选择和超参数(如DBSCAN的邻域半径和最小点数,Curie的标签权重 ww)的设定,可能不稳定。
  • 关键技术回顾 (PCA & DBSCAN)

    • PCA (主成分分析): 一种降维技术,其原理是找到数据方差最大的方向。它通过计算数据协方差矩阵的特征向量和特征值,选取最大的K个特征值对应的特征向量构成投影矩阵,将数据投影到这K个方向上,从而在保留最多信息的同时降低维度。

    • DBSCAN (基于密度的噪声应用空间聚类):

      • 特点: 基于密度,能发现任意形状的簇,对噪声鲁棒,且无需预先指定聚类个数
        • 核心概念:
          • 核心点: 在其邻域半径 RR 内,包含的样本点数量不少于 min_points 的点。
          • 边界点: 非核心点,但落在某个核心点的邻域内。
          • 噪声点: 既非核心点也非边界点。
        • 关系定义:
          • 密度直达: 如果点 pp 是一个核心点,且点 qqpp 的邻域内,则称 qqpp 密度直达。此关系不对称
          • 密度可达: 如果存在一个点的序列 p1,p2,...,pnp_1, p_2, ..., p_n,其中 p1=pp_1=p, pn=qp_n=q,且每个 pi+1p_{i+1} 都从 pip_i 密度直达,则称 qqpp 密度可达。此关系不对称
          • 密度相连: 如果存在一个核心点 oo,使得点 ppqq 都从 oo 密度可达,则称 ppqq 密度相连。此关系对称,是构成一个簇的基础。
  • 核心考点要点

    • 关于投毒攻击 (General & SVM)

      • 攻击定义与影响: 投毒攻击通过向训练集中注入恶意构造的样本,来污染数据,其最终目的是改变模型训练后的内部参数(如SVM的权重ww和偏置bb),从而降低模型在干净测试集上的性能。
      • 攻击模式: 课程中介绍的是白盒攻击,即攻击者了解模型的类型(SVM)、训练算法、甚至训练数据的分布。
      • SVM攻击优化目标: 攻击的核心是优化一个投毒点 (xc,yc)(x_c, y_c),使其注入训练集后,能最大化模型在独立验证集 Dval\mathcal{D}_{val} 上的损失函数值。这个验证集是攻击者用来“指导”投毒点优化的“靶子”。
      • 梯度计算的依赖: 在对SVM的攻击中,计算损失函数关于投毒点特征的梯度,其推导过程利用了SVM的KKT条件,并且最终的计算依赖于间隔支持向量集(即满足 0<αi<C0 < \alpha_i < C 的那些样本),而不是所有样本。
      • 参数的全局变化: 向训练集加入一个投毒点,相当于改变了SVM的优化问题。因此,在重新训练后,所有样本的拉格朗日乘子 αi\alpha_i 和偏置 bb 都可能发生变化,而不仅仅是与投毒点相关的参数。
      • 标签的选择: 为了达到最大的破坏效果,投毒点的标签 ycy_c 通常被设定为与它想要模仿的正常样本相反的类别
    • 关于数据投毒防御 (Curie)

      • 核心假设: Curie算法能够生效的前提是,投毒样本在数据集中是少数派。如果投毒样本数量过多,它们自己就会形成一个密集的簇,从而无法被当作“异常点”检测出来。

        • 算法步骤的关键点:
          1. 聚类阶段: 聚类时只使用数据的输入特征,不使用标签。
          2. 距离计算阶段: 计算距离分数时,是在一个组合空间(特征 + 加权标签)中进行的。因此,必须对标签这个维度进行加权或缩放(通过权重 ww),以平衡特征和标签在距离计算中的影响。
      • 适用范围: 实验结果表明,Curie算法不仅适用于二分类问题,也适用于多分类问题。

      • 性能影响因素: Curie是一个多阶段的启发式方法,其最终防御效果受到其构成模块性能的直接影响,例如PCA降维的效果和DBSCAN聚类的准确性。

    • 关于DBSCAN算法细节

      • 核心参数: DBSCAN的行为由两个核心超参数决定:邻域半径 R (Eps) 和邻域最小点数 min_points核心点、边界点、噪声点的划分完全依赖于这两个值的设定。

      • 主要优点: DBSCAN最显著的优点是不需要预先设定聚类的数量

        • 重要关系辨析:
          • 密度直达: PQP \to Q,要求 PP 必须是核心点。此关系不对称
          • 密度可达: 是“密度直达”关系的传递闭包。此关系不对称
          • 密度相连: 两个点 P,QP, Q 若密度相连,它们自身不一定是核心点(例如,它们都可以是同一个核心点的边界点)。此关系对称,是最终形成一个聚类的条件。
      • 聚类形成规则: 所有相互密度相连的点组成一个聚类簇。非密度相连的点则属于不同的簇,或者被划为噪声。

    • 关于PCA算法细节

      • 核心原理: PCA通过寻找数据中方差最大的方向(主成分)来进行降维。它使用的投影矩阵是由原始数据协方差矩阵的 K个最大特征值 所对应的特征向量构成的,而不是最小特征值。

第六章 可信学习之对抗攻击与防御#

本章介绍了对抗攻击,一种在模型测试阶段通过微小扰动误导模型的技术,并讨论了相关的攻防策略。

  • 6.1 对抗攻击的基本概念

    • 定义: 对抗样本是通过向原始干净输入样本中添加人眼难以察觉的、精心设计的微小扰动而形成的。这些扰动足以让一个训练好的模型以高置信度给出错误的预测结果。
    • 原因(线性假设): 对抗攻击的成功很大程度上源于模型在高维空间中的 线性行为。即使模型是高度非线性的,其在局部也近似线性。单个像素的微小改动影响甚微,但当成千上万个像素同时朝特定方向(梯度方向)进行微小扰动时,这些影响会累积起来,最终导致模型输出发生巨大变化。
    • 攻击目标: 在一个范数约束(如 LL_\infty 范数,η<ϵ\|\eta\|_\infty < \epsilon)下,寻找一个扰动 η\eta,使得模型在 x+ηx+\eta 上的损失函数 J(θ,x+η,y)J(\theta, x+\eta, y) 最大化。
  • 6.2 典型对抗攻击算法——FGSM

    • FGSM (Fast Gradient Sign Method) 快速梯度符号法是一种经典、高效的单步对抗样本生成算法。其核心思想是,为了最大化模型的损失函数 J(θ,x,y)J(\theta, x, y),应该在损失函数关于输入样本 xx 的梯度方向上添加扰动。
    • 无目标攻击 (Untargeted Attack): 目标是让模型随便输出一个错误类别即可。扰动 η\eta 的计算方式是沿着梯度上升的方向,使得损失最大化。公式如下: η=ϵsign(xJ(θ,x,ytrue))\eta = \epsilon \cdot \text{sign}(\nabla_x J(\theta, x, y_{true})) 对抗样本则为: Xadv=X+ϵsign(XJ(X,ytrue))X^{adv} = X + \epsilon \cdot \text{sign}(\nabla_X J(X, y_{true})) 其中,ϵ\epsilon 是控制扰动大小的超参数,sign()\text{sign}(\cdot) 是符号函数。
    • 有目标攻击 (Targeted Attack): 目标是让模型将输入样本误分类为某个特定的目标类别 ytargety_{target}。为实现此目的,需要最小化模型对于目标类别的损失函数,即沿着梯度下降的方向修改输入。公式如下: Xadv=Xϵsign(XJ(X,ytarget))X^{adv} = X - \epsilon \cdot \text{sign}(\nabla_X J(X, y_{target})) 一个常见的策略是选择模型认为最不可能的类别 (Least Likely Class) 作为攻击目标,这样产生的错误分类往往更加离奇。
  • 6.3 典型对抗攻击算法——BIM/PGD

    • BIM (Basic Iterative Method) / PGD (Projected Gradient Descent): 这是FGSM的 多步迭代 版本,攻击效果更强。
    • 算法流程: 它将FGSM的攻击过程分解为多个小步骤,在每次迭代中,沿着梯度符号方向迈出一小步(步长为 α\alpha),然后通过 投影(Clipping) 操作,确保新的对抗样本仍在原始样本 xxϵ\epsilon-邻域内。 XN+1adv=ClipX,ϵ{XNadv+αsign(XJ(XNadv,ytrue))}X_{N+1}^{adv} = \text{Clip}_{X, \epsilon}\{X_N^{adv} + \alpha \cdot \text{sign}(\nabla_X J(X_N^{adv}, y_{true}))\}
    • 优势: 多步迭代比单步攻击更容易找到损失函数的局部最大值,因此生成的对抗样本成功率更高。
  • 6.4 防御方法:对抗训练

    • 对抗训练 (Adversarial Training) 是目前最有效、最主流的对抗防御方法之一。其核心思想是**“以子之矛,攻子之盾”**,即在模型的训练过程中,主动引入对抗样本,让模型在训练时就“见识”并“学习”如何抵抗这些攻击。

    • 核心机制:对抗训练将模型的训练过程看作一个minimax(最小-最大)优化问题minθE(x,y)D[maxδSL(θ,x+δ,y)]\min_{\theta} \mathbb{E}_{(x,y) \sim \mathcal{D}} \left[ \max_{\delta \in \mathcal{S}} L(\theta, x+\delta, y) \right]

      • 内部最大化 (Inner Maximization): 对于一个给定的模型参数 θ\theta,找到一个最强的扰动 δ\delta(在允许的范围内),使得模型的损失 LL 最大化。这步其实就是生成对抗样本的过程。
      • 外部最小化 (Outer Minimization): 调整模型参数 θ\theta,以最小化在上述最坏情况扰动下的损失。
    • 算法流程: 在实际训练中,每个mini-batch都会包含一部分正常样本和一部分动态生成的对抗样本。具体步骤如下:

      1. 从训练集中取一个批次的数据 BB
      2. 利用当前的网络状态,对该批次中的部分(或全部)样本使用某种攻击算法(如FGSM)生成对应的对抗样本。
      3. 将生成的对抗样本与(可能存在的)其余正常样本混合,形成一个新的训练批次 BB'
      4. 在新的批次 BB' 上执行一次常规的训练步骤(如梯度下降),更新网络参数。
      5. 重复以上过程,直到模型收敛。
    • 效果与权衡:

      • 对抗训练能有效提升模型对训练时所用攻击类型的鲁棒性。
      • 这种鲁棒性的提升通常会带来一个副作用:模型在干净、无扰动的正常样本上的分类准确率可能会有轻微下降
      • 用较弱的单步攻击(如FGSM)进行对抗训练,并不能有效防御更强的多步迭代攻击(如BIM)。
  • 核心考点要点

    向量范数 (Vector Norms):范数用于衡量向量的大小。对于向量 v=[1,0,2,2]v = [-1, 0, 2, -2]

    • 零范数 (L0L_0): 向量中非零元素的个数。L0(v)=3L_0(v) = 3

    • 1-范数 (L1L_1): 向量中所有元素绝对值之和。L1(v)=1+0+2+2=5L_1(v) = |-1| + |0| + |2| + |-2| = 5

    • 2-范数 (L2L_2): 向量的欧几里得长度。L2(v)=(1)2+02+22+(2)2=1+0+4+4=9=3L_2(v) = \sqrt{(-1)^2 + 0^2 + 2^2 + (-2)^2} = \sqrt{1+0+4+4} = \sqrt{9} = 3

    • 无穷范数 (LL_\infty): 向量中所有元素绝对值的最大值。L(v)=max(1,0,2,2)=2L_\infty(v) = \max(|-1|, |0|, |2|, |-2|) = 2

    关于FGSM算法

    • 核心公式: Xadv=X+ϵsign(XJ(X,ytrue))X^{adv} = X + \epsilon \cdot \text{sign}(\nabla_X J(X, y_{true}))。这里的关键是梯度 XJ\nabla_X J 是损失函数对输入样本 XX 求导,而不是对模型权重。

    • 梯度计算示例: 假设损失函数为 J=(wxy)2J = (wx-y)^2,其中 w,yw, y 是标量。我们对输入 xx 求导:

      xJ=x(wxy)2=2(wxy)x(wxy)=2(wxy)w\nabla_x J = \frac{\partial}{\partial x}(wx-y)^2 = 2(wx-y) \cdot \frac{\partial}{\partial x}(wx-y) = 2(wx-y) \cdot w

      所以FGSM扰动为 η=ϵsign[2w(wxy)]\eta = \epsilon \cdot \text{sign}[2w(wx-y)]

    • 攻击成功率: 生成的对抗样本不一定能攻击成功。成功率依赖于扰动大小 ϵ\epsilon、模型结构和原始样本等多种因素。

    • 样本依赖性: 扰动是根据每个具体输入样本 xx 的梯度来计算的,因此,对于不同的输入图像,生成的扰动模式是不同的。

    • 攻击类型: FGSM 是一种单步 (one-step) 算法。它既可以用于无目标攻击,也可以用于有目标攻击(通过反转梯度符号并使用目标类的损失)。BIM/PGD 才是其迭代版本。

    关于对抗训练(防御)

    • 核心机制: 对抗训练是一种主动防御策略,它在训练过程中动态地、持续地生成新的对抗样本,并将其加入到训练数据中,从而让模型学会识别和抵抗这些扰动。

    • 前提条件: 对抗训练必须依赖并使用一种或多种对抗攻击算法(如FGSM)来实时生成用于训练的对抗样本。它并非“不需要知道”攻击。

    • 优化目标: 对抗训练的目标是解决一个minimax问题,即在最坏的攻击下,最小化模型的损失。它不是简单地将原损失函数反向优化。

    • 性能权衡: 对抗训练能够显著提高模型在对抗样本上的防御能力,但代价通常是模型在干净、正常样本上的性能会略有下降。这是一个鲁棒性与标准准确率之间的典型权衡。


第七章 可信机器学习之模型可视化#

本章旨在通过可视化技术揭示卷积神经网络(CNN)的内部工作机制,理解其“看到”了什么以及如何做出决策。

  • 卷积神经网络 (CNN) 核心原理:CNN之所以在图像处理任务上表现出色,源于其结构设计充分利用了图像的内在属性:

    • 局部相关性 (Local Patterns): 图像中的模式(如眼睛、鸟喙)通常只占一小部分区域。因此,神经元只需连接到输入的一个小局部(即感受野),而不是整个图像,这正是卷积层使用小尺寸卷积核(filter)的原因。
    • 平移不变性 (Translational Invariance): 同一个模式可以出现在图像的任何位置。因此,可以在整个图像上使用同一个模式检测器(即同一个卷积核),这便是参数共享(或权重共享)机制,极大地减少了模型参数。
    • 尺寸不变性 (Subsampling Invariance): 对图像进行下采样(subsampling)通常不会改变图像中的物体。这为池化层 (Pooling Layer) 提供了理论依据,它可以通过降低特征图的分辨率来进一步减少参数数量和计算量。
  • 基本组件

    • 卷积层 (Convolutional Layer): 使用一组可学习的卷积核(滤波器)在输入图像或特征图上滑动,进行卷积运算,以提取特定的局部特征(如边缘、角点、纹理等)。可以通过零填充 (Zero Padding) 来控制输出特征图的尺寸。
    • 池化层 (Pooling Layer): 通常接在卷积层之后,用于对特征图进行下采样。最大池化 (Max Pooling) 是最常用的一种,它选取区域内的最大值作为输出,保留最显著的特征,同时增强模型的平移不变性并减小计算量。
    • 全连接层 (Fully Connected Layer): 在经过一系列卷积和池化层之后,最终的特征图被展平 (Flatten) 成一个一维向量,并送入一个或多个全连接层,进行最终的分类或回归任务。
  • 7.1 卷积神经网络的可视化方法

    • 可视化特征图 (Feature Maps): 这是最直接的方法,即直接将CNN每一层卷积操作后的激活值(特征图)以图像形式展示出来。这种方法对于 浅层网络(如第一层)最有效,可以直观地看到网络学习到的基础模式,如边缘、颜色和纹理。对于深层网络,特征图变得更加抽象,难以直接理解。
    • 基于梯度的方法 (Gradient-based)
      • DeepDream / 梯度上升: 这种方法旨在生成一张能最大限度激活某个特定神经元(或整个层)的图像。它从一张随机噪声图像开始,通过梯度上升法不断修改图像,使其目标神经元的激活值最大化。这里的梯度是激活值对输入图像像素的梯度,即 a(x)x\frac{\partial a(x)}{\partial x},其中 aa 是神经元激活值, xx 是输入图像。
    • 基于反向映射的方法 (Back-mapping):
      • 反卷积网络 (Deconvolutional Network, DeConvNet)。这种方法旨在将高层学到的抽象特征映射回原始的像素空间,从而可视化特定神经元“喜欢”的视觉模式。它通过一系列与CNN相反的操作来实现:
        • 反池化 (Unpooling): 池化操作的“逆操作”。对于最大反池化 (Max Unpooling),它需要利用在前向传播时由最大池化记录下的最大值位置信息(“switches”),将数值放回到原来的位置,其他位置补零。
        • 反激活 (ReLU): 同样使用ReLU函数。
        • 转置卷积 (Transposed Convolution): 这是卷积操作的“逆操作”,用于上采样。重要提示:它并不是简单地将卷积核矩阵转置,也不是严格的数学逆运算。其名称来源于其矩阵乘法表示形式,实际操作是对卷积核进行180度旋转后进行的一种上采样卷积。
        • DCN并不能完美地恢复出原始图像,但它可以有效地可视化特定神经元“关注”的视觉模式。
    • 基于激活的方法 (Activation-based)
      • 最大激活图像块 (MAP, Maximally Activating Patches): 这种方法不生成新图像,而是从一个大的数据集(如训练集或验证集)中,找到那些能够最强烈激活特定神经元的真实图像块。通过观察这些图像块,可以推断出该神经元的功能(例如,某个神经元可能对“狗的眼睛”反应最强烈)。同时,这个方法也揭示了感受野 (Receptive Field) 的概念:网络层数越深,单个神经元对应的感受野(即能影响它的原始图像区域)就越大。
      • 类激活图 (CAM & Grad-CAM): 这类方法旨在生成一张热力图 (heatmap),以高亮显示图像中对最终分类决策贡献最大的区域。
        • CAM: 需要特定的网络结构(使用全局平均池化层代替全连接层)并重新训练。
        • Grad-CAM: 一种更通用的方法,无需修改网络结构。它通过计算目标类别得分对最后一层卷积层特征图的梯度,来确定每个特征图的重要性权重,然后将这些特征图加权求和,生成最终的热力图。
  • 核心考点要点

    关于卷积神经网络 (CNN)

    • 卷积层与尺寸: 图像经过卷积层之后的大小不一定会变小。通过设置合适的零填充 (Zero Padding),可以使输出特征图的尺寸与输入保持一致。

    • 通道数: CNN在处理过程中,通道数(即特征图的数量)通常是变化的。它由每一层卷积核的数量决定,在经典网络结构(如VGG)中,通道数会随着网络深度的增加而增加。

    • 激活与池化: 先进行激活(如ReLU)再进行池化是标准的处理流程。由于激活函数是非线性的,改变这两者的顺序会得到不同的结果。

    • 感受野 (Receptive Field): 随着网络层数的加深,后续层中的一个神经元能够“看到”的原始图像区域会越来越大。因此,层数越高,感受野越大

    关于神经网络可视化

    • 可解释性: 直接画出深层的特征图(隐含节点的值)通常没有直观意义,因为它们编码的是高度抽象的信息。只有网络浅层(如第一层)的特征图可能对应着一些如边缘、颜色等可被理解的模式。

    • 可视化策略: 可视化技术主要分两大类:一类是从现有数据中寻找能最大化激活神经元的图像或图块(如MAP);另一类是从零开始生成一张全新的图像来最大化激活(如DeepDream)。

    • 特征空间: 网络的深层特征空间与原始像素空间在度量上完全不同。在像素空间中相邻(即像素值相似)的两个图像,在深层特征空间中可能相距很远,反之亦然。因此,原始空间的近邻与特征空间的近邻是不同的

    • 梯度上升法: 在使用梯度上升法(如DeepDream)可视化某个神经元激活值 aa 时,目的是找到能最大化 aa 的输入图像 xx。因此,需要计算的是激活值 aa 对输入 xx 的梯度,即 ax\frac{\partial a}{\partial x},而非对网络权重参数 ww 的梯度。

    关于反卷积网络 (DCN) 可视化

    • 最大反池化 (Max Unpooling): 这是一种上采样操作,但它不是一个可逆的数学运算。为了尽可能地还原结构,它必须依赖前向传播时最大池化层记录下的最大值所在的位置信息 (“switches”)

    • 转置卷积 (Transposed Convolution): 这是一个非常容易误解的概念。它不是将卷积核矩阵进行转置,也不是卷积的严格数学逆运算。该操作会执行上采样,并且其结构与CNN中的卷积层相对应,但它本身不能恢复出原始的数值。

    • 激活层: 一个完整的DCN结构是CNN的镜像,因此它同样需要使用激活函数(如ReLU),以匹配CNN中的非线性变换。

    • 可视化目的: DCN的目标是将高层、抽象的特征映射回像素空间,让我们能“看”到这个特征学到了什么样的视觉模式。它的目的在于理解与可视化,而不是为了完美地恢复出原始输入图像


第八章 可信机器学习之模型可解释#

本章探讨了模型可解释性的重要性,并介绍了主流的解释方法,特别是与模型无关的局部解释方法LIME。

  • 8.1 模型可解释的概念与常见分类
    • 动机: 理解模型做出特定预测的原因对于建立信任至关重要。一个好的解释可以:
      • 帮助人类专家(如医生)判断是否采纳模型的建议。
      • 为模型部署提供决策依据。
      • 揭示模型的缺陷(如偏见),为改进模型提供方向。
    • 信任的两个层面:
      1. 信任单个预测 (Local Explanations): 解释为什么模型对这一个特定实例做出如此预测。
      2. 信任整个模型 (Global Explanations): 解释模型整体的行为模式和决策逻辑。
    • 可解释的表示: 解释应该以人类易于理解的形式呈现,例如对于文本分类,解释可以是关键词列表;对于图像分类,可以是关键的图像区域(超像素)。
  • 8.2 典型模型解释方法——LIME
    • LIME (Local Interpretable Model-agnostic Explanations): 是一种与模型无关的(Model-agnostic)局部解释方法。旨在解决“信任单次预测”的问题。
    • 核心思想: 任何复杂的“黑盒”模型,其在某个特定实例周围的 局部区域 内的行为都可以用一个简单的、可解释的模型(如线性模型、决策树)来近似。这个简单模型的决策逻辑,就构成了对黑盒模型在该实例上预测的解释。
    • 算法流程:
      1. 生成邻域样本: 针对待解释的实例xx,在其周围生成一系列扰动样本。例如,对于图像,可以随机“遮挡”掉一些超像素;对于文本,可以随机移除一些单词。
      2. 获取黑盒预测: 将这些扰动样本输入原始的黑盒模型ff,得到它们的预测结果。
      3. 加权拟合简单模型: 用这些“扰动样本-预测结果”对来训练一个简单的、可解释的模型gg(如带Lasso正则的线性回归)。在拟合时,根据扰动样本与原始实例xx的相似度进行加权——越相似的样本权重越高。
      4. 输出解释: 最终,简单模型gg的参数(如线性模型的权重)就构成了对实例xx预测的解释。例如,权重最高的特征(图像超像素或文本关键词)就是对预测贡献最大的部分。
    • 优化目标: LIME的整个过程可以被形式化为一个优化问题。其目标是找到一个解释模型 gg,使得下面的表达式最小化: ξ(x)=argmingGL(f,g,πx)+Ω(g) \xi(x) = \text{argmin}_{g \in G} \mathcal{L}(f, g, \pi_x) + \Omega(g) 这个目标函数包含两个部分:
      • L(f,g,πx)\mathcal{L}(f, g, \pi_x): 损失项 (Loss)。它衡量了解释模型 gg 在局部区域内对原始黑箱模型 ff 的不忠实程度。最小化这个损失项等价于最大化局部保真度
      • Ω(g)\Omega(g): 复杂度惩罚项 (Complexity Penalty)。它衡量了解释模型 gg 的复杂度。LIME会惩罚复杂的 gg(例如,有很多非零权重的线性模型),从而确保最终的解释是稀疏的、易于人类理解的。这对应着最小化模型复杂度
  • 8.3 典型模型解释方法——SP-LIME
    • SP-LIME (Submodular Pick LIME): 这是LIME的扩展,旨在解决“信任整个模型”的问题,即提供一个全局视角。
    • 核心思想: 人类无法检查数据集中每一个实例的解释。SP-LIME的目标是,在有限的预算(例如,选择BB个实例)下,挑选出一组 最具代表性且不冗余 的实例及其LIME解释,让用户能快速地对模型的整体行为有一个大致的了解。
    • 算法流程: 它将挑选过程构建为一个 子模优化 (Submodular Optimization) 问题。首先为数据集中的每个实例生成LIME解释,然后贪心算法会迭代选择那些能够“覆盖”到最多新特征(即解释了模型新的行为方面)的实例,直到达到预算BB
  • 习题相关考点要点
    • LIME 全称: LIME 的全称是 Local Interpretable Model-agnostic Explanations,即“局部可解释模型无关的解释”。这个名字精确地概括了它的三个核心特性。

      • 局部性: LIME 的核心是局部近似。它生成的简单模型只在被解释样本的附近区域有效,而不能对原始黑箱模型进行全局近似或生成一个全局的替代模型。
      • 模型无关性: LIME 将被解释的模型视为一个黑箱,它不关心模型的内部结构(是神经网络还是随机森林),因此具有广泛的适用性。
      • 优化目标: LIME 的目标是在保真度 (Fidelity)可解释性 (Interpretability) 之间寻找一个最佳平衡。
    • 这体现在它的优化目标函数中,即同时追求两个目标:

      • 最大化保真度: 通过最小化损失项 L\mathcal{L},确保解释模型在局部范围内能准确地模仿黑箱模型的行为。
      • 最小化模型复杂度: 通过最小化惩罚项 Ω(g)\Omega(g),确保最终的解释足够简单、稀疏,易于人类理解。

提示词

现在开始第[X]章 [Brief] 。基于我们的课后习题和PPT的内容,在详细化重要内容之后,列出习题相关的重要的考点要点
---
【课后问题】
[Questions & Answer]
---
【输出规范】
你输出结果的总体要求不变:用中文回答,回答写在一个巨大的代码块中,使用Markdown格式,其中涉及到公式就用美元符号来包裹,以便typora解析。内联公式格式为:$x+y=z$;行间公式格式为:
$$
x+y=z
$$
要求去掉所有[cite]标签的引用
不只准确率:「可信机器学习」课程笔记
https://leehenry.top/posts/debug_2_deploy/notesarchive/可信机器学习期末复习资料/
作者
伏枥 | Henry Lee
发布于
2025-06-17
许可协议
CC BY-NC-ND 4.0