让我们通过一个简单的例子来演示批归一化(batch normalization)和层归一化(layer normalization)的计算过程。

假设我们有一个包含4个样本的小批量输入x,维度为2。我们将使用这个例子来计算输入x的批归一化和层归一化结果。

输入x = [[1, 2], [3, 4], [5, 6], [7, 8]]

  1. 批归一化(Batch Normalization)计算过程: a. 计算均值 mean 和方差 variance: mean = [ (1+3+5+7)/4, (2+4+6+8)/4 ] = [4, 5] variance = [ ((1-4)^2+(3-4)^2+(5-4)^2+(7-4)^2)/4, ((2-5)^2+(4-5)^2+(6-5)^2+(8-5)^2)/4 ] = [6, 6] b. 进行归一化计算: epsilon = 1e-8 (一个极小的常数,用于数值稳定性) gamma = [1, 1] (可学习的缩放参数) beta = [0, 0] (可学习的偏移参数) y = [ [(1-4)/sqrt(6+1e-8)*1+0, (2-5)/sqrt(6+1e-8)*1+0], [(3-4)/sqrt(6+1e-8)*1+0, (4-5)/sqrt(6+1e-8)*1+0], [(5-4)/sqrt(6+1e-8)*1+0, (6-5)/sqrt(6+1e-8)*1+0], [(7-4)/sqrt(6+1e-8)*1+0, (8-5)/sqrt(6+1e-8)*1+0] ] = [ [-1.63299316, -1.63299316], [ 0. , 0.], [ 1.63299316, 1.63299316], [ 3.26598632, 3.26598632] ]

  2. 层归一化(Layer Normalization)计算过程: a. 计算均值 mean 和方差 variance: mean = [ (1+3+5+7)/4, (2+4+6+8)/4 ] = [4, 5] variance = [ ((1-4)^2+(2-4)^2+(3-4)^2+(4-4)^2)/4, ((5-5)^2+(6-5)^2+(7-5)^2+(8-5)^2)/4 ] = [2.5, 2.5] b. 进行归一化计算: epsilon = 1e-8 (一个极小的常数,用于数值稳定性) gamma = [1, 1] (可学习的缩放参数) beta = [0, 0] (可学习的偏移参数) y = [ [(1-4)/sqrt(2.5+1e-8)*1+0, (2-5)/sqrt(2.5+1e-8)*1+0], [(3-4)/sqrt(2.5+1e-8)*1+0, (4-5)/sqrt(2.5+1e-8)*1+0], [(5-4)/sqrt(2.5+1e-8)*1+0, (6-5)/sqrt(2.5+1e-8)*1+0], [(7-4)/sqrt(2.5+1e-8)*1+0, (8-5)/sqrt(2.5+1e-8)*1+0] ] = [ [-1.73205081, -1.73205081], [-1.73205081, -1.73205081], [ 1.73205081, 1.73205081], [ 1.73205081, 1.73205081] ]

以上就是批归一化和层归一化在给定输入样本时的计算过程。实际应用中,这些计算通常是在神经网络的前向传播过程中进行的,以便归一化输入数据并提高网络的训练效果。

批归一化和层归一化计算过程详解:实例演示

原文地址: https://www.cveoy.top/t/topic/bwJf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录