Danskin’s Theorem

Statement 1

  • 假设 (\phi(x,z)) 为含有两个变量的连续函数: (\phi : \mathbb{R}^n \times Z \rightarrow \mathbb{R}),其中 (Z \subset \mathbb{R}^m) 为紧集。
  • 进一步假设,对于任意 (z\in Z),(\phi(x,z)) 是关于 (x) 的凸函数。

在这两个条件下,Danskin 定理给出了关于函数 (f(x)=\max_{z\in Z} \phi(x,z)) 的凸性和可微性的结论,为了描述这些结论,我们需要定义一组最大化点的集合 (Z_0(x)):

[Z_0(x) = \left{\overline{z}:\phi(x,\overline{z})=\max_{z\in Z}\phi(x,z) \right} ]

Danskin 定理给出以下结论:

[D_y f(x) = \max_{z\in Z_0(x)} \phi'(x,z;y) ]

[\frac{\partial f}{\partial x} = \frac{\partial \phi(x,\overline{z})}{\partial x} ]

[\partial f(x) = \textbf{conv} \left{\frac{\partial \phi(x,z)}{\partial x}:z\in Z_0(x) \right} ]

Statement 2

  • (\mathcal{S}) 为非空、紧、拓扑空间
  • 函数(g: \mathbb{R}^n\times \mathcal{S} \rightarrow \mathbb{R}) 满足:(g(\cdot, \delta)) 对于任意(\delta \in \mathcal{S}) 都是可微的,并且(\triangledown_\theta g(\theta, \delta)) 在(\mathbb{R}^n\times \mathcal{S}) 上是连续的
  • (\delta^{*}(\theta) = {\delta \in \arg\max_{\delta \in\mathcal{S} }g(\theta,\delta)})

那么函数 (\phi(\theta) = \max_{\delta\in\mathcal{S}}g(\theta,\delta)) 是局部 Lipschitz 连续的,且它的方向导数(directional derivatives)满足:

[\phi'(\theta, h) = \sup_{\delta \in \delta^{*}(\theta)} h^{T} \triangledown_\theta g(\theta, \delta) \tag{1} ]

其中,(\sup) 表示上确界/最小上界。

Application(PGD)

对于公式(1),如果集合 (\delta^(\theta) = {\delta^_\theta}) 只有一个元素,那么(1)可以写成:

[\triangledown\phi(\theta) = \triangledown_{\theta} g(\theta, \delta^{*}_{\theta}) \tag{2} ]

可以看出,(\phi(\theta)) 与 (g(\theta, \delta^{*}_{\theta})) 局部相同,且梯队也是局部的概念,所以它俩的梯度是相同的。

据此PGD作者又提供了以下推论,来证明通过计算内部优化器的梯度来计算鞍点的梯度是可行的:
推论:设 (\overline{\delta} = \max_\delta L(\theta,x+\delta,y)) 且 (\overline{\delta} \in \mathcal{S}),那么只要 (\overline{\delta}) 不为零,(-\triangledown_\theta L(\theta,x+\overline{\delta},y)) 就是 (\phi(\theta) = \max_\delta L(\theta,x+\delta,y)) 的下降方向。

回想论文中的鞍点公式:

[\min_{\theta}\rho (\theta), \; \; {\rm where} \;\;\; \rho (\theta)=\mathbb{E}{(x,y)\sim \mathcal{D}}[\max{\delta \in \mathcal{S}}L(\theta,x+\delta,y)] \tag{3} ]

其实,在实践中我们无法获得分布 (\mathcal{D}),所以 (\rho(\theta)) 的值和梯度都使用输入样本点来计算。所以,我们只需考虑对应于单个随机样本点 (x) (标签为 (y))的鞍点公式即可:

[\min_\theta \max_{\delta \in \mathcal{S}} g(\theta, \delta),\;\; {\rm where}\;\; g(\theta, \delta) = L(\theta,x+\delta,y) \tag{4} ]

结合上述的定理可知,使用内部问题的最大值能够计算损失函数的梯度,这相当于用相应的对抗扰动替换输入点,并在扰动的输入上训练网络,即全部使用对抗样本训练网络。

Original: https://www.cnblogs.com/setdong/p/16414780.html
Author: 李斯赛特
Title: Danskin’s Theorem

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578614/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pytorch的类(nn.Module的子类)中的forward函数

    使用 直接通过类的实例对象就可以向类中的forward函数进行参数的传递(当然也可以通过调用forward函数进行传参) import torch.nn as nn class M…

    Linux 2023年6月7日
    0104
  • 编写一个简单的linux kernel rootkit

    一、前言 linux kernel rootkit跟普通的应用层rootkit个人感觉不大,个人感觉区别在于一个运行在用户空间中,一个运行在内核空间中;另一个则是编写时调用的API…

    Linux 2023年6月8日
    099
  • Tomcat 实现双向SSL认证

    大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 1、生成CA密钥 genrsa [产生密钥命令] -des3 [加密算法] -out[密钥文件输出路径] …

    Linux 2023年6月14日
    064
  • SQL51 查找字符串中逗号出现的次数

    本题链接本题表结构如下所示。 +—-+————–+ | id | string | +—-+————–+ | 1 | 10,A,B | …

    Linux 2023年6月13日
    082
  • 【操作系统真象还原】04 编写MBR分区(二)和显卡对话

    前言 通过BIOS提供的中断,我们的MBR程序在屏幕上输出了绿油油的 Hi from MBR!。但只有在 实模式 …

    Linux 2023年5月27日
    0125
  • 【翻译】如何编写 Git 提交消息

    个人博客及创作索引页正在制作中,此处仅释出本地第一大版本。原文档基于 Hexo 及相关插件,不兼容于此处的格式暂不统一修复。 《【翻译】如何编写 Git 提交消息》[1]的简体中文…

    Linux 2023年6月13日
    091
  • [20211108]索引分裂块清除日志增加(唯一索引)2.txt

    [20211108]索引分裂块清除日志增加(唯一索引)2.txt –//链接http://blog.itpub.net/267265/viewspace-2840853…

    Linux 2023年6月13日
    074
  • Java并发-建立线程

    一、建立新的线程 方法介绍 1、java.lang.Thread 1.0 Thread(Runnable target) 构造一个新线程,用于调用给定目标的run()方法。 voi…

    Linux 2023年6月7日
    079
  • PhpCms V9调用指定栏目子栏目文章的方法

    PhpCms V9调用指定栏目子栏目文章的方法 第一种,直接写父类id {pc:content action=”lists” catid=”父类…

    Linux 2023年6月13日
    091
  • uWSGI服务实现优雅重启(graceful reload)的方式

    服务端当前使用方式 直接通过svc发送SIGINT/SIGKILL信号 直接触发real_run脚本中的相关信号通知 使用简单 每次重启所有进程(包括master),重启完成为全新…

    Linux 2023年6月6日
    090
  • 高通平台如何避免误入FFBM模式

    前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法。虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会…

    Linux 2023年6月7日
    085
  • 【设计模式】Java设计模式-组合模式

    Java设计模式 – 组合模式 😄 不断学习才是王道🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆原创作品,更多关注我CSDN: 一个有梦有戏的人…

    Linux 2023年6月6日
    0109
  • 解决JSP文件在浏览器访问中文乱码问题

    指定编码类型为支持中文的编码1.添加 第二句是设置输出到浏览器,浏览器选择的编码方式加上这两句已后页面访问将不再是乱码了. Original: https://www.cnblog…

    Linux 2023年6月7日
    084
  • Spring 4 集成 redis 实现缓存 二

    项目开发过程中经常用到mybatis,为了提升查询效率,mybatis支持一级和二级缓存,一级缓存基于SqlSession级别,默认开启,二级缓存基于Mapper级别;一级和二级缓…

    Linux 2023年6月14日
    088
  • 在Ubuntu机器上使用war包安装Jenkins

    因为一些需求需要迁移之前使用的Jenkins,原来是按照官方文档使用apt方式安装的,这次搬迁后的机器由于默认不通外网(可以通过代理走外网),因此趁此机会,尝试改用war包方式安装…

    Linux 2023年6月6日
    0102
  • linux ssh连接自动断开问题

    场景描述:云上的虚拟机使用public ip连接ssh时,一直提示已经连接,但是就会自动关闭 通过正常虚拟机作为跳板,能够连接到目标机子上,检查发现进程正常,但是就一直连接不上 发…

    Linux 2023年6月7日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球