Pang T., Yang X., Dong Y., Xu K., Su H., Zhu J. Boosting Adversarial Training with Hypersphere Embedding. arXiv preprint arXIv 2002.08619

在最后一层, 对weight和features都进行normalize有助于加强对抗训练.

主要内容

一般的神经网络可以用下式表示:

\[f(x) = \mathbb{S}(W^Tz + b),
\]

其中\(z=z(x;\omega)\)是encoder部分提取的特征, \(W=(W_1, W_2,\ldots, W_L), b\)分别是最后的权重和偏置, \(\mathbb{S}\)表示softmax.

hypersphere embedding (HE):

\[\widetilde{W}_l = \frac{\widetilde{W}_l}{\|W_l\|}, \widetilde{z} = \frac{z}{\|z\|} \\
\widetilde{f}(x) = \mathbb{S}(\widetilde{W}^T\widetilde{z})=\mathbb{S}(\cos\theta).
\]

进一步添加一些margin:

\[\mathcal{L}_{ce}^m (\widetilde{f}(x), y) = -1_y^T \log \mathbb{S}(s\cdot (\cos\theta -m \cdot \mathbb{1}_y)).
\]

为什么要这么做呢? 作者觉得, 生成对抗样本最有效的途径是旋转角度, 即图中的蓝线. 如果你不限制\(z\)或者\(W\), 那么梯度会同时在模的大小的上下功夫, 这并不高效.

代码

原文代码

最新文章

  1. javascript中函数的3个高级技巧
  2. 读深入了解c++内核对象模型小结(1/3/4)
  3. Bootstrap – 1.认识
  4. C++ 文件读取
  5. 149. Max Points on a Line *HARD* 求点集中在一条直线上的最多点数
  6. JSP如何在servlet将一个数据模型对象传递给jsp页面
  7. linux命令(12)uniq去重
  8. file_get_contents函数和curl函数不能用
  9. Swift 算法实战之路:基本语法与技巧
  10. C# 通过扩展WebBrowser捕获网络连接错误信息
  11. mysql 中文字段排序( UTF8按拼音首字母排序)
  12. 2017ecjtu-summer training #2 POJ2503
  13. AngularJS复习------表单验证
  14. Spring Kafka和Spring Boot整合实现消息发送与消费简单案例
  15. 【BZOJ1013】【JSOI2008】球形空间产生器 高斯消元
  16. php算法题
  17. 初学lua --lua嵌入c++的一个问题(初始化lua出错,版本问题)
  18. 浅谈EM算法的两个理解角度
  19. svn忽略文件后缀
  20. HDU 3068 最长回文 manacher 算法,基本上是O(n)复杂度

热门文章

  1. above, abrupt
  2. Linux 内存泄漏 valgrind
  3. 大数据学习day16------第三阶段-----scala04--------1. 模式匹配和样例类 2 Akka通信框架
  4. Android权限级别(protectionLevel)
  5. dbeaver可视化工具-连接clickhouse
  6. Javaj基础知识runtime error
  7. spring生成EntityManagerFactory的三种方式
  8. Servlet(4):一个简单的注册页面
  9. 赋能开发:捷码携手达内教育打造IT职业教育新生态
  10. 代码仓库gogs的基本配置使用