数据在进入神经网络之前,都要进行数据预处理,数据标准化是数据预处理之一,方式是将数据减去均值,再除以方差:
X
=
X
−
m
e
a
n
_
v
a
l
u
e
X = X - mean\_value
X=X−mean_value
X
=
X
/
s
t
d
_
v
a
l
u
e
X = X/std\_value
X=X/std_value
可以这样理解这种处理方式:
减去均值:数据进入卷积神经网络,提取特征,然后用提取的特征进行分类和位置回归,提取的特征决定了分类和位置回归的准确性,提取的特征要能够代表每个类别的特点,因此神经网络更关注的是类别之间的差异性,并不是看图像的绝对值,例如图像很亮,图像很暗之类的,为了突出差异,所有输入的图像都要减去平均值,平均值是整个数据的平均亮度,形状不一样的图,在某个位置上比其他图亮一些,另外一个位置则比其他要暗一些,这个就是它的特征,这些差异传入神经网络,帮助网络来判断。
除以方差:输入神经网络的图像,每个像素值都可以看成是一个特征,在某些位置上的像素值的范围比另外一些位置的像素值的范围大,比如有些地方黑黑的,它的值在0的范围晃动,另外一些地方有些黑有些白,它是在0到255之间晃动,如果不做这个处理,这些特征输入到神经网络中,有些地方变化大,有些地方变化小,变化大的权重比较大,对网络的影响比较大,但是我们在做特征提取的时候,更希望网络关注的是整个图像的变化,而不是某个局部变化大的地方来影响它的输出。如果除以方差,它的效果是所有像素的取值范围,例如在-1到1之间。
数据标准化使网络更容易收敛, 更快收敛,对识别率有好处。