(六)Normalization
why
从图中可以看出,当输入太小或者太大的时候,函数的取值随着输入的变化几乎为0。这样就会发生梯度离散的情况,因此我们很有必要把输入控制在一个小一点的区间内。所以我们通过normalization操作,把输入的值等效变换在一个小一点的区间之内。我们假设变换后的值以0为均值,以 σ \sigma σ为方差,即 N ( 0 , σ 2 ) N(0, \sigma ^2) N(0,σ2)。
应用
我们可以把这种方法应用在图像领域,叫做Image Normalization。我们把输入的像素值等效缩放在[0, 1]中,我们知道在这个区间内计算能很好逼近我们的最优解,所以对我们计算十分有利。
下面我们来看四种normalization:
这里简单介绍下,对于Batch Norm, 他会随着C的不同生成,N,H,W的均值,最后出现的就是不同C在其他三个量上的均值。
简而言之就是,随着C的不断变化,统计蓝色矩形的均值,生成的数的数量和C的值的数量一样。
下面我来看具体的计算过程:
下面是具体的Batch Normalization具体操作:
下面在PyTorch中进行实现:
从上面结果可以看出,使用Batch Normalization后收敛速度更快,并且能够得到更好的解,而且更加稳定。
ization后收敛速度更快,并且能够得到更好的解,而且更加稳定。