Scalable Methods for 8-bit Training of Neural Networks

Banner R., Hubara I., Hoffer E. and Soudry D. Scalable methods for 8-bit training of neural networks. NeurIPS, 2018.

本文针对 Batch Norm 模块在低精度 (8-bit) 的情况下进行一个合适的改进.

Range Batch Normalization

  • 对于一个 n×d 的输入 x=(x(1),x(2),,x(d)), Batch Norm 模块 normalize 每个维度:

    (1)x^d=x(d)μdVar[x(d)],

    其中 μdx(d) 上的平均, Var[x(d)]=1nx(d)μd22.

  • 容易发现, Var[x(d)] 这一项涉及平方和, 在低精度的情况下很容易导致数值不稳定. 因此, 本文希望提出一个 Range BN 模块来实现低精度下的一个鲁棒模拟:

    (2)x^d=x(d)μdC(n)range(x(d)μd),

    其中 range(x)=max(x)min(x), C(n)=1/2ln(n).

  • 我们来解释为什么这么做:

    1. 首先, 如果 x 服从高斯分布, 我们有

      0.23σln(n)E[max(x(d)μd)]2σln(n).

    2. 根据, 如果 x 关于 0 对称, 我们有 E[max(x)]=E[min(x)], 我们有

      0.23σln(n)E[min(x(d)μd)]2σln(n).

    3. 上面二式相加可得:

      0.325σC(n)range(x(d)μd)2σ.

  • 因此, (2) 可以作为 (1) 的有效的稳定的模拟.

代码

[official-code]

posted @   馒头and花卷  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示