This is defy_odd's blog

人在有闲的时候,才最像一个人 —— 梁实秋

GPS


Greedy Policy Search: A Simple Baseline for Learnable Test-Time Augmentation | Semantic Scholar

SamsungLabs/gps-augment: Simple but high-performing method for learning a policy of test-time augmentation (github.com)

在一个已经训练好的网络上将测试数据增广,利用这些数据来测量网络的不确定性

GPS(greedy policy search):a simple algorithm that learns a policy for test-time data augmentation based on the predictive performance on a validation set.

一个简单的算法,根据验证集的预测性能来学习测试时间数据增强的策略。

In an ablation study, we show that optimizing the calibrated log-likelihood**(优化校准的对数似然) (Ashukha et al., 2020) is a crucial part of the policy search algorithm, while the default objectives—accuracy and loglikelihood—lead to a significant drop in the final performance.**

定义TTA policy为一系列子政策的集合,每个子政策又包含Ns个连续的图片变换。

步骤:

1、 先用CIFAR10数据集训练VGG模型,并用randaugment增广数据

2、 将这些增广好的数据进行预测处理并选取其中的一部分作为备选池。本文共选取1101个子政策

3、 用校准的对数似然来评价,选择让可以在聚合预测时提供最大提升的子政策进入pool中

Prediction通过求不同子政策的平均得到

GPS的核心算法(利用贪心和校准的对数似然)

评判标准:校准的对数似然(对数似然加上temperature scaling)

GPS是一个学习型(learnable)的策略,它在过程中不断选择好的东西放到pool中

域内的表现不错,但是还可以加上聚合来加强表现。

原本的指标(metric)是accuracy和log-likelihood。但是LL可能会误把好模型忽略(因为刚好无法校准)但可以用温度缩放来调整回来。cLL可以得到更好的M

领域转移的健壮性:CIFAR10-C, CIFAR-100-C and ImageNet-C datasets with 15 corruptions C from groups noise, blur, weather and digital.(数据)对每个确定的level都计算错误率,对每个corruption都计算平均

一般来看,在干净的验证数据上训练的策略对损坏的数据有很好的效果。(换句话说,在哪里GPS效果都很好) transfer GPS policy 效果在不同的数据集上不错

结合聚合方法效果也不错

在原始的数据增广上也有不错的表现

Reference:

Pytorch格式 .pt .pth .bin .onnx 详解 - 知乎 (zhihu.com)

Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解-CSDN博客

Python—argparse模块_parser.add_argument(‘—data’, type=str, default=’’-CSDN博客

python argparse中action的可选参数store_true的作用_argparse store_true-CSDN博客

伪代码书写规则_伪代码怎么写-CSDN博客(在伪码中,符号∅通常表示空集或空值)

一文搞懂极大似然估计 - 知乎 (zhihu.com)

机器学习最易懂之贝叶斯模型详解与python实现_pytorch实现贝叶斯决策模型-CSDN博客

模型的参数verbose用法详解_verbose参数-CSDN博客

论文中的常见缩写(w.r.t/i.e./et al等)的意思-CSDN博客

深度学习中的优化算法之带Momentum的SGD_momentum sgd-CSDN博客

StratifiedShuffleSplit()函数的详细理解-CSDN博客

Pytorch学习(十三)python中args和*kwargs的用法_pytorch args.-CSDN博客

深度学习之动态调整学习率LR_动态学习率-CSDN博客

PyTorch的nn.Linear()详解_nn.linear()-CSDN博客

model.parameters()的理解与使用-CSDN博客

别再混淆了!model.eval()和torch.no_grad()的区别一次讲清楚-CSDN博客和torch.no_grad()的区别一次讲清楚&extra[utm_source]=vip_chatgpt_common_pc_toolbar&extra[utm_medium]=)

机器学习之K折交叉验证 - 知乎 (zhihu.com)

【机器学习】浅谈 归纳偏置 (Inductive Bias)-CSDN博客

· store_true 是指带触发 action 时为真,不触发则为假, 即默认 False ,传参 则 设置为 True
· store_false 则与之相反

enumerate函数,它可以同时返回列表中的元素和它们的索引

ablation study (消融实验)

一文搞懂什么是ablation study (消融实验) - 知乎 (zhihu.com)
adversarial attacks 对抗攻击 在某些微小影响下会导致巨大偏差

CV||对抗攻击领域综述(adversarial attack) - 知乎 (zhihu.com)

Google开箱即用数据增强RandAugment | NeurIPS 2020 - 知乎 (zhihu.com)

原始的自动数据增强方式,先在一个单独的小数据集代理任务(可以理解成小/子数据集,子任务 )上进行,然后再迁移到更大数据的目标任务中去。作者提出了一种实用的自动数据增强算法RandAugment。该方法无需在子任务上进行搜索验证。但为了减少数据增强的参数搜索空间,作者设计了一种简单的格点搜索(simple grid search)方法以学习/获取一种数据增强的策略。RandAugment只有两个参数:N和M。 其中N为在每次增强时使用N次操作(使用的这N个操作,都是从操作集中等概率抽取的,例如操作集中有14种操作,则每种操作被选中的概率为1/14,每张图像的N次增强中,选到的操作可能是一样的),M为正整数,表示所有操作在应用时,幅度都为M(旋转多少)

用于数据增广