理论知识:UFLDL数据预处理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html
数据预处理是深度学习中非常重要的一步!如果说原始数据的获得,是深度学习中最重要的一步,那么获得原始数据之后对它的预处理更是重要的一部分。
1.数据预处理的方法:
①数据归一化:
简单缩放:对数据的每一个维度的值进行重新调节,使其在 [0,1]或[ − 1,1] 的区间内
逐样本均值消减:在每个样本上减去数据的统计平均值,用于平稳的数据,对图像一般只用在灰度图上。
特征标准化:使数据的每一个维度具有零均值和单位方差。首先计算每一个维度上数据的均值(使用全体数据计算),之后在每一个维度上都减去该均值,然后在数据的每一维度上除以该维度上数据的标准差。最常用!
②白化:PCA白化、ZCA白化。重点是规则化项 epsilon的选择!
如果 epsilon 值过低,白化后的数据会显得噪声很大;相反,如果 epsilon 值过高,白化后的数据与原始数据相比就过于模糊。
epsilon的选择方法:
a.以图形方式画出数据的特征值;b.选取大于大多数较小的、反映数据中噪声的特征值作为 epsilon 。
2.具体怎么调节epsilon?没搞懂,要是有个Exercise就好了
2.预处理时,什么时候该进行逐样本均值消减(即:单独每个样本0均值化,而不是用所有样本每一维度0均值化)?
在数据的每个维度的统计性质是一样的时候。对于图像来说就是,对图像的照度并不感兴趣,而更多地关注其内容,这时对每个数据点移除像素的均值是有意义的,这时可以逐样本均值消减,它一般只适用于灰度图。
注意:彩色图像不能“逐样本均值消减”,它的归一化方法及原因见Deep Learning 九_深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程),即:“每一维0均值化”,进行预处理。