Second Order Optimization for Adversarial Robustness and Interpretability
概
也算是一种对抗训练吧, 有区别的是构造对抗样本的方式, 以及用的是惩罚项而非仅用对抗样本训练.
主要内容
考虑干净样本\(x\)和扰动\(v\), 则我们自然希望
\min_{\theta} \max_{\|v\|\le \epsilon} \ell(x+v;\theta)- \ell(x),
\]
其中\(\ell\)是分类损失. 注意到右端项的二阶近似为
Q(v;x):= \nabla_x \ell(x) \cdot v + \frac{1}{2} v^T \nabla_x \ell(x) v.
\]
故我们可以转而优化此近似项. 当然, 一般的AT方法是用project gradient去逼近右端项, 假设前者
v_Q = \arg \max_{\|v\|_p \le \epsilon} Q(v;x),
\]
后者
\]
那么二者的差距有下面的定理保证
说实话, 这个定理没多大意义.
如果单纯优化(*)没法带来精度, 所以构造一个正则化项
\]
其中\(\ell_Q(x)=\ell(x+v_Q)-\ell(x)\).
注: 有一个疑问, 按照道理\(r \in (0, 1)\), 可是论文的实验是\((0.5, 1.5)\), 而且有几个实验挑了的确大于1, 这不就意味着需要\(\min (1-r)\ell(x)\), 这不就让分类变差了?
(4)式的求解
作者利用Frank-Wofle (FW) 去求解(4)式, 即
\left \{
\begin{array}{l}
s^k := \arg \max_{\|s\|_p\le \epsilon} \: s \cdot \nabla_v Q(v^k)\\
v^{k+1} := (1-\gamma^k) v^k + \gamma^k s^k,
\end{array} \right.
\]
其中\(v^k=\frac{2}{k+2}\), \(v^0=\epsilon g/\|g\|_p, \: g=\nabla_x \ell(x)\). (7)式的第一步式可以显示求解的
s^k=P_{FW}(v^k;p)=\alpha \cdot \mathrm{sgn} (\nabla_v Q(v^k)_i) |\nabla_v Q(v^k)_i|^{p/q},
\]
其中\(\alpha\)使得\(\|s^k\|_p=\epsilon\), \(|x|^m\)是逐项的.
因为
\nabla_x Q(v) = \nabla_x \ell(x) + \nabla^2_x \ell(x)v,
\]
而计算hessian矩阵需要大量的计算, 故采用差分逼近
FE:
\nabla_x^2 \ell(x)v \approx \frac{\nabla_x \ell(x+hv)-\nabla_x \ell(x)]}{h},
\]
CD:
\nabla_x^2 \ell(x)v \approx \frac{\nabla_x \ell(x+hv)-\nabla_x \ell(x-h)]}{2h}.
\]
超参数
\((h, r)\).
CIFAR10:
\(L_2\): FE(3): (1.15, 1.05) , CD(3): (0.95, 0.999);
\(L_{\infty}\): FE(3): (1.05, 1.05), CD(3): (0.95, 1.15).
Second Order Optimization for Adversarial Robustness and Interpretability的更多相关文章
- Improving Adversarial Robustness via Channel-Wise Activation Suppressing
目录 概 主要内容 代码 Bai Y., Zeng Y., Jiang Y., Xia S., Ma X., Wang Y. Improving adversarial robustness via ...
- Improving Adversarial Robustness Using Proxy Distributions
目录 概 主要内容 proxy distribution 如何利用构造的数据 Sehwag V., Mahloujifar S., Handina T., Dai S., Xiang C., Chia ...
- Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks
目录 概 主要内容 Auto-PGD Momentum Step Size 损失函数 AutoAttack Croce F. & Hein M. Reliable evaluation of ...
- Certified Adversarial Robustness via Randomized Smoothing
目录 概 主要内容 定理1 代码 Cohen J., Rosenfeld E., Kolter J. Certified Adversarial Robustness via Randomized S ...
- IMPROVING ADVERSARIAL ROBUSTNESS REQUIRES REVISITING MISCLASSIFIED EXAMPLES
目录 概 主要内容 符号 MART Wang Y, Zou D, Yi J, et al. Improving Adversarial Robustness Requires Revisiting M ...
- Inherent Adversarial Robustness of Deep Spiking Neural Networks: Effects of Discrete Input Encoding and Non-Linear Activations
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2003.10399v2 [cs.CV] 23 Jul 2020 ECCV 2020 1 https://github.com ...
- Adversarial Detection methods
目录 Kernel Density (KD) Local Intrinsic Dimensionality (LID) Gaussian Discriminant Analysis (GDA) Gau ...
- Research Guide: Pruning Techniques for Neural Networks
Research Guide: Pruning Techniques for Neural Networks 2019-11-15 20:16:54 Original: https://heartbe ...
- ICLR 2013 International Conference on Learning Representations深度学习论文papers
ICLR 2013 International Conference on Learning Representations May 02 - 04, 2013, Scottsdale, Arizon ...
随机推荐
- Flink(三)【核心编程】
目录 一.Environment 二.Source 从集合读取数据 从文件读取数据 从kakfa读取数据(常用) 自定义数据源 三.Transform map Rich版本函数 flatMap key ...
- git 的基本流程
有个本地文件 打开 新建一个 打开git $ git push origin master 这里是上传文件. (你每次上传的时候,都要先提交到本地的仓库...然后再上传) github上就有了 如何 ...
- 内存管理——placement new
C++给我们三个申请内存的方式,new(new operator),array new 和placement new. placement new意思是 让对象构建在已经分配好的内存上. (这里我再把 ...
- 【TCP/IP】之Java socket编程API基础
Socket是Java网络编程的基础,深入学习socket对于了解tcp/ip网络通信协议很有帮助, 此文讲解Socket的基础编程.Socket用法:①.主要用在进程间,网络间通信. 文章目录如下: ...
- 收集linux网络配置信息的shell脚本
此脚本已在CentOS/ RHEL和Fedora Linux操作系统下进行测试过.可用于当前网络配置信息. 代码: #!/bin/bash # HWINF=/usr/sbin/hwinfo IFCFG ...
- SQL Server 和 Oracle 以及 MySQL 数据库
推荐:https://www.zhihu.com/question/19866767 三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性.排行第四的DB2(属IBM公司),与Or ...
- 使用jsp制作index,可以通过<c:if test==“管理员”>或<c:if test=="客户">来区别展示用户界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ ta ...
- 5.Vue.js-模板语法
Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统 ...
- 【力扣】两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2: 输入:nums1 = [4,9,5], nu ...
- Java高精度基础+开根
在焦作站的acm网络赛中遇到了一个高精度开根的水题--但是那时候WA了 后面学写java补题还T了orz 所以写一篇文章来记录一下java的大整数类型的基础和开根还有一点心得体会吧 首先给那一题的题面 ...