Leino K., Wang Z. and Fredrikson M. Globally-robust neural networks. In International Conference on Machine Learning (ICML), 2021.

本文是一种可验证的鲁棒方法, 并且提出了一种globally-robust的概念, 但是实际看下来并不觉得有特别出彩的地方.

主要内容

对于网络\(f : \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}\), 其中\(m\)表示共有m个不同的类别. 则prediction可以表示为

\[F(x) = \mathop{\arg \max} \limits_{i} f_i(x).
\]

普通的local robustness采用如下方式定义:

\(F\)被称为在点\(x\)满足\(\epsilon\)-locally-robust, 当对于任意的样本\(x'\)满足

\[\|x'-x\| \Rightarrow F(x) = F(x').
\]

这种定义方式并不恰当, 因为倘若这个性质对于所有的点都成立, 那么所有的样本都会被判定为同一个类别, 从而得到的是一个退化的\(F\).

作者给出的globally-robust的定义是可以对于所有\(x\)有效的.

首先假设一个新的类别\(\perp\), 以及关系

\[c_1 \mathop{=}\limits^{\perp} c_2,
\]

当且仅当

\[c_1 = c_2 | c_1=\perp | c_2 = \perp .
\]

则globally-robust是这么定义的:

\(F\)是\(\epsilon\)-globally-robust的, 如果对于任意的\(x_1, x_2\), 有下列推论成立

\[\|x_1 - x_2\| \le \epsilon \Rightarrow F(x_1) \mathop{=}\limits^{\perp} F(x_2).
\]

换言之, \(F\)关于所有点的预测, 要么其是locally-robust, 要么是属于\(\perp\)的, 故可以将\(\perp\)理解为所有不满足locally-robust的点.

接下来作者给出了这样模型的构造方法:

假设

\[\frac{|f_i(x_1) - f_i(x_2)|}{\|x_1 - x_2\|} \le K_i, i=1,2,\cdots, m,
\]

即\(f_i\)的全局Lipschitz常数为\(K_i\).

\[y_i = f_i(x), j=F(x),
\]

定义

\[y_{\perp} = \max_{i\not= j} \{y_i + (K_i + K_j) \epsilon \}.
\]

背后的直觉是, 根据Lipschitz常数的性质, 有

\[y_i -K_i \epsilon \le f_i (x') \le y_i + K_i \epsilon, \\
y_j -K_j \epsilon \le f_j (x') \le y_j + K_j \epsilon,
\]

所以

\[f_i(x') - f_j(x') \le y_i + (K_i + K_j) \epsilon -y_j = y_{\perp} - y_j.
\]

所以\(y_{\perp}\)反映了最坏的情况, 如果\(y_{\perp} > y_j\), 便有可能存在\(x', \|x'-x\| \le \epsilon\), 但是\(F(x') \not= F(x)\).

当然了, 这个是一个非常宽泛的情况.

进一步定义:

\[\bar{f}_i^{\epsilon} (x) = f_i(x), i =1,2,\cdots, m, \\
\bar{f}_{\perp}^{\epsilon}(x) = y_{\perp},
\]

所以最后的模型是:

\[\bar{F}^{\epsilon}(x) = \mathop{\arg \max} \limits_{i, \perp} \bar{f}_{*}^{\epsilon}(x).
\]

并由如下的性质:

定理1: 如果\(\bar{F}^{\epsilon}(x) \not = \perp\), 则 \(\bar{F}^{\epsilon}(x) = F(x)\), 且\(\bar{F}^{\epsilon}\)在\(x\)处是\(\epsilon\)-locally-robust的.

这是显然的, 因为这说明在\(\epsilon\)的ball内, 找出比上面情况更坏的点.

定理2: \(\bar{F}^{\epsilon / 2}(x)\)是\(\epsilon\)-globally-robust的.

只需证明不可能存在\(x_1, x_2, \|x_1 - x_2\| \le \epsilon\), \(\bar{F}^{\epsilon/2}(x_1)=c_1\not= c_2 =\bar{F}^{\epsilon/2}(x_1)\),

根据上面的定理可知:

\[F(x_1) = c_1 \not = c_2 = F(x_2).
\]

任取

\[x_3 \in B(x_1, \epsilon /2) \cap B(x_2, \epsilon /2),
\]

注: 这里\(B\)是闭球.

则根据定理1有\(F(x_1) = F(x_3) = F(x_2)\), 矛盾.

所以, 我们这么构造的模型就符合作者的定义了, 但是还存在下面的问题:

  1. 全局Lipschitz常数的估计问题: 作者采用简单粗暴的逐层计算并相乘, 放得很宽;
  2. 如果Lipschitz常数过大, 这个模型并不会有效, 显然所有的样本都会被判断为\(\perp\), 作者最后采用的损失函数是TRADES的一个变种:
    \[\mathcal{L}_T(x,y) = \mathcal{L}_{CE}(f(x), y) + \lambda \cdot \mathrm{D}_{KL}(\bar{f}^{\epsilon}(x)\| f(x)).
    \]

代码

原文代码

Globally-Robust Neural Networks的更多相关文章

  1. 【论文阅读】Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks

    Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks 参考 1. 人脸关键点: 2. ...

  2. Exploring Architectural Ingredients of Adversarially Robust Deep Neural Networks

    目录 概 主要内容 深度 宽度 代码 Huang H., Wang Y., Erfani S., Gu Q., Bailey J. and Ma X. Exploring architectural ...

  3. [Box] Robust Training and Initialization of Deep Neural Networks: An Adaptive Basis Viewpoint

    目录 概 主要内容 LSGD Box 初始化 Box for Resnet 代码 Cyr E C, Gulian M, Patel R G, et al. Robust Training and In ...

  4. [C4] Andrew Ng - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization

    About this Course This course will teach you the "magic" of getting deep learning to work ...

  5. 【转】Artificial Neurons and Single-Layer Neural Networks

    原文:written by Sebastian Raschka on March 14, 2015 中文版译文:伯乐在线 - atmanic 翻译,toolate 校稿 This article of ...

  6. 提高神经网络的学习方式Improving the way neural networks learn

    When a golf player is first learning to play golf, they usually spend most of their time developing ...

  7. 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 3.Programming assignments:Convolutional Model: application

    Convolutional Neural Networks: Application Welcome to Course 4's second assignment! In this notebook ...

  8. Convolutional Neural Networks: Application

    Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...

  9. (转)Understanding, generalisation, and transfer learning in deep neural networks

    Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   Thi ...

  10. AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks

    ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...

随机推荐

  1. linux 实用指令文件目录类

    目录 linux实用指令文件目录类 路径 pwd指令 cd指令 操作文件夹/文件 ls指令 mkdir rmdir touch cp(重要) rm mv 操作内容 cat more less > ...

  2. SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现前后端代码自动生成

      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助.但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑 ...

  3. python web工程师跳巢攻略

    python web工程师跳巢攻略 流程 一面问基础 二面问项目 三面问设计(经验) web请求的流程 浏览器 负载均衡 web框架 业务逻辑 数据库缓存 后端技术栈 python语言基础 语言特点 ...

  4. keil 生成 bin 文件 gd32为例

    fromelf --bin --output .\update\GD32F4xZ.bin .\Output\GD32450Z_EVAL.axf代表使用的keil内的工具代表输出公式,..表示: 输出 ...

  5. OpenStack之十: 安装dashboard

    官网地址 https://docs.openstack.org/horizon/stein/install/install-rdo.html #:安装包 [root@cobbler ~]# yum i ...

  6. JavaBean的命名规则

    JavaBean的命名规则Sun 推荐的命名规范1 ,类名要首字母大写,后面的单词首字母大写2 ,方法名的第一个单词小写,后面的单词首字母大写3 ,变量名的第一个单词小写,后面的单词首字母大写为了使 ...

  7. java通过反射获取Java对象属性值

    说明: 作为反射工具类,通过对象和属性的名字获取对象属性的值,如果在当前对象属性没有找到,依次向上收集所有父类的属 性,直到找到属性值,没有找到返回null: 代码: 1.classUtil pack ...

  8. MFC入门示例之单选框、复选框

    设置默认选中一个单选按钮,OnInitDialog()函数中添加: CheckRadioButton(IDC_RADIO1, IDC_RADIO2, IDC_RADIO2); 按钮事件处理 1 voi ...

  9. 避免警报疲劳:每个 K8s 工程团队的 8 个技巧

    避免警报疲劳:每个 K8s 工程团队的 8 个技巧 监控 Kubernetes 集群并不容易,警报疲劳通常是一个问题.阅读这篇文章,了解减少警报疲劳的有用提示. 如果您是随叫随到团队的一员,您可能知道 ...

  10. C#汽车租赁系统

    类图: 父类(车类,抽象类) /// <summary> /// 车辆基本信息类.搞一个抽象类玩玩 /// </summary> public abstract class V ...