【GN】《Group Normalization》

在这里插入图片描述
ECCV-2018
Facebook AI Research
更多论文解读,可参考【Paper Reading】

文章目录

  • 1 Background and Motivation
  • 2 Related Work
  • 3 Advantages / Contributions
  • 4 Method
  • 5 Experiments
    • 5.1 Datasets and Metrics
    • 5.2 Image Classification in ImageNet
    • 5.3 Object Detection and Segmentation in COCO
    • 5.4 Video Classification in Kinetics
  • 6 Conclusion(own) / Future work


1 Background and Motivation

在这里插入图片描述

Batch normalization(BN) 在 batch size 很小的时候,效果下降的比较多,而目标检测或者分割等任务由于输入分辨率比较高,网络偏大时 batch-size 往往比较小,BN 发挥的作用减弱了

作者基于 many classical features like SIFT and HOG are group-wise features and involve group-wise normalization

提出了 Group Normalization,以此来减小小 batch-size 对 normalization 带来的影响

2 Related Work

在这里插入图片描述

  • Normalization
    LRN / BN / LN / IN / WN(weight normalization)
    LN 和 IN 属于 GN 的两个极端, effective for training sequential models (RNN/LSTM) or generative models(GAN),but have limited success in visual recognition
  • Addressing small batches
    Batch Renormalization(batch size 过小也不行)
  • Group-wise computation
    AlexNet / ResNeXt / MobileNet / Xception / ShuffleNet

3 Advantages / Contributions

提出 Group Normalization

4 Method

its computation is independent of batch sizes.
在这里插入图片描述

LN, IN, and GN all perform independent computations along the batch axis

GN 的两个极端就是 LN 和 IN

看看公式表达,减均值,除以标准差
在这里插入图片描述
打一巴掌来个糖,学两个参数弥补回来
在这里插入图片描述
i = ( i N , i C , i H , i W ) i = (i_N, i_C,i_H,i_W) i=(iN,iC,iH,iW)

在这里插入图片描述
S i S_i Si is the set of pixels in which the mean and std are computed, and m m m is the size of this set.

ϵ \epsilon ϵ 防止除以 0

BN,某通道下 NHW

在这里插入图片描述
LN,某 batch 下,CHW
在这里插入图片描述
IN,某通道,某 batch 下,HW
在这里插入图片描述
GN,某 batch 下,某组通道
在这里插入图片描述
G G G is the number of groups,默认 32

tensorflow 代码
在这里插入图片描述

5 Experiments

5.1 Datasets and Metrics

ImageNet:top-1 classification error
COCO Detection:mAP
COCO Segmentation:mmAP
Kinetics: accuracy

5.2 Image Classification in ImageNet

(1)Comparison of feature normalization methods

在这里插入图片描述
bs = 32 的时候,train error GN 最低,但是 val error 没有 BN 好,说明泛化性能没有 BN 好

作者的解释

BN’s mean and variance computation introduces uncertainty caused by the stochastic batch sampling, which helps regularization

32 组不知道每组通道数为多少,如果 32 的话, normalization 的数量和 bs = 32 的 BN 是一样的了,区别一个为 batch 轴的 32,一个为 channel 轴 的 32

在这里插入图片描述
bs = 32 的时候,没有BN 好

(2)Small batch sizes

在这里插入图片描述
在这里插入图片描述

bs 比较小的时候,GN 的优势发挥出来了,且 GN 对 bs 不敏感

优势,This will make it possible to train higher capacity models that would be otherwise bottlenecked by memory limitation

(3)Comparison with Batch Renorm (BR)

With a batch size of 4, ResNet-50 trained with BR has an error rate of 26.3%.

BN 27.3%

GN 24.2%

(4)Group division

在这里插入图片描述
对比了下 G 和 channel per group 的不同配置结果

(6)Deeper models

resnet101,32 bs 不如 BN,2 bs 比 BN 好

(7)Results and analysis of VGG models
在这里插入图片描述
conv5_3(the last convolutional layer)

normalization 还是比较重要的,GN 比 BN 效果更好

5.3 Object Detection and Segmentation in COCO

BS 比较小的任务上,属于 GN 的领域

(1)Results of C4 backbone
在这里插入图片描述
主干C4 特征图接分类回归分割头

(2)Results of FPN backbone
在这里插入图片描述
FPN 接分类回归分割头
在这里插入图片描述

long:iterations from 180k to 270k

(3)Training Mask R-CNN from scratch

在这里插入图片描述
对比 table6 的结果看,从头开始训练也是比 BN fine-tune 强的

5.4 Video Classification in Kinetics

在这里插入图片描述
在这里插入图片描述

6 Conclusion(own) / Future work

  • BN 的缺点 BN’s error increases rapidly when the batch size becomes smaller,原因 reducing the batch size can have dramatic impact on the estimated batch statistics
  • GN could be used in place of LN and IN and thus is applicable for sequential or generative models
  • BS 比较大的时候没有 BN 猛,BS 比较小的时候比 BN 猛

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于李雅普诺夫稳定性分析的一阶、二阶系统MATLAB仿真模型

李雅普诺夫稳定性定理 假设系统状态方程: 零状态为其平衡状态,即f(0,t)0 t>t0。如果存在一个具有连续的一阶偏导数的标量函数V (x,t),并且满足下述条件: 1、V (x,t)是正定的; 2、沿状态方程轨线的V (x…

使用 nginx 服务器部署Vue项目

安装nginx 文本代理服务器 centos下载 注意需要root权限 在CentOS服务器上下载Nginx可以通过以下步骤完成: 更新系统软件包列表: yum update 安装EPEL存储库(Extra Packages for Enterprise Linux): yum install…

利用Flexbox和Margin实现智能布局:如何巧妙分配剩余空间,让你的网页设计更上一层楼?

1、演示 2、flex布局 Flex布局是一种用于Web开发的弹性盒子布局模型,它可以让容器内的子元素在空间分配、对齐和排列方面具有更大的灵活性。以下是Flex布局的基本用法: 容器属性: display: flex;:将容器指定为Flex布局。flex-dire…

POP3的要点:查看电子邮件需要知道什么

在您点击阅读时,是否曾想过您是如何如此轻松地查看电子邮件的?对我们来说,这听起来可能只是几秒钟的加载时间,但实际上幕后发生了许多事情。邮局协议(POP3)是一种应用层协议,电子邮件客户端使用…

恒创科技:香港服务器CPU核心数如何选?越多越好吗?

​  谈到 CPU“核心”是完成所有处理的组件,程序能否顺利运行的第一因素是你有多少个核心。但由于不同的计算任务占用不同的资源,所以如果您打算简单地创建小型网站或者其他请求处理数据也不高的业务,那么您的基本型号应该包含 1、2 核已经…

STL库 —— list 的编写

目录 一、成员变量 ​编辑 二、push_back 函数 三、迭代器 iterator 3.1 iterator 结构体 3.2 begin() 与 end() 函数 3.3 iterator 运算符重载 3.4 -> 的重载 3.5 const_iterator 四、测试代码 五、修饰符成员 5.1 insert 函数 5.2 erase 函数 5.3 push 函数…

WordPress关注公众号可见内容插件源码

简介: WordPress公众号引流工具——关注公众号可见内容插件推荐 通过关注微信公众号,获取随机验证码从而获得隐藏文本的访问权限。 插件特点 隐藏内容扫码关注获取验证码 可以作为引流公众号 支持无必须API接口,无备案域名也可以 自定义…

先进电机技术 —— 步进电机控制综述

一、背景 随着自动化技术的发展和精密控制需求的增长,步进电机作为一种重要的执行元件在众多领域展现出了卓越的性能优势。步进电机,又称为步进驱动器或步进马达,是一种能够将电脉冲信号精确转换为角位移或直线位移的特殊电动机。其工作原理…

信息系统项目管理师0044:IT治理方法与标准(3信息系统治理—3.1 IT治理—3.1.4 IT治理方法与标准)

点击查看专栏目录 文章目录 3.1.4 IT治理方法与标准1. ITSS中1T服务治理 3.1.4 IT治理方法与标准 考虑到IT治理对组织战略目标达成的重要性,国内外各类机构持续研究并沉淀IT治理相关的最佳实践方法、定义相关标准,这里面比较典型的是我国信息技术服务标准…

Leetcode算法训练日记 | day18

一、找树左下角的值 1.题目 Leetcode:第 513 题 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出:…

Python:六大数据类型理论与示例

在这篇文章中,我们深入探讨了Python中的六大基本数据类型:数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典…

Hive的分区与排序

一、Hive分区 1.引入: 在大数据中,最常见的一种思想就是分治,我们可以把大的文件切割划分成一个个的小的文件,这样每次操作一个个小的文件就会很容易了,同样的道理,在hive当中也是支持这种思想的&#xff…

UE4 避免布料模拟重置后抖动

问题:每次设置带布料模拟的布料新位置,就会发生突然的抖动 解决办法:给“布料混合权重”或“布料最大距离缩放”K帧,参考数值为0.2—1(红框内的值都试过无法解决)

JVM性能调优——运行时参数

文章目录 1、JVM参数选项类型1.1、标准参数选项1.2、非标准参数选项1.3、非稳定参数选项 2、添加JVM参数的方式3、常用JVM参数选项4、通过Java代码获取JVM参数5、小结 熟悉JVM参数对于系统调优是非常重要的。比如一个高流量的延迟的电子交易平台,它要求的响应时间都…

头歌机器学习实验 第7次实验 局部加权线性回归

任务描述 本关任务:编写一个利用局部加权计算回归系数的小程序。 相关知识 为了完成本关任务,你需要掌握:1.局部加权算法的思想;2.局部加权的核心算法。 局部加权算法的思想 在局部加权算法中 ,我们给待预测点附近…

【mT5多语言翻译】之六——推理:多语言翻译与第三方接口设计

请参考本系列目录:【mT5多语言翻译】之一——实战项目总览 [1] 模型翻译推理 在分别使用全量参数微调和PEFT微调训练完模型之后,我们来测试模型的翻译效果。推理代码如下: # 导入模型 if conf.is_peft:model AutoModelForSeq2SeqLM.from_pr…

为什么需要SOCKS代理?

在数字化时代🌐,随着网络安全威胁的不断演进和增加,保护个人隐私和数据安全成为了互联网用户的一大挑战🛡️。在寻求增强在线安全和隐私的解决方案时,SOCKS代理成为了一个关键的技术工具🔑。本文旨在详细探…

python如何输入多行

Python中的Input()函数在输入时,遇到回车符,那么一次输入就结束了。这不能满足输入多行文本并且行数也不确定的情形,当然输入空行也是允许的。 方法1:利用异常处理机制实现 lines[] while True:try:lines.append(input())except:…

JSON三种数据解析方法

文章目录 一、什么是JSON数据?二、JSON解析方法2.1、原生解析2.2、Gson解析2.3、FastJson解析 四、总结 一、什么是JSON数据? 先看下面,这里有一段JSON数据,我们根据这段数进行讲解: {"paramz": {"fe…

springboot+vue全栈开发【1.准备工作篇】

目录 前言环境配置关于Maven 前言 为了坚持每天写博客所以开了这个系列~~ 环境配置 1.配置java环境,下载jdk,配置环境变量 这一步有很多教程,不赘述了 2.安装idea 关于Maven Maven是一个项目管理工具,可以对java项目进行自动化…