CNN- 数据预处理

原文: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)

 

     CNN- 数据预处理_第1张图片

     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

CNN- 数据预处理_第2张图片

     可视化数据:例子为CIFAR-10  images

CNN- 数据预处理_第3张图片

   左边第一张图片为CIFAR-10 中的49张图片(每张图片有3072个特征),第二张图片为3072特征向量中的前144个特征,第三张图片为通过PCA降维降到144维,使用的是图二中的前144维,第四张图片为白化后的图片。

   常见的数据处理是 Mean substraction 和 Normalization.

你可能感兴趣的:(计算机视觉整理)