【Paper笔记】Complement Objective Training
论文:《Complement Objective Training》
论文原文链接: version 2
会议:ICLR 2019
Code:Github
观前提示:Paper笔记系列内容可能掺杂笔者的理解以及想法,如表述有误或希望进一步探讨,欢迎评论、私信或通过简介所附的邮箱联系
名词解释
Cross Entropy – 交叉熵
Complement Entropy – 论文提出的补充熵
COT – 论文模型Complement Objective Training的缩写,包含Cross Entropy和Complement Entropy
ground-truth class – 真实类别
complement class / incorrect class – 与真实类别相对,补充/错误类别
softmax – 一种激活函数
对抗性攻击 / 对抗性防御 / 对抗性训练 / 鲁棒性 – 对抗机器学习内容
公式符号解释:
前言
这篇Paper(简称COT)建议与同作者文献 《Improving Adversarial Robustness via Guided Complement Entropy》 (ICCV 2019,简称GCE)配合食用,思路基本一脉相承,侧重点有所不同。
对于本篇,侧重点在于如何在传统 Cross Entropy 的基础上,即最大化 ground-truth 类别的似然性(传统Cross Entropy)的同时,中和 complement 类别的概率。
对于GCE,侧重于在COT的基础上,通过指数项 “guided" term 平衡 Cross Entropy 和提出的 Complement Entropy,以权衡对抗性防御中的 performance & robustness。论文尝试在不引入额外的计算成本(无对抗性训练)也不引入额外的训练程序的前提下,提升模型鲁棒性的同时不降低模型性能。
基本思想
统计学习算法通过优化训练目标来工作,对于训练的主要原则是优化似然性。深度神经网络的热门使用也促进了 cross entropy 这个训练目标的使用。最小化 cross entropy 的本质为最大化不相交 (disjoint) 类的似然性。
- cross entropy:
H(y,y^)=−1N∑i=1NyiT⋅log(y^i)H(y,\hat{y}) = -\frac{1}{N}\sum_{i=1}^{N}y_{i}^{T} \cdot log(\hat{y}_{i})H(y,y^)=−N1i=1∑NyiT⋅log(y^i)
其中,yi∈{0,1}Ky_{i}\in\{0,1\}^{K}yi∈{0,1}K表示第 iii 个样本的one-hot encoded表示,y^i∈[0,1]K\hat{y}_{i}\in[0,1]^{K}y^i∈[0,1]K表示预测概率,NNN表示样本总数
将 cross entropy 作为目标函数训练的目的在于,找到合适的网络参数来最小化 cross entropy 函数( 数学上表示为: θ^=argminθH(y,y^)\hat{\theta} = argmin_{\theta}H(y,\hat{y})θ^=argminθH(y,y^) ) ,使得预测值 y^\hat{y}y^ 与真实标签 yyy 的结果接近。
使用 cross entropy 作为主要目标函数已经比较成功了,但是论文表示使用 cross entropy 仍然有一定局限:cross entropy 主要利用 ground-truth 类别的信息来最大化似然性,而忽略了来自complement(incorrect)类别的信息。也就是说,对于 complement 类别,并没有明确、直接地优化,而是利用 complement 类别与 ground-truth 类别概率和为1,使当 ground-truth 类别预测概率最大化时,间接最小化 complement 类别的预测概率。
解释1: cross entropy 每次只计算了 ground-truth 类对应的标签,而除了 ground-truth 类,complement 类(其他类别)概率由于点积计算都被清零;所以论文认为 cross entropy 忽略了来自 complement 类别的信息
故论文提出猜想,认为利用 complement 类别信息或许可以促进模型性能。论文认为,一种利用来自 complement 类别信息的方法是:最大化 ground-truth 类别的似然性的同时,中和(neutralize)complement 类别的预测概率。故论文提出COT,使得训练过程中的参数 θ\thetaθ 平均地抑制 complement 类别,而不妥协主要的目标:最大化 ground-truth 类别的预测概率。
那么,中和 complement 类别的预测概率是什么意思呢?
图(a)(b)分别表示经过 cross entropy 和COT训练的预测概率。左边虽然能预测出正确类别为 horse,但其他类别的干扰比较大,比如 airplane 的概率是0.243,automobile 的概率为0.213。这意味着图(a)对泛化问题更敏感,且更可能受到对抗性攻击。右边相比左边,可以看到其他 complement 类别的概率都显著变低且近似相等,使得 ground-truth 类别的预测概率显著提高。这就是“中和 complement 类别的预测概率”的直观表示。
需要注意的是:COT 表示 cross entropy 和 complement entropy 同时训练(不是相加,根据论文是分开训练)
可视化理解:
Embedding:在 softmax 操作之前的向量表示。图(a)使用 cross entropy 训练的结果相比,图(b)使用COT训练。相比于图(a),图(b)的每类的类内距离更紧,类间距离更大,边界更为清晰、分离。这样能得到精确、鲁棒性更高的分类结果。
结论贡献
① 从计算机视觉(CV)到自然语言理解(NLU)的广泛实验结果表明:相比于只用 cross entropy,加上 complement objective 对所有任务的最新模型均能进一步提升性能
② 对于 single-step对抗性攻击的鲁棒性更强(关于对抗性防御 / 鲁棒性的内容,可以进一步参考论文GCE)
算法原理
COT在 cross entroy 最大化 ground-truth 类别预测概率 y^g\hat{y}_gy^g 的基础上,同时也最大化 complement objective,以此中和 complement 类别的预测概率。 论文提出 complement entropy 作为 complement objective。
- complement entropy:
C(y^cˉ)=−1N∑i=1N∑j=1,j≠gK(y^ij1−y^ig)log(y^ij1−y^ig)C(\hat{y}_{\bar{c}}) = -\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1,j\neq g}^{K}(\frac{\hat{y}_{ij}}{1-\hat{y}_{ig}})log(\frac{\hat{y}_{ij}}{1-\hat{y}_{ig}})C(y^cˉ)=−N1i=1∑Nj=1,j=g∑K(1−y^igy^ij)log(1−y^igy^ij)
其中,y^ij/(1−y^ig)\hat{y}_{ij}/(1-\hat{y}_{ig})y^ij/(1−y^ig)可以理解为:当 ground-truth 类别 ggg 未发生时,将第 iii 个样本预测为类别 jjj 的预测概率。NNN 表示样本总数,KKK 表述预测类别总数。
数学上,事件概率等概时熵最大(公式结构参考信息熵),所以对 complement entropy 优化,会驱使 y^ij\hat{y}_{ij}y^ij 向 (1−y^ig)/(K−1)(1-\hat{y}_{ig})/(K-1)(1−y^ig)/(K−1)变化。随着类别总数K的增大,它实质上中和了 complement 类别的预测概率。换言之,最大化 complement entropy “拉平”(flatten)了 complement 类别 y^j≠g\hat{y}_{j\neq g}y^j=g 的预测概率。论文认为,当 complement 类别被中和时,神经网络 hθh_{\theta}hθ 将更好,因为 ground-truth 类别概率更高,导致网络预测结果更不可能为错误类别。
解释2: complement 类别代表除 ground-truth 类别之外的所有类别,所以 complement 类别总的预测概率为 1−y^ig1-\hat{y}_{ig}1−y^ig。当对 complement entropy 优化,使其最小。即在训练时,为 complement entropy 前面加个负号实现(这部分论文没明说,但通过后文的 Algorithm 1 可以看出,它在 complement entropy 前面加了个负号)。不考虑负号时,反之需要使 complement entropy 最大。又因为等概信息熵最大,所以希望让 complement 类别的每个类等概,即概率为 (1−y^ig)/(K−1)(1-\hat{y}_{ig})/(K-1)(1−y^ig)/(K−1)
解释3: “拉平”(flatten)这个概念,体现在上图中,相当于 complement 所有类别的预测值趋同且明显变小。
- 用 Complement Entropy 训练
Complement Objective 带来的额外前向和后向传播需要一定的迭代时间。它使总的训练时长实验上看约为原来的1.6倍。
实验
实验部分内容较多,有兴趣可详见上述论文原文链接或Github链接。
思考
论文利用 complement 类别信息的思路感觉可行;如果是顺着中和 complement 类别预测概率的思路,那么是否可以探究将 Cross Entropy 和 Complement Entropy 整合的思路,以此实现 Cross Entropy 的性能进一步提升呢?
GCE那篇中通过 guide term 整合,但也可能有别的思路?
【Paper笔记】Complement Objective Training相关推荐
- 【matcovnet学习笔记】objective,top1error,top5error详解
[matcovnet学习笔记]objective,top1error,top5error详解 排名前1和前5的错误率是衡量某些解决方案成功与否的重要单位 ,要理解这三个概念,关键是要看懂下面这个多类误 ...
- 【paper笔记】Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
科研生活开始了! 精读的第一篇paper 好久没有这么仔细地读一篇paper,以前读都只是知道大概意思就好了,很多细节选择忽略,因为很多时候论文只是需要知道这篇论文在干什么就好了(比如水报告的时候(ˉ ...
- Paper笔记: 《LaVAN: Localized and Visible Adversarial Noise》
论文: http://proceedings.mlr.press/v80/karmon18a/karmon18a.pdf (该论文代码未开源) Motivation 这篇paper聚焦于基于pat ...
- FCOS目标检测 paper笔记
FCOS:Fully Convolutional One-Stage Object Detection是一个anchor free的detector, paper链接 github链接 anchor ...
- impala paper笔记
不生产博客,只是汉化别人的成果 目录 摘要 介绍 用户角度的impala 物理schema设计 sql 支持 架构 state distribution catalog service FRONTEN ...
- IOS学习笔记6—Objective C—Foundation框架
2019独角兽企业重金招聘Python工程师标准>>> 原文:http://blog.csdn.net/tangren03/article/details/7747281 转载于:h ...
- 论文笔记《End-to-End Training of Hybrid CNN-CRF Models for Stereo》用于立体评估的端到端训练的混合CNN-CRF模型
论文作者提供的源码 https://github.com/VLOGroup 摘要: 1. 介绍 2. 相关工作 3. CNN-CRF 模型 3.1 Unary CNN 3.2 Correlation ...
- 【paper笔记】ESAM: Discriminative Domain Adaptation with Non-Displayed Items to Improve Long-Tail
ESAM: Discriminative Domain Adaptation with Non-Displayed Items to Improve Long-Tail Performance 阿里解 ...
- paper笔记 | 城市计算概述(郑宇)
1 城市计算的概念和框架 1.1 城市计算的定义 城市计算是一个通过不断获取.整合和分析城市中多种异构大数据来解决城市所面临的挑战(如环境恶化.交通拥堵.能耗增加.规划落后等)的过程. 1.2 城市计 ...
- Paper笔记: 《Towards Evaluating the Robustness of Neural Networks》(CW攻击)
论文: https://arxiv.org/pdf/1608.04644.pdf?source=post_page 代码:https://github.com/Harry24k/CW-pytorch ...
最新文章
- 115 存至网盘 也有限制?
- Flesch Reading Ease(模拟)
- python竖排文本_Calibre 5.0:高亮、Python 3、竖排文字
- 1.Linux下libevent和memcached安装
- usb3.0 ssd 测试软件,当USB3.0遇上SSD,TB败得移动硬盘盒测试
- 从上千篇论文脱颖而出,支付宝论文凭什么获得WWW2020评委认可?
- 液位系统c语言程序,超声波自动测量物体液位系统的设计
- 头文件定义全局变量_5.2 C++局部变量与全局变量 | 输出局部全局变量
- JAVA Reflection(反射机制)续
- android软件自动启动软件下载,Android编程实现应用程序开机自启动的方法
- java 日志时间格式_java.util.logging.Logger 使用中关于时间格式的问题
- SpriteBuilder切换解决方案以及CCB的修改与保存
- Elasticsearch版本控制理解
- oracle优化distinct,oracle中使用group by优化distinct
- python条形堆积图_Matplotlib堆积条形图
- 管理欲望:领导者的自我觉察与突破
- 在CentOS下运行exe的方法
- 谷歌中国推出10款有趣的小工具
- android通过adb设置以太网共享
- 如火如荼的「云原生」,你了解多少?