Wang Y., Huang G., Song S., Pan X., Xia Y. and Wu C. Regularizing Deep Networks with Semantic Data Augmentation.

TPAMI.

通过data augments来对数据进行扩充, 可以有效提高网络的泛化性.

但是这些transformers通常只有一些旋转, 剪切等较为简单的变换, 想要施加更为复杂的语义不变变换(如切换背景), 可能就需要GAN等引入额外的网络来进行.

本文提出的ISDA算法是基于特征的变化进行的, 技能进行语义层面的变换, 又没有GAN等方法的计算昂贵的缺点.

主要内容

作者认为, 在最后的特征层, 通过增加一定的平移对应不同的语义上的变换.

但是, 作者也指明了, 并非所有的方向都是一个有意义的方向, 比如这个方向可能是戴上眼镜, 这个方向对于人来说是有意义的, 但是对于汽车飞机就没有意义了.

所以我们需要从一个有意义的分布中采样, 作者假设该分布是一个零均值的正态分布, 即

\[\mathcal{N}(0, \Sigma).
\]

于是乎, 现在的问题就是如何选择这个协方差矩阵\(\Sigma\).

就像之前讲的, 有些方向是否有意义与类别有关系, 所以不同的类别的样本会从不同的正态分布

\[\mathcal{N}(0, \Sigma_i),
\]

中采样.

对于每一个协方差矩阵, 作者采用online的更新方式更新:



上图是式子就是普通的协方差估计式子

\[\frac{1}{n}\sum_{i=1}^n (x_i-\mu)(x_i - \mu)^T,
\]

的online更新版本.

如果假设样本\(x\)经过encoder之后的特征为\(a\), 则其变换后的版本

\[a' \sim \mathcal{N}(a, \Sigma_y),
\]

其中\(y\)为\(x\)的类别标签. 于是一般的对应的损失函数即为

\[\mathcal{L}_{M}(M, b, \Theta) = \frac{1}{N}\sum_{i=1}^N\frac{1}{M}\sum_{m=1}^M - \log (\frac{e^{w_{y_i}^Ta_i^m+b_{y_i}}}{\sum_{j=1}^Ce^{w_{j}^Ta_i^m+b_{j}}}),
\]

当我们令\(M\)趋于无穷大的时候,

\[\mathcal{L}_{M}(M, b, \Theta) = \frac{1}{N}\sum_{i=1}^N\mathbb{E}_{a_i}- \log (\frac{e^{w_{y_i}^Ta_i+b_{y_i}}}{\sum_{j=1}^Ce^{w_{j}^Ta_i+b_{j}}}).
\]

这个式子没有显示解, 故作者退而求其次, 最小化其上界.

这个证明不难, 这里就练习一下

\[\mathbb{E}[e^{tX}]=e^{t\mu + \frac{1}{2}\sigma^2t^2}, \quad X \sim \mathcal{N}(\mu, \sigma^2).
\]

既然

\[\mathbb{E}[e^{tX}] = e^{\frac{(t\sigma^2+\mu)^2-\mu^2}{2\sigma^2}}.
\]

代码

原文代码

Regularizing Deep Networks with Semantic Data Augmentation的更多相关文章

  1. 【论文考古】联邦学习开山之作 Communication-Efficient Learning of Deep Networks from Decentralized Data

    B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. y Arcas, "Communication-Efficient Learni ...

  2. Communication-Efficient Learning of Deep Networks from Decentralized Data

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Proceedings of the 20th International Conference on Artificial Intell ...

  3. 论文解读(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》

    论文信息 论文标题:Data Augmentation for Deep Graph Learning: A Survey论文作者:Kaize Ding, Zhe Xu, Hanghang Tong, ...

  4. paper 147:Deep Learning -- Face Data Augmentation(一)

    1. 在深度学习中,当数据量不够大时候,常常采用下面4中方法:  (1)人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data ...

  5. Fully Convolutional Networks for Semantic Segmentation 译文

    Fully Convolutional Networks for Semantic Segmentation 译文 Abstract   Convolutional networks are powe ...

  6. Deep Learning 8_深度学习UFLDL教程:Stacked Autocoders and Implement deep networks for digit classification_Exercise(斯坦福大学深度学习教程)

    前言 1.理论知识:UFLDL教程.Deep learning:十六(deep networks) 2.实验环境:win7, matlab2015b,16G内存,2T硬盘 3.实验内容:Exercis ...

  7. 论文笔记:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

    Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks ICML 2017 Paper:https://arxiv.org/ ...

  8. 【DeepLearning】Exercise: Implement deep networks for digit classification

    Exercise: Implement deep networks for digit classification 习题链接:Exercise: Implement deep networks fo ...

  9. 深度学习材料:从感知机到深度网络A Deep Learning Tutorial: From Perceptrons to Deep Networks

    In recent years, there’s been a resurgence in the field of Artificial Intelligence. It’s spread beyo ...

随机推荐

  1. 技术管理进阶——Leader的模型、手段及思维

    这里可以添加关注交流一下嘛-- 本文更多的是个人认知,有不足请批评. ​Case 在之前一次年底考评的时候,有一位leader将一个案例同时用到了自己和下属身上,老板发出了责问: 这个项目到底你是负责 ...

  2. day12 form组件

    day12 form组件 今日内容 form组件前戏 form组件基本定义 form组件数据校验功能 form组件渲染标签 form组件提示信息 数据校验进阶 form组件补充 form组件源码探索 ...

  3. R语言学习记录(二)

    4.对象改值 4.1.就地改值 比如: vec <- c(0,0,0,0,0,0,0) vec[1]<-100 #vec向量的第一个值就变为100 ####对于数据框的改值的方法,如下面的 ...

  4. Vue面试专题(未完)

    1.谈一下你对MVVM原理的理解 传统的 MVC 指的是,用户操作会请求服务端路由,路由会调用对应的控制器来处理,控制器会获取数 据.将结果返回给前端,页面重新渲染.   MVVM :传统的前端会将数 ...

  5. 前端必须知道的 Nginx 知识

    Nginx一直跟我们息息相关,它既可以作为Web 服务器,也可以作为负载均衡服务器,具备高性能.高并发连接等. 1.负载均衡 当一个应用单位时间内访问量激增,服务器的带宽及性能受到影响, 影响大到自身 ...

  6. Shell脚本的条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  7. AOP与IOC的概念

    AOP与IOC的概念(即spring的核心) a) IOC:Spring是开源框架,使用框架可以使我们减少工作量,提高工作效率并且它是分层结构,即相对应的层处理对应的业务逻辑,减少代码的耦合度.而sp ...

  8. Local Classes in C++

    A class declared inside a function becomes local to that function and is called Local Class in C++. ...

  9. go goroutines 使用小结

    go +方法 就实现了一个并发,但由于环境不同,需要对并发的个数进行限制,限制同一时刻并发的个数,后面称此为"并发限流". 为什么要并发限流? 虽然GO M+P+G的方式号称可以轻 ...

  10. "delete this" in C++

    Ideally delete operator should not be used for this pointer. However, if used, then following points ...