权重、偏置、运行均值、运行方差的概念

debug的时候想弄清楚这些乱起八糟的数字到底是什么???

这些数字是深度学习模型中的权重(weights)和偏置(biases)参数。显示的是一个名为 VisualLayer2 的神经网络层的权重和偏置参数。这些参数是通过训练过程学习得到的,用于在模型中进行前向传播计算。
1.权重(weights):

权重是神经网络中连接不同神经元的参数,它们决定了输入信号如何影响输出信号。

VisualLayer2.bm2.weight 和 VisualLayer2.bm2.bias 分别表示该层的权重和偏置

2.偏置(biases):

偏置是加在神经元输出上的一个常数项,用于调整输出的基线。

在截图中,VisualLayer2.bm2.bias 表示该层的偏置。

权重和偏置的具体数值是通过训练过程优化得到的,它们对于模型的预测能力至关重要。通过不断调整这些参数,模型能够学习到输入数据与输出结果之间的复杂关系。

running_varrunning_mean 是在机器学习中,特别是在使用批归一化(Batch Normalization)技术时,用来描述数据分布的两个重要统计量。

1.running_mean(运行均值)

这是对一批数据(或多批数据)的均值的估计,它在训练过程中不断更新。在批归一化中,running_mean 通常用于推理阶段(即模型评估或测试阶段),以提供对训练数据均值的平滑估计。这是因为在推理阶段,我们通常只有一个数据样本(或一个小批量),不足以准确估计均值。

running_mean 通常使用指数加权平均(Exponential Moving Average, EMA)的方法来计算,给予更近期的数据更大的权重。

2.running_var(运行方差)

类似于 running_mean,running_var 是对一批数据(或多批数据)的方差的估计。它在训练过程中同样不断更新,用于推理阶段提供对训练数据方差的平滑估计。

running_var 也通常使用指数加权平均的方法来计算,以反映最近数据的方差。

在批归一化中,running_mean 和 running_var 被用来规范化层的输入,使得输入的分布更加稳定,从而有助于加速训练过程并提高模型的泛化能力。在训练过程中,每个小批量数据的均值和方差用于归一化该批量的数据;而在推理过程中,则使用 running_mean 和 running_var 来进行归一化。