文章目录
读论文系列:1-Lipschitz Layers Compared: Memory, Speed, and Certifiable Robustness
1️⃣ 资料
- 说明:本文是 2024 年 CVPR
- 官方 github:https://github.com/berndprach/1LipschitzLayersCompared
- 官方讲解:https://www.youtube.com/watch?v=5l0kkrAMqDg
- Lipschitz,1-Lipschitz:https://blog.csdn.net/u010087338/article/details/111416252
2️⃣ AI 一起读论文
1. 本篇文章讲了什么
这篇文章对比了多种构建 1-Lipschitz 层的方法,评估了它们在内存占用、速度和可认证鲁棒性方面的表现。
主要内容:
- 1-Lipschitz 层: 指的是 Lipschitz 常数不超过 1 的神经网络层。这类层可以保证模型对输入扰动具有一定的鲁棒性。
- 构建方法: 文章介绍了 7 种构建 1-Lipschitz 层的方法,包括 BCOP、Cayley、SOC、AOL、LOT、CPL 和 SLL。每种方法都有其独特的实现方式和优缺点。
- 理论分析: 文章从计算复杂度和内存占用两个方面对 7 种方法进行了理论分析,并总结了每种方法的优缺点。
- 实验结果: 文章在 4 个数据集上进行了实验,对比了不同方法在不同模型规模下的训练时间、推理速度、内存占用和可认证鲁棒性。
- 结论: 文章发现 CPL 方法在综合性能上表现最好,其次是 SOC 和 LOT 方法。对于对推理时间要求较高的应用,可以选择 AOL 或 BCOP 方法。
文章亮点:
- 全面对比: 文章从多个维度对比了多种 1-Lipschitz 层构建方法,为选择合适的方法提供了参考。
- 理论分析: 文章对每种方法的理论性能进行了分析,有助于理解其优缺点。
- 实验验证: 文章通过实验验证了理论分析的结果,并提供了不同方法的性能数据。
- 代码开源: 文章提供了代码实现,方便其他研究者进行复现和研究。
总结:
这篇文章为构建可认证鲁棒的神经网络提供了有价值的参考。通过对比不同方法的性能,可以帮助研究者选择最合适的方法,并根据实际需求进行优化。
其他要点: - 文章还讨论了 1-Lipschitz 层的激活函数选择、网络结构设计等问题。
- 文章提到了一些其他构建 1-Lipschitz 层的方法,但由于某些原因没有进行详细对比。
- 文章的实验结果仅供参考,实际应用中需要根据具体情况进行调整。
2. (理论基础)什么是Lipschitz,1-Lipschitz
1-Lipschitz layers(一阶Lipschitz层)是深度学习中的一个概念,特别是在生成模型和正则化网络设计中。Lipschitz约束来源于数学中的Lipschitz连续性,它描述了一个函数输出变化的有界性。
具体来说,一个函数( f )是Lipschitz连续的,如果存在一个常数( K ),使得对于所有的输入( x )和( y ),下面的不等式成立:
∣
f
(
x
)
−
f
(
y
)
∣
≤
K
∣
x
−
y
∣
|f(x) - f(y)| \leq K |x - y|
∣f(x)−f(y)∣≤K∣x−y∣
如果这个常数( K )恰好等于1,那么函数( f )就是1-Lipschitz连续的。
在深度学习中,1-Lipschitz layers指的是那些能够保证输出变化有界的网络层,其中( K )的值不超过1。这样的约束有助于:
- 稳定性和泛化:限制了网络层的输出变化,可以减少过拟合,提高模型的泛化能力。
- 生成模型:在生成对抗网络(GANs)中,1-Lipschitz约束可以保证生成器和解码器的稳定性,有助于训练过程。
实现1-Lipschitz layers的常见方法包括:
- 权重裁剪:将网络层的权重限制在一个固定的范围内,例如[-0.01, 0.01]。
- 谱正则化:通过对网络层的谱(即最大奇异值)进行约束来保证Lipschitz条件。
- 使用特定类型的激活函数:比如使用ReLU的变体或者排序网络中的特定激活函数。
1-Lipschitz layers在理论研究和实际应用中都有重要意义,特别是在那些需要保证输出平滑性和稳定性的深度学习模型中。
雅可比矩阵那一部分是什么意思
这段文字主要解释了文章中使用的 1-Lipschitz 层 的构建方式,并说明了为什么选择 MaxMin 激活函数。
关键点:
- 正交雅可比矩阵: 1-Lipschitz 层的一个重要类别是具有 正交雅可比矩阵 的线性层。雅可比矩阵是层输出对输入的偏导数矩阵,正交矩阵满足 MM^T = I(I 是单位矩阵)。
- 满足 Lipschitz 连续性: 对于具有正交雅可比矩阵的层,Lipschitz 连续性方程(式 1)总是成立,这意味着该层对输入扰动具有鲁棒性。
- 构建方法: 文章中的神经网络由 1-Lipschitz 参数化层和 1-Lipschitz 激活函数组成,没有跳跃连接和批归一化。
- MaxMin 激活函数: 尽管 ReLU 激活函数也是 1-Lipschitz 的,但 Anil 等人 [2] 的研究表明它降低了模型的表达能力。因此,文章选择使用 MaxMin 激活函数,它在 1-Lipschitz 模型中常用,并且能够保持模型的表达能力。
- 网络结构: 由于 1-Lipschitz 函数的连续性,由 1-Lipschitz 层和 MaxMin 激活函数组成的神经网络本身也是 1-Lipschitz 的。
总结:
这段文字说明了文章中构建 1-Lipschitz 层的方法,并解释了选择 MaxMin 激活函数的原因。这种方法能够保证模型对输入扰动具有一定的鲁棒性,并且能够保持模型的表达能力。
3️⃣ 我的笔记
- 背景
- 我们可以通过改变一部分图片中的像素,从而影响分类模型的表现。(参考https://blog.csdn.net/CharlesShan1/article/details/140341294中的第二个实验)
- 从此,人们专注于模型稳定性的研究,提出了很多方法。一个老办法是把 Adversarial Examples 重新加入训练。
- 后来人们把这种扰动抽象成 ϵ \epsilon ϵ,输入图片是 x x x,加入扰动的待分类图片就是 ϵ + x \epsilon+x ϵ+x,去保证每一个加入扰动的待分类图片都可以分类成功,但这被证明是 NP-Hard 问题。
- Randomized smoothing strategies(随机平滑策略)(Certified adversarial robustness via randomized smoothing. 2019),结合去噪声后可以达到最先进的鲁棒性水平,但是计算量依旧庞大,不能满足实时计算。
- 所以人们使用了 Lipschitz Bounded Neural Networks。
- 目前有好多基于1-Lipschitz的提高鲁棒性的方案,但是缺乏标准与优缺点评价,本文就是去“评测”一下这些方法。
- 1-Lipschitz就是
∣
∣
f
(
x
)
−
f
(
y
)
∣
∣
2
≤
∣
∣
x
−
y
∣
∣
2
||f(x)-f(y)||_2≤||x-y||_2
∣∣f(x)−f(y)∣∣2≤∣∣x−y∣∣2,这是为了保证输出比输入的差别要小。(作者自己说的)
- 评测 1:输入输出的操作与复杂度
- Operations contains the most costly transformations applied to the input as well as to the parameters of different layers 操作包含应用于输入以及不同层参数的最昂贵的转换;
- MACS reports the computational complexity expressed in multiply-accumulate operations (MACS) involved in the transformations (only leading terms are presented) MACS报告了转换中涉及的乘法累加运算(MACS)所表示的计算复杂度(仅呈现前导项);
- Memory reports the memory required by the transformation during the training phase. Memory代表训练阶段转换所需的内存。
- The transformations reported in the table are convolutions (CONV), Fast Fourier Transformations (FFT), matrixvector multiplications (MV), matrix-matrix multiplications (MM), matrix inversions (INV), as well as applications of an activation function (ACT). The application of algorithms such as Bjorck & Bowie (BnB), power method, and Fantastic 4 (F4) is also reported (see Appendix A for descriptions)…
- 评测 2:训练时间与推理时间,可以看到 CPL、SOC 最优秀
- XS, S, M, L,代表参数量递增的模型(ranging from 1.5M to 100M parameters)
- XS, S, M, L,代表参数量递增的模型(ranging from 1.5M to 100M parameters)
- 评测 3:训练内存与推理内存
- 评测 4:在
ϵ
=
36
/
255
\epsilon=36/255
ϵ=36/255的情况下,进行鲁棒性测评
- 结论(原文翻译):考虑到所有指标(如图1所示),结果有利于CPL,因为它具有最高的性能和较低的计算资源消耗。当有大量计算资源可用,并且应用程序在推理和训练过程中没有施加严格的时间约束时,由于SOC层的性能略好,可以使用SOC层。最后,那些推理时间至关重要的应用程序可以利用AOL或BCOP,与标准卷积相比,它们不会在推理过程中引入额外的运行时开销。对于更高分辨率的图像,CPL似乎也是最有前景的方法。