一.结论

  1. Batch Norm一般用于CV领域,而Layer Norm一般用于NLP领域
  2. Batch Norm需要计算全局平均,而Layer Norm不需要计算全局平均

二.Batch Norm

  1. Batch Norm原理:

  • BatchNorm把一个batch中同一通道的所有特征(如上图红色区域)视为一个分布(有几个通道就有几个分布),并将其标准化。这意味着:

    • 不同图片的的同一通道的相对关系是保留的,即不同图片的同一通达的特征是可以比较的
    • 同一图片的不同通道的特征则是失去了可比性
  1. 用于CV领域的解释:

有一些可解释性方面的观点认为,feature的每个通道都对应一种特征(如低维特征的颜色,纹理,亮度等,高维特征的人眼,鸟嘴特征等)。BatchNorm后不同图片的同一通道的特征是可比较的,或者说A图片的纹理特征和B图片的纹理特征是可比较的;而同一图片的不同特征则是失去了可比性,或者说A图片的纹理特征和亮度特征不可比较。这其实是很好理解的,视觉的特征是比较客观的,一张图片是否有人跟一张图片是否有狗这两种特征是独立,即同一图片的不同特征是不需要可比性;而人这种特征模式的定义其实是网络通过比较很多有人的图片,没人的图片得出的,因此不同图片的同一特征需要具有可比性。

三.Layer Norm

  • Layer Norm原理:



    如上图LayerNorm把一个样本的所有词义向量(如上图红色部分)视为一个分布(有几个句子就有几个分布),并将其标准化。这意味着:

    • 同一句子中词义向量(上图中的V1, V2, …, VL)的相对大小是保留的,或者也可以说LayerNorm不改变词义向量的方向,只改变它的模。
    • 不同句子的词义向量则是失去了可比性。
  • 用于NLP领域解释:

    考虑两个句子,“教练,我想打篮球!” 和 “老板,我要一打包子。”。通过比较两个句子中 “打” 的词义我们可以发现,词义并非客观存在的,而是由上下文的语义决定的。因此进行标准化时不应该破坏同一句子中不同词义向量的可比性,而LayerNorm是满足这一点的,BatchNorm则是不满足这一点的。且不同句子的词义特征也不应具有可比性,LayerNorm也是能够把不同句子间的可比性消除。
  • 使用方法:

四.关于计算全局平均的区别

  1. batch norm在测试的阶段,有可能一个一个样本进行预测,此时没有batch的概念,所以需要用训练的时候的全局平均
  2. layer norm在训练和测试都不需要计算全局平均

最新文章

  1. 【Spring】SpringMVC中浅析Date类型数据的传递
  2. windows本地script脚本恶意代码分析(带注释)
  3. Codeforces Round #169 (Div. 2)
  4. ubuntu dpkg 依赖问题处理
  5. 【MySQL】探究之TIMESTAMP
  6. 第 3 章 MySQL 存储引擎简介
  7. 新建搜索bar
  8. 转载------------------关于android的一些技巧
  9. linux 线程笔记
  10. spoj 379
  11. NOIP2010 引水入城
  12. MSSQL 多个表关联更新
  13. 我的第一个REST客户端程序!
  14. FastReport 数据过滤
  15. 关于.net MVC5+EF6 网站部署的问题
  16. 51nod_1490: 多重游戏(树上博弈)
  17. jquery实现简单的搜索
  18. python中的类机制
  19. Beta 冲刺 (5/7)
  20. 【ArcGIS】安装ArcEngine 10的顺序

热门文章

  1. leetcode题解#3:无重复字符的最长子串
  2. 利用kubernetes资源锁完成自己的HA应用
  3. 毕设着急了吧?Python股票数据分析,制作动态柱状图
  4. springboot集成redis集群
  5. CSS 浮动 (二)
  6. WannaRen来袭:螣龙安科带你盘点那些年的勒索病毒
  7. VT-x is not available (VERR_VMX_NO_VMX).无法打开虚拟机,无法新建64位虚拟机
  8. Vue生命周期和MVVM框架
  9. PostgreSQL下的SQL Shell(psql)工具
  10. nginx的高级用法