逐层归一化有哪些方法请结合公式加以综述并说明为什么逐层归一化在深度神经网络的训练中起到了关键作用。
逐层归一化的方法有批归一化(Batch Normalization)、层归一化(Layer Normalization)、实例归一化(Instance Normalization)等。
批归一化的公式为: $$\hat{x}=\frac{x-\mathrm{E}(x)}{\sqrt{\mathrm{Var}(x)+\epsilon}}$$ 其中,$\epsilon$ 是一个极小值,避免分母为零。
层归一化的公式为: $$\hat{x}=\frac{x-\mathrm{E}(x)}{\sqrt{\mathrm{Var}(x)+\epsilon}}$$ 其中,$\mathrm{E}(x)$ 和 $\mathrm{Var}(x)$ 分别是对每个样本的所有特征进行求和和平方和后再求平均数和方差。
实例归一化的公式为: $$\hat{x}=\frac{x-\mathrm{E}(x_i)}{\sqrt{\mathrm{Var}(x_i)+\epsilon}}$$ 其中,$\mathrm{E}(x_i)$ 和 $\mathrm{Var}(x_i)$ 分别是对每个样本的单个特征进行求平均数和方差。
逐层归一化在深度神经网络的训练中起到了关键作用,主要有以下几点原因:
-
加速训练:逐层归一化可以减少网络训练的迭代次数,加速收敛速度。
-
防止梯度消失/爆炸:逐层归一化可以使输入特征保持在一个合理的范围内,防止梯度消失或爆炸。
-
提高泛化能力:逐层归一化可以降低网络对输入数据的敏感性,提高模型的泛化能力。
-
减少过拟合:逐层归一化可以减少网络对训练数据的过拟合,提高模型的泛化能力。
总之,逐层归一化在深度神经网络的训练中起到了关键作用,可以加速训练、防止梯度消失/爆炸、提高泛化能力和减少过拟合等。
原文地址: https://www.cveoy.top/t/topic/bVHF 著作权归作者所有。请勿转载和采集!