原文:https://www.cnblogs.com/luxiao/p/5534393.html
对于CNN输入的数据,常见的有三种处理方式:
1.Mean subtraction. 将数据的每一维特征都减去平均值。在numpy 中 X -= np.mean(X, axis = 0)
2.Normalization 归一化数据,使数据在相同尺度。 在numpy 中 X /= np.std(X, axis = 0)
3. PCA and Whitening. 首先均值化数据,然后求协方差矩阵。
X -= np.mean(X, axis = 0) //求均值
cov = np.dot( X.T, X) / X.shape[0] // 求协方差矩阵
U,S,V = np.linalg.svd(cov) //奇异值分解,其中 U 为特征向量,S为奇异值分解向量为特征向量的平方
Xrot = np.dot(X, U) //去除数据相关性
Xrot_reduced = np.dot(X, U[:,:100]) 降维到 100 维
Xwhite = Xrot / np. sqrt(s + 1e-5) //白化数据 1e-5 为防止除0
可视化数据:例子为CIFAR-10 images
左边第一张图片为CIFAR-10 中的49张图片(每张图片有3072个特征),第二张图片为3072特征向量中的前144个特征,第三张图片为通过PCA降维降到144维,使用的是图二中的前144维,第四张图片为白化后的图片。
常见的数据处理是 Mean substraction 和 Normalization.