随机权值平均(Stochastic Weight Averaging,SWA)

随机权值平均只需快速集合集成的一小部分算力,就可以接近其表现。SWA 可以用在任意架构和数据集上,都会有不错的表现。根据论文中的实验,SWA 可以得到我之前提到过的更宽的极小值。在经典认知下,SWA 不算集成,因为在训练的最终阶段你只得到一个模型,但它的表现超过了快照集成,接近 FGE(多个模型取平均)。

左图:W1、W2、W3分别代表3个独立训练的网络,Wswa为其平均值。中图:WSWA 在测试集上的表现超越了SGD。右图:WSWA 在训练时的损失比SGD要高。

结合 WSWA 在测试集上优于 SGD 的表现,这意味着尽管 WSWA 训练时的损失较高,它的泛化性更好。

SWA 的直觉来自以下由经验得到的观察:每个学习率周期得到的局部极小值倾向于堆积在损失平面的低损失值区域的边缘(上图左侧的图形中,褐色区域误差较低,点W1、W2、3分别表示3个独立训练的网络,位于褐色区域的边缘)。对这些点取平均值,可能得到一个宽阔的泛化解,其损失更低(上图左侧图形中的 WSWA)。

下面是 SWA 的工作原理。它只保存两个模型,而不是许多模型的集成:

  1. 第一个模型保存模型权值的平均值(WSWA)。在训练结束后,它将是用于预测的最终模型。
  2. 第二个模型(W)将穿过权值空间,基于周期性学习率规划探索权重空间。

SWA权重更新公式

在每个学习率周期的末尾,第二个模型的当前权重将用来更新第一个模型的权重(公式如上)。因此,在训练阶段,只需训练一个模型,并在内存中储存两个模型。预测时只需要平均模型,基于其进行预测将比之前描述的集成快很多,因为在那种集成中,你需要使用多个模型进行预测,最后再进行平均。

方法实现:

论文的作者自己提供了一份 PyTorch 的实现 :

timgaripov/swa​github.com

此外,基于 fast.ai 库的 SWA 可见 :

Add Stochastic Weight Averaging by wdhorton · Pull Request #276 · fastai/fastai​github.com

https://zhuanlan.zhihu.com/p/102817180

目标检测之五:随机权值平均(Stochastic Weight Averaging,SWA)---木有看懂相关推荐

  1. 模型泛化技巧“随机权重平均(Stochastic Weight Averaging, SWA)”介绍与Pytorch Lightning的SWA实现讲解

    文章目录 SWA简介 SWA公式 SWA常见参数 Pytorch Lightning的SWA源码分析 SWALR 参考资料 SWA简介 SWA,全程为"Stochastic Weight A ...

  2. 炼丹系列2: Stochastic Weight Averaging (SWA) Exponential Moving Average(EMA)

    这个系列将记录下本人平时在深度学习方面觉得实用的一些trick,可能会包括性能提升和工程优化等方面. 该系列的代码会更新到Github 炼丹系列1: 分层学习率&梯度累积 炼丹系列2: Sto ...

  3. Stochastic Weight Averaging (SWA) 随机权重平均

    文章目录 相关链接 基础 思路 主要内容 概括 SWA图示 SWA算法 LR The Algorithm Batch normalization 在PyTorch中使用swa 最佳实践 Demo 最近 ...

  4. 【机器学习的Tricks】随机权值平均优化器swa

    本文转载自微信公众号[机器学习炼丹术] https://blog.csdn.net/qq_34107425/article/details/107722503 这两天被朋友推荐看了一篇热乎的新型优化器 ...

  5. Stochastic Weight Averaging

    PyTorch从1.6.0版本以后开始支持Stochastic Weight Averaging. That is, after the conventional training of an obj ...

  6. 关于目标检测中bounding box编码和解码时weight参数的理解

    关于目标检测中的Bounding box回归原理网上已经有很多解释的文章了,但是为了更好的阐述我的问题,一开始我还是先简单的过一下边框回归的基本原理,然后解释我在看源码时遇到的一点疑惑,最后分享一下在 ...

  7. SWA(Stochastic Weight Averaging)实验

    有论文说swa能涨分,那么我来实验一下 那么我将在cifar10数据集上进行实验 原理 论文地址:https://arxiv.org/pdf/2012.12645.pdf SGD倾向于收敛到loss的 ...

  8. php大作业含代码_目标检测 | 目标检测技巧大汇总(含代码与解读)

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 来自 | 知乎作者丨初识CV来源丨https://zhuanlan.zhihu.com/p ...

  9. 目标检测比赛中的tricks集锦

    ↑ 点击蓝字 关注视学算法 作者丨初识CV@知乎 来源丨https://zhuanlan.zhihu.com/p/102817180 编辑丨极市平台 极市导读 本文总结了目标检测比赛中的8点技巧,包含 ...

最新文章

  1. 作业 3 应用分支与循环结构解决问题 统计字符个数
  2. python如何安装scrapy库_python2安装scrapy库报错解决方案
  3. selenium - 下拉框操作
  4. 白色flash模块代码_适用于MCU项目的代码框架BabyOS,工程师的好助手!
  5. 给刚开始学习Linux的小白们的福利——资源已经分享,可随时下载
  6. oracle触发器无效且,oracle创建触发器成功但是插值失败
  7. python项目-每日日考系统-数据结构
  8. ios 重复引用 静态库_iOS项目引用静态库文件.a
  9. linux编译ko文件
  10. flask + websocket
  11. 【单片机仿真】(四)寻址方式 — 寄存器寻址与直接寻址
  12. Directshow的视频捕捉
  13. ESP8266开发板刷WI-PWN固件(wifi杀手)教程(详细)
  14. 【论文笔记】Question Answering with Subgraph Embeddings
  15. 二.ARM裸机学习之S5PV210刷机
  16. java如何获取Class类对象
  17. 移动端web总结(二)——微金所项目总结
  18. 暗角教程,如何加镜头晕影暗角效果
  19. 后端程序员学习前端篇(一)
  20. Java项目:在线博客问答系统(java+Springboot+jsp+maven+mysql)

热门文章

  1. 数据分析之R语言基础学习一
  2. OSChina 周二乱弹 ——女王节 教你撩妹新技能
  3. 谁是卧底服务器维护,问道手游8.9每周探案谁是卧底答案分享_蚕豆网新闻
  4. 【WOT】听2015年北京WOT互联网运维与开发者大会随记
  5. Leetcode学习笔记(974. 和可被 K 整除的子数组)
  6. H5网页判断是否安装APP并调起APP
  7. 盘点那些真正能提升工作幸福度的小工具
  8. 计算机网络之计算机网络概述
  9. The Tips - F12开发者页面中英文切换
  10. 【08月02日】A股滚动市盈率PE历史新低排名