论文回顾:Batch Augmentation,在批次中进行数据扩充可以减少训练时间并提高泛化能力

Batch Augmentation(BA):提出使用不同的数据增强在同一批次中复制样本实例,通过批次内的增强在达到相同准确性的前提下减少了SGD 更新次数,还可以提高泛化能力。

Batch Augmentation (BA)

没有 BA 的普通SGD:

一个具有损失函数 ℓ (w, xn, yn) 的模型, {xn, yn} 表示目标对的数据集 ,n 从 1 到 N(是 N 个数据样本),其中 xn ∈ X 和 T:X → X是应用于每个示例的一些数据增强变换,例如,图像的随机裁剪。每个批次的通用训练过程包括以下更新规则(为简单起见,这里使用具有学习率 η 和批次大小 B 的 普通SGD):

其中 k (t) 是从 [N / B] = {1,…, N / B} 中采样的,B (t) 是批次 t 中的样本集。

SGD和 BA:

BA 建议通过应用变换 Ti 来引入同一输入样本的 M 个多个实例,这里用下标 i ∈ [M] ,以表示每个变换的差异。这样学习规则则变为如下公式:

其中 M·B 是由 B 个样本通过 M 个不同的变换进行扩充并进行合并后的一个批次数据,反向传播更新的规则可以通过评估整个 M·B 批次或通过累积原始梯度计算的 M 个实例来计算。使用大批量更新作为批量扩充的一部分不会改变每个 epoch 执行的 SGD 迭代次数。

BA 也可用于在中间层上进行转换。例如,可以使用常见的 Dropout 在给定层中生成同一样本的多个实例。带有 Dropout 的 BA 可以应用于语言任务或机器翻译任务。

实验结果

完整论文:

https://www.overfit.cn/post/8c40c9c388664099af15cfe57cd9e0ba

posted @   deephub  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-03-26 超参数调整实战:scikit-learn配合XGBoost的竞赛top20策略
点击右上角即可分享
微信分享提示