深度学习数据预处理

深度学习数据预处理

1.常见数据预处理方式:(红色的线指出各维度的数值范围)

data_process1

均值减法:对数据中每个独立特征减去均值,集合上理解为:在每个维度上,都将数据云的中心迁移到原点

归一化:将所有维度都做归一化:

第一种做法:先对数据做零中心化处理,然后每个维度都除以标准差
第二种做法:每个维度都做归一化,使得每个维度最大和最小值都是 1 和 -1
PCA 降维:取得数据的主成分,可以对数据去除相关性

白化whitening:先对数据进行旋转(旋转的矩阵就是 SVD 分解中的 U矩阵),然后对每个维度除以特征值(为防止分母为0,通常加一个很小的值作为平滑系数)来对数值范围进行归一化

如果数据服从多变量的高斯分布,则白化之后,数据的分布是一个均值为零,且协方差相等的矩阵
该变换的缺点是:可能会放大数据中的噪声。因为它将所有维度都拉伸到相同的维度,这包括了那些大多数是噪声的维度。这个问题可以采用更强的平滑系数来解决
data_process2

实际在神经网络中,并不会采用 PCA 和白化。

2.任何预处理策略都只能在训练集的数据上进行,然后再应用到验证集或测试集上。

如数据均值:首先分成训练集、验证集、测试集,从训练集中求数据的均值。然后训练集、验证集、测试集中的数据减去这个均值。 而不是减去测试集均值或者验证集均值

3.激活函数:当前推荐使用 ReLU 激活函数

4.Batch Normalization:让数据在通过激活函数之前,添加一个 batch normalization

你可能感兴趣的:(深度学习)