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)

大家都在看

  • [云原生]Kubernetes-资源管理(第3章)

    一、资源管理介绍 二、YAML语言介绍 三、资源管理方式 3.1 命令式对象管理 3.2 命令式对象配置 3.3 声明式对象配置 参考: Kubernetes(K8S) 入门进阶实…

    Linux 2023年6月13日
    0119
  • 防止shell script多次运行

    防止shell script多次运行 一个思路是在script初期检测系统中是否存在同名进程。 if [ ps -ef | grep "test.sh" | g…

    Linux 2023年5月28日
    083
  • MSSQL中Repalce函数处理长字符串时报异常的解决方案

    阅文时长 | 17.99分钟字数统计 | 28788.8字符主要内容 | 1、引言&背景 2、问题还原 3、解决方案 4、官方解释 5、声明与参考资料『MSSQL中Repa…

    Linux 2023年6月14日
    075
  • PyTorch 介绍 | TRANSFORMS

    数据并不总是满足机器学习算法所需的格式。我们使用 transform对数据进行一些操作,使得其能适用于训练。 所有的TorchVision数据集都有两个参数,用以接受包含trans…

    Linux 2023年6月16日
    0142
  • 监控域名,证书过期时间

    bash;gutter:true;</p> <h1>!bin/bash</h1> <p>date_Now=$(date +%Y%m%…

    Linux 2023年6月7日
    085
  • Ubuntu下搭建apache2+GGI环境

    参考:https://blog.csdn.net/nanfeibuyi/article/details/108551159 就先记录步骤吧 Original: https://ww…

    Linux 2023年6月8日
    090
  • 解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

    统计了三种方法: 一、使用nohup命令即可 【最简单】 nohup dotnet xxxx.dll 【xxxx为应用名称】 一般会报:nohup: ignoring input …

    Linux 2023年6月8日
    0121
  • Redis的数据时如何避免丢失的?

    Redis之所以足够快,一部分的原因是它的数据都是基于内存存储的。虽然Redis更多的是作为一个旁路缓存【先在redis中查询,查询不到数据的时候,在查询持久化数据库】来使用。如果…

    Linux 2023年6月7日
    076
  • 5.3 Linux Vim三种工作模式

    通过前面的学习我们知道,Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器。 我们首选的文本编辑器是 Vim(至于为什么,可查看《V…

    Linux 2023年6月7日
    099
  • DMA 与零拷贝技术

    原文链接:DMA 与零拷贝技术 注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。 1. 数据的四次拷贝与四次上下文切换 很多应…

    Linux 2023年6月16日
    0137
  • K8S部署之VMWare网络拓扑踩坑

    知乎上最近发现一篇好文 图解K8S(01):基于Ubuntu 20.04部署1.23版K8S集群,想着之前 K8S 部署一直不成功,那么就照着这篇文章中说的试一试。结果在实验时遇到…

    Linux 2023年5月27日
    093
  • 【XML】学习笔记第二章-dtd

    XML-DTD DTD语句 基本声明语句 引用外部DTD DTD元素 四种元素类型 元素定义关键字 修饰符号 DTD中的属性 属性修饰 属性类型 DTD中的实体和符号 符号 坑 X…

    Linux 2023年6月14日
    0120
  • 投票活动进行中!探讨问题:从互联网大量收集学习资料再包装成产品售卖盈利是否属于侵权违法?

    写在开篇 今天不聊某项技能的知识点,我们聊点别的。那么,到底聊啥好呢?笔者想想… 有了,这两天笔者从一个微信公众号中发现一个非常恶劣的营销行为。事情大概背景是这样的:运…

    Linux 2023年6月7日
    079
  • 记一次echo server出现的问题

    1. 我做了什么 最近在学习如何用select函数实现echo server。期间遇到了一个关于缓冲区的问题,在这里分享给大家。 在使用read/recv, write/send类…

    Linux 2023年6月7日
    099
  • Mysql数据库体系

    Mysql数据库体系如下(手绘): 描述: 1.DBMS:database system management是数据库管理软件,平时我们使用的数据库的全称,是C/S架构(clien…

    Linux 2023年6月14日
    0103
  • 《卡死你3000》批量修改被控机密码,秘钥

    批量生成密码之产生随机数: 默认产生16位大小写加数字密码 批量生成密码,并写入nodelist.csv: cs产生所有被控机旧密码并写入nodelist.ps1 运行这个脚本后,…

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