批量标准化/[0,1]标准化/[-1,1]标准化

批量标准化/[0,1]标准化/[-1,1]标准化

内容

批量标准化( Batch Normalization )后的变量取值范围及进一步缩放方法如下:


一、批量标准化后的取值范围

  1. 标准化过程

    • 公式

      \[\hat{x} = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}, \quad y = \gamma \hat{x} + \beta \]

      • \(\mu_B, \sigma_B\):当前批次的均值和标准差。
      • \(\gamma, \beta\):可学习的缩放和平移参数。
    • 输出分布:标准化后的 \(\hat{x}\) 近似服从均值为 0、方差为 1 的正态分布( 假设输入数据是正态的 )。
  2. 理论范围

    • 约 68% 的数据在 \([-1, 1]\) 之间( 1σ 区间 )。
    • 约 95% 的数据在 \([-2, 2]\) 之间( 2σ 区间 )。
    • 极端值可能达到 \([-3, 3]\)( 3σ 区间 )。
  3. 实际范围

    • \(\gamma=1, \beta=0\),输出 \(y\) 的范围与 \(\hat{x}\) 一致( 如 [-3, 3] )。
    • \(\gamma\)\(\beta\) 被优化调整,范围可能偏移( 如 \(\gamma=2, \beta=5\) 时,范围可能变为 [2, 8] )。

二、缩放到 [0, 1] 区间

若需将 原始数据 缩放到 [0, 1],需使用 最小-最大归一化( Min-Max Scaling )

\[x_{\text{scaled}} = \frac{x - \min(X)}{\max(X) - \min(X)} \]

  • 示例:若原始数据范围是 [−5, 10],则:

    \[x_{\text{scaled}} = \frac{x + 5}{15} \]

注意事项

  • 若已应用批量标准化,再执行此操作会破坏标准化效果,通常不建议叠加使用。

三、缩放到 [-1, 1] 区间

若需将 原始数据 缩放到 [-1, 1],公式为:

\[x_{\text{scaled}} = 2 \times \frac{x - \min(X)}{\max(X) - \min(X)} - 1 \]

  • 示例:若原始数据范围是 [−5, 10],则:

    \[x_{\text{scaled}} = 2 \times \frac{x + 5}{15} - 1 \]

注意事项

  • 类似地,批量标准化后追加此操作会干扰模型训练的稳定性。

四、批量标准化与缩放的对比

方法 目标 公式 适用范围
批量标准化 稳定训练,加速收敛 $ y = \gamma \frac{x - \mu}{\sigma} + \beta $ 神经网络中间层输入
最小-最大归一化 强制数据到固定区间 $ x_{\text{scaled}} = \frac{x - \min}{\max - \min} $ 输入特征预处理

五、总结

  • 批量标准化后的数据范围:大部分值在 \([-3, 3]\) 之间,具体由 \(\gamma\)\(\beta\) 调整。
  • 缩放到 [0,1] 或 [-1,1]:需使用最小-最大归一化,但应与批量标准化分开使用。
  • 最佳实践:在输入层使用归一化( 如 Min-Max ),在隐藏层使用批量标准化。
posted @ 2025-03-03 01:36  Gold_stein  阅读(71)  评论(0)    收藏  举报