IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [半监督学习] Adversarial Dropout for Supervised and Semi-Supervised Learning -> 正文阅读

[人工智能][半监督学习] Adversarial Dropout for Supervised and Semi-Supervised Learning

引入了对抗性 dropout(AdD), 可最大限度地提高具有 dropouts 的网络输出之间的差异. 识别出的对抗性 dropout 用于在训练过程中自动重新配置神经网络, 是 Virtual Adverarial Training(VAT)的变种, 原来在 input data 上加对抗干扰, AdD 则是在网络中间层进行对抗性 dropout.

在介绍对抗性 dropout 之前, 这里简要介绍深度神经网络(DNN)的随机噪声层, 以及对抗性训练(Adversarial Training)和自集成模型(Self-Ensembling Model), 这些方法与对抗性 dropout 密切相关.

1. Noise Layers

定义 h ( l ) h^{(l)} h(l) 为神经网络的第 l l l 层隐藏层, 这一层可以用带噪声的层 h ~ ( l ) \tilde{h}^{(l)} h~(l) 替换. 我们可以有如下不同的噪声类型:

  • 加性高斯噪声(Additive Gaussian noise). h ~ ( l ) = h ( l ) + γ \tilde{h}^{(l)}=h^{(l)}+\gamma h~(l)=h(l)+γ, 其中 γ ~ N ( 0 , σ 2 I d × d ) \gamma \sim \mathcal{N}(0,\sigma^2\mathbf{I}_{d\times d}) γN(0,σ2Id×d?), 用 σ 2 \sigma^2 σ2 来限制噪声的程度.
  • Droupout noise. h ~ ( l ) = h ( l ) ⊙ ? \tilde{h}^{(l)}=h^{(l)}\odot \epsilon h~(l)=h(l)?, 噪声向量 ? i ~ B e r n o u l l i ( 1 ? p ) \epsilon_i \sim Bernoulli(1 ? p) ?i?Bernoulli(1?p)

加性高斯噪声和 dropout 噪声都是泛化技术, 用于增加训练模型的通用性, 但它们具有不同的属性. 加性高斯噪声增加了决策边界的范围, 而 dropout 噪声使模型变得稀疏. 这些噪声层可以很容易地包含在深度神经网络中.

2. Self-Ensembling Model

自集成构建了一个损失函数, 该损失函数可以最小化来自具有相同输入的两个采样的两个输出之间的差异. 正则化项可以解释如下:
L S E : = D [ f θ ( x , ? 1 ) , f θ ( x , ? 2 ) ] (1) \mathcal{L}_{SE}:=D[f_\theta(x,\epsilon^1),f_\theta(x,\epsilon^2)] \tag{1} LSE?:=D[fθ?(x,?1),fθ?(x,?2)](1)
其中 ? 1 \epsilon^1 ?1 ? 2 \epsilon^2 ?2 分别是参数为 θ \theta θ 的神经网络 f θ f_\theta fθ? 中随机采样的 dropout 噪声. D D D 为距离度量函数, 可以为交叉熵, KL 散度等. Π \Pi Π-model 为典型的自集成模型. 当一个 dropout 神经网络被对抗性采样时, 对抗性 dropout 可以看作是 Π \Pi Π-model 的一个特例.

3. Adversarial Training

对抗训练(AT)的基本概念是在训练过程中结合对抗性示例. 通过包含对抗性示例的附加损失函数, 其可以定义为广义形式:
L A T ( x , y ; θ , δ ) : = D [ g ( x , y , θ ) , f θ ( x + γ a d v ) ] (2) \mathcal{L}_{AT}(x,y;\theta,\delta):=D[g(x,y,\theta),f_\theta(x+\gamma^{adv})] \tag{2} LAT?(x,y;θ,δ):=D[g(x,y,θ),fθ?(x+γadv)](2)
其中 γ a d v : = arg?max ? γ ∥ γ ∥ ∞ ≤ δ D [ g ( x , y , θ ) , f θ ( x + γ ) ] \gamma^{adv}:=\argmax_\gamma \lVert \gamma\rVert_\infty\leq\delta^{ D[g(x,y,\theta),f_\theta(x+\gamma)]} γadv:=γargmax?γ?δD[g(x,y,θ),fθ?(x+γ)]. δ \delta δ 是控制对抗扰动 γ a d v \gamma^{adv} γadv 强度的超参数. 函数 f θ ( x ) f_\theta(x) fθ?(x) 是要学习的神经网络的输出分布. 通过不同的 g ( x , y , θ ) g(x, y, \theta) g(x,y,θ), 对抗训练有下面几种方式:

4. Adversarial Dropout(AdD) 方法

4.1 General Expression of Adversarial Dropout

结合对抗 dropout 的附加损失函数的描述如下:
L A d D ( x , y , ? s ; θ , δ ) : = D [ g ( x , y , θ ) , f θ ( x , ? a d v ) ] (3) \mathcal{L}_{AdD}(x,y,\epsilon^s;\theta,\delta):=D[g(x,y,\theta),f_\theta(x, \epsilon^{adv})] \tag{3} LAdD?(x,y,?s;θ,δ):=D[g(x,y,θ),fθ?(x,?adv)](3)
其中 ? a d v : = arg?max ? ? ∥ ? s ? ? ∥ ≤ δ H D [ g ( x , y , θ ) , f θ ( x , ? ) ] \epsilon^{adv}:=\argmax_\epsilon \lVert \epsilon^s-\epsilon \rVert \leq \delta H^{D[g(x,y,\theta),f_\theta(x, \epsilon)]} ?adv:=?argmax??s??δHD[g(x,y,θ),fθ?(x,?)], ? a d v \epsilon^{adv} ?adv 为 adversarial dropout mask, ? s \epsilon^s ?s 为随机采样 dropout mask, H H H 为 dropout layer 的维度.

引入边界条件 ∥ ? s ? ? ∥ 2 ≤ δ H \lVert \epsilon^s-\epsilon\rVert_2 \leq \delta H ?s??2?δH. 如果没有这个约束, 具有对抗 dropout 的网络可能会变成没有连接的神经网络层. 通过用随机 dropout 限制对抗性 dropout, 防止找到这种不支持反向传播的非理性层.

在对抗性训练的一般形式中, 关键点是线性扰动 γ a d v \gamma^{adv} γadv 的存在. 可以将具有对抗性扰动的输入解释为对抗性噪声输入 x ~ a d v = x + γ a d v \tilde{x}^{adv} = x + \gamma^{adv} x~adv=x+γadv. 从这个角度来看, 对抗训练的作者将对抗方向限制在加性高斯噪声 x ~ = x + γ 0 \tilde{x} = x + \gamma^0 x~=x+γ0 的空间上, 其中 γ 0 \gamma^0 γ0 是输入层上的采样高斯噪声. 相比之下, 对抗性 dropout 可以被认为是通过 masking 隐藏单元产生的噪声空间, h ~ ( a d v ) = h ⊙ ? a d v \tilde{h}^{(adv)}=h\odot \epsilon^{adv} h~(adv)=h?adv, ? a d v \epsilon^{adv} ?adv 是对抗性选择的 dropout 状态. 如果假设对抗性训练是输入上的高斯加性扰动, 则扰动本质上是线性的, 但如果对抗性 dropout 施加在多个层上, 则对抗性 dropout 可能是非线性扰动.

  • Supervised Adversarial Dropout(SAdD)
    SAdD 将 g ( x , y , θ ) g(x, y, \theta) g(x,y,θ) 定义为 y y y, 令 g g g y y y 的 one-hot 向量. 式(3) 的散度项可以转换如下:
    L S A d D ( x , y , ? s ; θ , δ ) : = D [ g ( y ) , f θ ( x , ? a d v ) ] (4) \mathcal{L}_{SAdD}(x,y,\epsilon^s;\theta,\delta):=D[g(y),f_\theta(x, \epsilon^{adv})] \tag{4} LSAdD?(x,y,?s;θ,δ):=D[g(y),fθ?(x,?adv)](4)
    其中 ? a d v : = arg?max ? ? ∥ ? s ? ? ∥ ≤ δ H D [ g ( y ) , f θ ( x , ? ) ] \epsilon^{adv}:=\argmax_\epsilon \lVert \epsilon^s-\epsilon \rVert \leq \delta H^{D[g(y),f_\theta(x, \epsilon)]} ?adv:=?argmax??s??δHD[g(y),fθ?(x,?)].
  • Virtual Adversarial Dropou(VAdD)
    VAdD 将 g ( x , y , θ ) g(x, y, \theta) g(x,y,θ) 定义为 f θ ( x , ? s ) f_\theta(x, \epsilon^{s}) fθ?(x,?s). 式(3) 的散度项可以转换如下:
    L V A d D ( x , y , ? s ; θ , δ ) : = D [ f θ ( x , ? s ) , f θ ( x , ? a d v ) ] (5) \mathcal{L}_{VAdD}(x,y,\epsilon^s;\theta,\delta):=D[f_\theta(x, \epsilon^{s}),f_\theta(x, \epsilon^{adv})] \tag{5} LVAdD?(x,y,?s;θ,δ):=D[fθ?(x,?s),fθ?(x,?adv)](5)
    其中 ? a d v : = arg?max ? ? ∥ ? s ? ? ∥ ≤ δ H D [ f θ ( x , ? s ) , f θ ( x , ? ) ] \epsilon^{adv}:=\argmax_\epsilon \lVert \epsilon^s-\epsilon \rVert \leq \delta H^{D[f_\theta(x, \epsilon^{s}),f_\theta(x, \epsilon)]} ?adv:=?argmax??s??δHD[fθ?(x,?s),fθ?(x,?)].
  • Learning with Adversarial Dropout
    学习的完整目标函数由下式给出:
    l ( y , f θ ( x , ? s ) ) + λ L A d D ( x , y , ? s ; θ , δ ) (6) l(y,f_\theta(x,\epsilon^s))+\lambda\mathcal{L}_{AdD}(x,y,\epsilon^s;\theta,\delta) \tag{6} l(y,fθ?(x,?s))+λLAdD?(x,y,?s;θ,δ)(6)
    其中 l ( y , f θ ( x , ? s ) ) l(y,f_\theta(x,\epsilon^s)) l(y,fθ?(x,?s)) ? s \epsilon^s ?s x x x 对应的 y y y 的负对数似然.
  • Combining Adversarial Dropout and Adversarial Training
    通过将输入扰动与高斯加性噪声强加, 并同时启用对抗选择的 dropout 来训练神经网络. 损失函数如下:
    l ( y , f θ ( x , ? s ) ) + λ 1 L A d D ( x , y , ? s ) + λ 2 L A T ( x , y ) (7) l(y,f_\theta(x,\epsilon^s))+\lambda_1\mathcal{L}_{AdD}(x,y,\epsilon^s)+\lambda_2\mathcal{L}_{AT}(x,y) \tag{7} l(y,fθ?(x,?s))+λ1?LAdD?(x,y,?s)+λ2?LAT?(x,y)(7)

4.2 Fast Approximation Method for Finding Adversarial Dropout Condition

一旦确认了对抗性 dropout 的 ? a d v \epsilon^{adv} ?adv, L A d D \mathcal{L}_{AdD} LAdD? 的评估就变成了损失函数和散度函数的计算. 然而, 对 ? a d v \epsilon^{adv} ?adv 的推断很困难, 原因如下:

  • 无法获得关于精确对抗性噪声值 ? a d v \epsilon^{adv} ?adv 的封闭式解.
  • ? a d v \epsilon^{adv} ?adv 的可行空间受限于 ∥ ? s ? ? ∥ 2 ≤ δ H \lVert \epsilon^s-\epsilon\rVert_2 \leq \delta H ?s??2?δH.
  • ? a d v \epsilon^{adv} ?adv 是二值向量而不是连续值向量, 因为 ? a d v \epsilon^{adv} ?adv 表示神经元的激活状态.

为了解决这个困难, 通过放宽 ? a d v \epsilon^{adv} ?adv 的域空间, 用 L A d D \mathcal{L}_{AdD} LAdD? 的一阶泰勒展开来近似目标函数. 近似后再通过解整数规划问题找到对抗性的 dropout 条件.

将输出函数分成两个神经子网络 f θ ( x , ? ) = f θ 1 u p p e r ( h ( x ) ⊙ ? ) f_\theta(x, \epsilon) = f^{upper}_{\theta_1} (h(x)\odot \epsilon) fθ?(x,?)=fθ1?upper?(h(x)?), 其中 f θ 1 u p p e r f^{upper}_{\theta_1} fθ1?upper? 是 dropout 层的上半部分神经网络, h ( x ) = f θ 2 u n d e r ( x ) h(x) = f^{under}_{\theta_2} (x) h(x)=fθ2?under?(x) 是下层神经网络. 目标是通过在约束 ∥ ? s ? ? ∥ 2 ≤ δ H \lVert \epsilon^s-\epsilon\rVert_2 \leq \delta H ?s??2?δH 下最大化散度函数来优化对抗 dropout 噪声 ? a d v \epsilon^{adv} ?adv:
D ( x , ? ; θ , ? s ) = D [ g ( x , y , θ , ? s ) , f θ 1 u p p e r ( h ( x ) ⊙ ? ) ] (8) D(x,\epsilon;\theta,\epsilon^s)=D[g(x,y,\theta,\epsilon^s),f^{upper}_{\theta_1} (h(x)\odot \epsilon)] \tag{8} D(x,?;θ,?s)=D[g(x,y,θ,?s),fθ1?upper?(h(x)?)](8)

通过将 ? \epsilon ? 的域空间从多个二进制空间 { 0 , 1 } H \{0, 1\}^H {0,1}H 松弛到实值空间 [ 0 , 1 ] H [0, 1]^H [0,1]H 来推导泰勒展开的一阶来近似散度函数. 这种转换是整数规划研究中的一个常见步骤. 计算如下:
D ( x , ? ; θ , ? s ) ≈ D ( x , ? 0 ; θ , ? s ) + ( ? ? ? 0 ) T J ( x , ? 0 ) (9) D(x,\epsilon;\theta,\epsilon^s) \approx D(x,\epsilon^0;\theta,\epsilon^s) + (\epsilon-\epsilon^0)^{\mathrm{T}}\mathrm{J}(x,\epsilon^0) \tag{9} D(x,?;θ,?s)D(x,?0;θ,?s)+(???0)TJ(x,?0)(9)
其中 J ( x , ? 0 ) \mathrm{J}(x,\epsilon^0) J(x,?0) 为雅可比向量(Jacobian vector), J ( x , ? 0 ) : = ? ? D ( x , ? ; θ , ? s ) ∣ ? = ? 0 \mathrm{J}(x,\epsilon^0):=\nabla_\epsilon D(x,\epsilon;\theta,\epsilon^s)\vert _{\epsilon=\epsilon^0} J(x,?0):=???D(x,?;θ,?s)?=?0?. 当 ? 0 = 1 \epsilon^0 = 1 ?0=1 时表示没有噪声注入. 上述泰勒展开式通过控制 ? \epsilon ? 提供了一个线性优化目标函数. 因此, 重新组织关于 ? \epsilon ? 的泰勒展开式如下:
D ( x , ? ; θ , ? s ) ∝ ∑ i ? i J i ( x , ? 0 ) (10) D(x,\epsilon;\theta,\epsilon^s) \propto \sum_{i}\epsilon_i\mathrm{J}_i(x,\epsilon^0) \tag{10} D(x,?;θ,?s)i??i?Ji?(x,?0)(10)
这里无法进一步处理给定的式子, 因此引入了一个替代的雅可比公式, 它通过 ⊙ \odot h ( x ) h(x) h(x) 进一步指定了 dropout 机制, 如下所示:
J ( x , ? 0 ) ≈ h ( x ) ⊙ ? ? D ( x , ? ; θ , ? s ) (11) \mathrm{J}(x,\epsilon^0) \approx h(x) \odot \nabla_\epsilon D(x,\epsilon;\theta,\epsilon^s) \tag{11} J(x,?0)h(x)???D(x,?;θ,?s)(11)
综上, 查找 Adversarial Dropout Condition 的算法流程如下:
在这里插入图片描述
代码地址: https://github.com/sungraepark/Adversarial-Dropout

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:36:39  更:2022-02-01 20:39:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 20:37:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码