DIFFERENTIABLE LEARNING-TO-NORMALIZE VIA SWITCHABLE NORMALIZATION(SN 可微分学习的自适配归一化)

可交换的归一化方法

这是根据不同作者写的以及我个人的理解做出的总结,只是方便我个人下次阅读,如有侵权,请联系我删除。

论文参考:https://zhuanlan.zhihu.com/p/39296570

论文参考:http://www.sohu.com/a/241640030_395209

代码:https://github.com/switchablenorms/Switchable-Normalization(pytorch)

代码:https://github.com/taki0112/Switchable_Normalization-Tensorflow(tensorflow,这份代码我个人觉得有问题,他应该是能实现,但是并没有采用paper中减少计算量的方法)

我之前写的关于GN的,也有介绍其他三种归一(规范)化方法:https://blog.csdn.net/qq_33266320/article/details/79719858

目前针对不同任务提出的主要的规范化技术包括批量规范化,层规范化,实例规范化,组规范化。该论文(Switchable Normalization(SN))的目的就是为了让网络自己通过学习选择任务所适合的最好的规范化方法。

注:一般的任务所有层都用同一种normalization,SN可以学到不同层用不同的normalization

四种Normalization:

BatchNorm是沿着所有样本的同一个通道计算,它首先应用在图像分类任务中,有助于提高收敛速度和泛化性

Layer Norm是对单个样本的特征进行计算,它首先应用在RNN中,使得RNN的优化更容易

Instance Norm是对每个样本的每个通道计算,首先应用在风格转换任务上,基于它可以解决任意风格的转换的问题

Group Norm与Layer Norm、Instance Norm有些相似,我觉得是两者之间取了个适当的值,也就是把LN比IN多的C分了组,它解决了Batch Norm对于批量大小的依赖问题

https://blog.csdn.net/qq_33266320/article/details/79719858我之前在看GN时候有具体介绍。

SN优点和四种的缺点:

SN相比其他正常化有着独特的优势。

相比于BN对批量大小的依赖较大,特别在较小的批量大时,BN效果会显着下降,SN则对批量大小足够鲁棒,通过动态调节各种归一化的权值,减小BN的影响,使用IN和LN进行互补;

另外针对不同任务,SN可以自适应不同的任务,通过学习选择与任务合适的权值,在不同层也可以使用不同的权值,拓展了单个结构使用同一种标准化的方式。

SN方法:(来源于https://zhuanlan.zhihu.com/p/39296570)

Switchable Normalization(SN)统一了实例归一化Instance Normalization(IN),层归一化Layer Normalization(LN),和批归一化Batch Normalization(BN)的各种操作。假设一个卷积神经网络(CNN)的一个隐含卷积层的输入数据可表示为具有四个维度的特征图,  。这里每个维度分别代表样本数目(minibatch size),通道数目(number of channels),通道的高(height),和通道的宽(width)。假设每一个像素表示为  ,这里  为上述四个维度的下标。SN对  进行归一化操作,并输出归一化后的像素值  。SN的计算公式如下:

上述定义与BN,IN,和LN的定义相似。他们都学习了缩放系数  和偏移系数  。主要的区别在于SN的统计信息(即均值  和方差  ),不像IN只是在一个通道中计算的,也不像LN只是在一个层中计算,而是在一个集合  当中选择合适的归一化方法来加权平均的。这个集合定义为  。  和  则为相应统计量对应的权重系数。下图直观的展示了SN的基本原理

图1 自适配归一化图形解释

图1为SN的直观图形解释。SN中每个样本每个通道(  )的均值和方差,由BN、IN、LN三种不同统计方法计算得到的均值和方差共同决定。

在SN中,均值的加权系数  的计算方法如下:

 为三个维度统计量对应的参数。为了与网络参数(如卷积核)区分,这些参数称为控制参数。这些控制参数均初始为1,在反向传播时进行优化学习。该计算公式即利用softmax函数对优化参数  进行归一化,计算统计量最终的加权系数  。因此,所有加权系数  的和为1,每个加权系数  的值都在0和1之间。类似的,  可以由另外的三个参数  ,  ,和 计算得出,且  ,  。因此,相对于BN,SN只额外增加了  ,  ,  和  ,  ,  6个控制参数。

注:       ,  ,  是关于均值的统计量对应的参数

 ,  ,  是关于方差的统计量对应的参数

DIFFERENTIABLE LEARNING-TO-NORMALIZE VIA SWITCHABLE NORMALIZATION(SN 可微分学习的自适配归一化)相关推荐

  1. 深度剖析 | SN 可微分学习的自适配归一化 (Switchable Normalization)

    补充:NIPS 2018 | MIT新研究参透批归一化原理 根据最新的研究,BN层的成功和协方差什么的没有关联!证明这种层输入分布稳定性与 BatchNorm 的成功几乎没有关系.相反,我们发现 Ba ...

  2. (转载)深度剖析 | 可微分学习的自适配归一化 (Switchable Normalization)

    深度剖析 | 可微分学习的自适配归一化 (Switchable Normalization) 作者:罗平.任家敏.彭章琳 编写:吴凌云.张瑞茂.邵文琪.王新江 转自:知乎.原论文参考arXiv:180 ...

  3. 「Deep Learning」Note on Switchable Normalization

    QQ Group: 428014259 Tencent E-mail:403568338@qq.com http://blog.csdn.net/dgyuanshaofeng/article/deta ...

  4. Switchable Normalization

    Switchable Normalization BN 会对训练过程产生更重要的影响:它使优化解空间更加平滑了,这种平滑使梯度更具有可预测性和稳定性,从而使训练过程更快. Minibatch 对 BN ...

  5. Group Normalization(BN、LN、IN、GN) Switchable Normalization Weight Standardization

    BN BN的作用 为了对隐含层进行归一化操作.对于每个隐层神经元,把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的比较标准的正态分布,使得非线性变换函数的输入值落 ...

  6. Differentiable Learning of Logical Rules for Knowledge Base Reasoning

    Differentiable Learning of Logical Rules for Knowledge Base Reasoning 来源 背景 Motivation 模型 实验 代码 来源 2 ...

  7. Deep Learning论文笔记之(一)K-means特征学习

    Deep Learning论文笔记之(一)K-means特征学习 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

  8. opencv学习-011-图像像素归一化(normalize)

    opencv学习-011-图像像素归一化(normalize) #include <opencv2/opencv.hpp> #include <iostream>using n ...

  9. 《Deep Learning Techniques for Music Generation – A Survey》深度学习用于音乐生成——书籍阅读笔记(一)Chapter 1

    <Deep Learning Techniques for Music Generation – A Survey>深度学习用于音乐生成--书籍阅读笔记(一)Chapter 1 关于这本书 ...

最新文章

  1. automake生成静态库文件_动手 | 奶奶级的动态库入门
  2. 工程狮爸爸如何准备儿童节礼物?
  3. PowerDesigner pdm生成Access的方法
  4. 消息发送和接收基本应用
  5. android悬浮动态权限,Android 获取判断是否有悬浮窗权限的方法
  6. 网络IO之阻塞、非阻塞、同步、异步总结
  7. logstash收集java日志,多行合并成一行
  8. c语言 socket 断开自动连接,如何优雅地断开TCP连接?
  9. 自定义Hibernate Validator规则注解
  10. Navicat for SQLite 10.1.3 注册码
  11. Leetcode杯 第三题解答(动态规划)
  12. mysql bin log 255_解析MYSQL BINLOG 二进制格式(4)--TABLE_MAP_EVENT
  13. CSS按钮动画(二)
  14. 端到端车道线检测_如何使用Yolov5创建端到端对象检测器?
  15. 如不指定存储类型c语言,总结C语言的五种存储类型
  16. QQ密技68招(超强)
  17. 如何使用jmeter录制脚本
  18. python通过pypiwin32操作PPT
  19. 2011年10月14日22:40,“你在哪(where are you)”诞生
  20. 75行代码 完美实现图片完整展示 flex 横向瀑布流布局

热门文章

  1. webpack与Source Map
  2. Java8 的 Stream简单教程
  3. wex5 教程 之 图文讲解 wex5集成HTML5 视频播放器
  4. 单片机与STM32问题及解决
  5. 按照“年.月.日”的格式输入,计算输入的日期是该年的哪一天并输出。
  6. linux串口卡驱动下载,pci串口卡万能驱动下载_pci串口卡万能驱动1.1 - 系统之家
  7. ExtJs 4.1.1 API离线浏览
  8. qt下使用opencv读取视频
  9. 常见的手机病毒传播方式
  10. Arcgis软件应用(一)专题地图的编制