gpt4 book ai didi

multidimensional-array - 批量标准化: fixed samples or different samples by dimension?

转载 作者:行者123 更新时间:2023-11-30 09:08:24 27 4
gpt4 key购买 nike

当我读到一篇论文“批量归一化:通过减少内部协变量偏移来加速深度网络训练”时,我想到了一些问题。

论文中写道:

Since m examples from training data can estimate mean and variance of all training data, we use mini-batch to train batch normalization parameters.

我的问题是:

他们是选择 m 个示例,然后同时拟合批标准化参数,还是为每个输入维度选择不同的 m 个示例集?

例如训练集由 x(i) = (x1,x2,...,xn) 组成:n 维对于固定批处理 M = {x(1),x(2),...,x(N)},执行拟合所有 gamma1~gamman beta1~beta.

对比

对于gamma_ibeta_i选择不同批处理M_i = {x(1)_i,...,x(m)_i}

最佳答案

我还没有在交叉验证和数据科学上找到这个问题,所以我只能在这里回答。如有必要,请随意迁移。

使用移动平均值一次计算每个小批量中的所有维度的均值和方差。 TF 中的代码如下所示:

mean, variance = tf.nn.moments(incoming, axis)
update_moving_mean = moving_averages.assign_moving_average(moving_mean, mean, decay)
update_moving_variance = moving_averages.assign_moving_average(moving_variance, variance, decay)
with tf.control_dependencies([update_moving_mean, update_moving_variance]):
return tf.identity(mean), tf.identity(variance)

您不必担心技术细节,具体情况如下:

  • 首先,沿批处理轴计算整个批处理传入均值方差。它们都是向量(更准确地说是张量)。
  • 然后,当前值 moving_meanmoving_variance 通过 assign_moving_average 调用进行更新,该调用基本上计算如下:变量 * 衰减 + 值*(1 - 衰减)

每次执行batchnorm时,它都会知道一个当前批处理和之前批处理的一些统计信息。

关于multidimensional-array - 批量标准化: fixed samples or different samples by dimension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46501088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com