数据预处理

From Ufldl

Jump to: navigation, search
 
Line 1: Line 1:
-
初译:@gausschen
 
-
一审:@咖灰茶
 
-
 
-
 
== 概要 ==
== 概要 ==
-
数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果。然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见。在本页中,我们希望能够揭开预处理方法的神秘面纱,同时为预处理数据提供技巧(和标准流程)
+
 
 +
数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果。然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见。在本页中,我们希望能够揭开预处理方法的神秘面纱,同时为预处理数据提供技巧(和标准流程)。
{{quote |
{{quote |
提示:当我们开始处理数据时,首先要做的事是观察数据并获知其特性。本部分将介绍一些通用的技术,在实际中应该针对具体数据选择合适的预处理技术。例如一种标准的预处理方法是对每一个数据点都减去它的均值(也被称为移除直流分量,局部均值消减,消减归一化),这一方法对诸如自然图像这类数据是有效的,但对非平稳的数据则不然。
提示:当我们开始处理数据时,首先要做的事是观察数据并获知其特性。本部分将介绍一些通用的技术,在实际中应该针对具体数据选择合适的预处理技术。例如一种标准的预处理方法是对每一个数据点都减去它的均值(也被称为移除直流分量,局部均值消减,消减归一化),这一方法对诸如自然图像这类数据是有效的,但对非平稳的数据则不然。
}}
}}
 +
== 数据归一化 ==
== 数据归一化 ==
 +
数据预处理中,标准的第一步是数据归一化。虽然这里有一系列可行的方法,但是这一步通常是根据数据的具体情况而明确选择的。特征归一化常用的方法包含如下几种:
数据预处理中,标准的第一步是数据归一化。虽然这里有一系列可行的方法,但是这一步通常是根据数据的具体情况而明确选择的。特征归一化常用的方法包含如下几种:
Line 16: Line 15:
* 逐样本均值消减(也称为移除直流分量)
* 逐样本均值消减(也称为移除直流分量)
* 特征标准化(使数据集中所有特征都具有零均值和单位方差)
* 特征标准化(使数据集中所有特征都具有零均值和单位方差)
 +
=== 简单缩放 ===
=== 简单缩放 ===
-
在简单缩放中,我们的目的是通过对数据的每一个维度的值进行重新调节(这些维度可能是相互独立的),使得最终的数据向量落在<math>[0, 1]</math>或<math>[-1, 1]</math>的区间内(根据数据情况而定)。这对后续的处理十分重要,因为很多''默认''参数(如PCA-白化中的epsilon)都假定数据已被缩放到合理区间。
 
-
'''例子''':在处理自然图像时,我们获得的像素值在<math>[0, 255]</math>区间中,常用的处理是将这些像素值除以255,使它们缩放到<math>[0, 1]</math>中.
+
在简单缩放中,我们的目的是通过对数据的每一个维度的值进行重新调节(这些维度可能是相互独立的),使得最终的数据向量落在 <math>[0, 1]</math>或<math>[-1, 1]</math> 的区间内(根据数据情况而定)。这对后续的处理十分重要,因为很多''默认''参数(如 PCA-白化中的 epsilon)都假定数据已被缩放到合理区间。
 +
 
 +
'''例子:'''在处理自然图像时,我们获得的像素值在 <math>[0, 255]</math> 区间中,常用的处理是将这些像素值除以 255,使它们缩放到 <math>[0, 1]</math> 中.
 +
 
=== 逐样本均值消减 ===
=== 逐样本均值消减 ===
-
【原文】
 
-
If your data is ''stationary'' (i.e., the statistics for each data dimension follow the same distribution), then you might want to consider subtracting the mean-value for each example (computed per-example).
 
-
'''Example:''' In images, this normalization has the property of removing the average brightness (intensity) of the data point. In many cases, we are not interested in the illumination conditions of the image, but more so in the content; removing the average pixel value per data point makes sense here. '''Note:''' While this method is generally used for images, one might want to take more care when applying this to color images. In particular, the stationarity property does not generally apply across pixels in different color channels.
+
如果你的数据是''平稳''的(即数据每一个维度的统计都服从相同分布),那么你可以考虑在每个样本上减去数据的统计平均值(逐样本计算)
-
【初译】
+
'''例子:'''对于图像,这种归一化可以移除图像的平均亮度值 (intensity)。很多情况下我们对图像的照度并不感兴趣,而更多地关注其内容,这时对每个数据点移除像素的均值是有意义的。'''注意:'''虽然该方法广泛地应用于图像,但在处理彩色图像时需要格外小心,具体来说,是因为不同色彩通道中的像素并不都存在平稳特性。
-
如果数据是''平稳''的(数据的每一维都服从相同分布)可以考虑在每个样本上减去均值(每个样本逐一计算)
+
-
'''例子''':对于图像,归一化具有移除数据平均亮度值(密度值)的特性。很多情况下我们对亮度情况并不感兴趣,而是关注其内容,这样去减去像素均值是合理的。值得'''注意'''的是虽然该方法广泛地应用于图像,但在处理彩色图像时需要更加小心,特别是平稳性在不同色彩通道间并不存在。
 
-
【一审】
+
=== 特征标准化 ===
-
如果数据是''平稳''的(即数据每一个维度的统计量都服从相同分布),可以考虑在每个样本上减去该样本的均值(每个样本分别计算)。
+
-
'''例子''':对于图像,归一化可以移除图像的平均亮度值。很多情况下我们对光照情况不感兴趣,而是更关注图像内容,这样减去像素均值是合理的。值得'''注意'''的是虽然该方法广泛地应用于图像,但在处理彩色图像时需要小心,平稳性在不同色彩通道间并不存在(译注:即不同颜色通道具有不同的统计特性)。
+
特征标准化指的是(独立地)使得数据的每一个维度具有零均值和单位方差。这是归一化中最常见的方法并被广泛地使用(例如,在使用支持向量机(SVM)时,特征标准化常被建议用作预处理的一部分)。在实际应用中,特征标准化的具体做法是:首先计算每一个维度上数据的均值(使用全体数据计算),之后在每一个维度上都减去该均值。下一步便是在数据的每一维度上除以该维度上数据的标准差。
-
=== Feature Standardization/特征标准化 ===
+
'''例子''':处理音频数据时,常用 Mel 倒频系数 [http://en.wikipedia.org/wiki/Mel-frequency_cepstrum MFCCs] 来表征数据。然而MFCC特征的第一个分量(表示直流分量)数值太大,常常会掩盖其他分量。这种情况下,为了平衡各个分量的影响,通常对特征的每个分量独立地使用标准化处理。
-
【原文】
+
-
Feature standardization refers to (independently) setting each dimension of the data to have zero-mean and unit-variance. This is the most common method for normalization and is generally used widely (e.g., when working with SVMs, feature standardization is often recommended as a preprocessing step). In practice, one achieves this by first computing the mean of each dimension (across the dataset) and subtracts this from each dimension. Next, each dimension is divided by its standard deviation.  
+
-
'''Example: ''' When working with audio data, it is common to use [http://en.wikipedia.org/wiki/Mel-frequency_cepstrum MFCCs] as the data representation. However, the first component (representing the DC) of the MFCC features often overshadow the other components. Thus, one method to restore balance to the components is to standardize the values in each component independently.
 
-
【初译】
+
== PCA/ZCA白化 ==
-
特征标准化指的是(独立的)使得数据的每一维都是零均值和单位方差的。这是归一化中最常用的方法(如在使用支持向量机时特征标准化常被建议为预处理的一部分)。在实际中,首先计算每一维度均值并在相应维度减除,然后每一维度上除以标准差。
+
-
'''例子''':处理音频数据时,常用[http://en.wikipedia.org/wiki/Mel-frequency_cepstrum MFCCs]来表征数据。然而MFCC特征的第一组件(表示直流)常常会掩盖其他组件。因此一种重新平衡组件的方法是独立的对每一组件进行标准化。
+
在做完简单的归一化后,白化通常会被用来作为接下来的预处理步骤,它会使我们的算法工作得更好。实际上许多深度学习算法都依赖于白化来获得好的特征。
-
【一审】
+
在进行 PCA/ZCA 白化时,首先使特征零均值化是很有必要的,这保证了 <math> \frac{1}{m} \sum_i x^{(i)} = 0 </math>。特别地,这一步需要在计算协方差矩阵前完成。(唯一例外的情况是已经进行了逐样本均值消减,并且数据在各维度上或像素上是平稳的。)
-
特征标准化指的是(独立地)使得数据的每一维具有零均值和单位方差。这是归一化中最常用的方法(通常建议在使用SVM时首先对训练数据做特征标准化预处理)。在实际应用中,特征标准化的具体做法是:首先计算训练集的样本均值,每一个样本都减去该均值,然后在样本的每一维度上除以该维度上的样本标准差。
+
-
'''例子''':处理音频数据时,常用Mel倒频系数[http://en.wikipedia.org/wiki/Mel-frequency_cepstrum MFCCs]来表示数据。然而MFCC特征的第一个分量(表示直流分量)数值太大,常常会掩盖其他分量。这种情况下,为了平衡各个分量的影响,通常对特征的每个分量做标准化处理。
+
接下来在 PCA/ZCA 白化中我们需要选择合适的 <tt>epsilon</tt>(回忆一下,这是规则化项,对数据有低通滤波作用)。 选取合适的 <tt>epsilon</tt> 值对特征学习起着很大作用,下面讨论在两种不同场合下如何选取 <tt>epsilon</tt>:
-
== PCA/ZCA Whitening/PCA/ZCA白化==
+
-
【原文】
+
-
After doing the simple normalizations, whitening is often the next preprocessing step employed that helps make our algorithms work better. In practice, many deep learning algorithms rely on whitening to learn good features.
+
-
In performing PCA/ZCA whitening, it is pertinent to first zero-mean the features (across the dataset) to ensure that <math> \frac{1}{m} \sum_i x^{(i)} = 0 </math>. Specifically, this should be done before computing the covariance matrix. (The only exception is when per-example mean subtraction is performed and the data is stationary across dimensions/pixels.)
 
-
Next, one needs to select the value of <tt>epsilon</tt> to use when performing [[Whitening | PCA/ZCA whitening]] (recall that this was the regularization term that has an effect of ''low-pass filtering'' the data). It turns out that selecting this value can also play an important role for feature learning, we discuss two cases for selecting <tt>epsilon</tt>:
+
=== 基于重构的模型 ===
-
【初译】
+
在基于重构的模型中(包括自编码器,稀疏编码,受限 Boltzman 机(RBM),k-均值(K-Means)),经常倾向于选取合适的 <tt>epsilon</tt> 以使得白化达到低通滤波的效果。(译注:通常认为数据中的高频分量是噪声,低通滤波的作用就是尽可能抑制这些噪声,同时保留有用的信息。在 PCA 等方法中,假设数据的信息主要分布在方差较高的方向,方差较低的方向是噪声(即高频分量),因此后文中 <tt>epsilon</tt> 的选择与特征值有关)。一种检验 <tt>epsilon</tt> 是否合适的方法是用该值对数据进行 ZCA 白化,然后对白化前后的数据进行可视化。如果 <tt>epsilon</tt> 值过低,白化后的数据会显得噪声很大;相反,如果 <tt>epsilon</tt> 值过高,白化后的数据与原始数据相比就过于模糊。一种直观上得到 <tt>epsilon</tt> 大小的方法是以图形方式画出数据的特征值,如下图的例子所示,你可以看到一条"长尾",它对应于数据中的高频噪声部分。你需要选取合适的 <tt>epsilon</tt>,使其能够在很大程度上过滤掉这条"长尾",也就是说,选取的 <tt>epsilon</tt> 应大于大多数较小的、反映数据中噪声的特征值。
-
在做完简单的归一化后,白化通常会被用来作为接下来的预处理步骤来使算法性能更好。在实际中,众多深度学习算法依赖白化获得好的特征。
+
-
当进行PCA/ZCA白化时首先要零均值化特征以保证<math> \frac{1}{m} \sum_i x^{(i)} = 0 </math>。特别的是这需要在计算协方差矩阵前完成(唯一例外的情况是均值消除已经完成且数据在不同维度/像素间是平稳的)。
+
[[File:ZCA_Eigenvalues_Plot.png]]
-
接下来在PCA/ZCA白化中我们需要选择合适的<tt>epsilon</tt>(这是规则化参数,对数据有低通滤波作用)。 选取合适的值对特征学习起着很大作用,我们讨论选取epsilon的两个例子<tt>epsilon</tt>
+
在基于重构的模型中,损失函数有一项是用于惩罚那些与原始输入数据差异较大的重构结果(译注:以自动编码机为例,要求输入数据经过编码和解码之后还能尽可能的还原输入数据)。如果 <tt>epsilon</tt> 太小,白化后的数据中就会包含很多噪声,而模型要拟合这些噪声,以达到很好的重构结果。因此,对于基于重构的模型来说,对原始数据进行低通滤波就显得非常重要。
-
【一审】
+
{{Quote|
-
为了提高算法的性能,在做完简单的归一化之后,经常还要对特征进行白化。实际上许多深度学习算法都依赖于白化以获得好的特征。
+
提示:如果数据已被缩放到合理范围(如<math>[0, 1]</math>),可以从<math>epsilon = 0.01</math>或<math>epsilon = 0.1</math>开始调节<tt>epsilon</tt>。
 +
}}
-
在进行PCA/ZCA白化时,首先要从特征中减去样本均值,使得<math> \frac{1}{m} \sum_i x^{(i)} = 0 </math>。具体来说,这一步要在计算样本协方差之前进行(唯一例外的情况是对样本数据已经执行了分量均值归零操作,并且数据在不同维度之间是平稳的)。
 
-
接下来在PCA/ZCA白化中我们需要选择合适的<tt>epsilon</tt>(这是正则化参数,对数据有低通滤波作用)。 选取合适的<tt>epsilon</tt>值对特征学习起着很大作用,下面讨论两种不同场合下如何选取<tt>epsilon</tt>:
+
=== 基于正交化ICA的模型 ===
-
=== Reconstruction Based Models/基于重构的模型 ===
+
对基于正交化ICA的模型来说,保证输入数据尽可能地白化(即协方差矩阵为单位矩阵)非常重要。这是因为:这类模型需要对学习到的特征做正交化,以解除不同维度之间的相关性(详细内容请参考 [[Independent Component Analysis | ICA ]] 一节)。因此在这种情况下,<tt>epsilon</tt> 要足够小(比如 <math>epsilon = 1e-6</math>)。
-
【原文】
+
-
In models based on reconstruction (including Autoencoders, Sparse Coding, RBMs, k-Means), it is often preferable to set <tt>epsilon</tt> to a value such that low-pass filtering is achieved. One way to check this is to set a value for <tt>epsilon</tt>, run ZCA whitening, and thereafter visualize the data before and after whitening. If the value of epsilon is set too low, the data will look very noisy; conversely, if <tt>epsilon</tt> is set too high, you will see a "blurred" version of the original data. A good way to get a feel for the magnitude of <tt>epsilon</tt> to try is to plot the eigenvalues on a graph. As visible in the example graph below, you may get a "long tail" corresponding to the high frequency noise components. You will want to choose <tt>epsilon</tt> such that most of the "long tail" is filtered out, i.e. choose <tt>epsilon</tt> such that it is greater than most of the small eigenvalues corresponding to the noise.
+
-
【初译】
+
{{Quote|
-
在基于重构的模型中(包括自动编码,稀疏编码,受限Boltzman机,k-均值),<tt>epsilon</tt>通常被设定为达到低通效果的一个值。一种检验该值的方法是进行ZCA白化,再可视化白化前后的数据。如果设定的值过低数据则显得噪声较多,反之则会发现与原始数据相比显得模糊。一个获得尝试的<tt>epsilon</tt>幅度感觉的方法是在图中绘制特征值,如以下样图所示,可见一个长尾对应于高频噪声项,需要选取<tt>epsilon</tt>来过滤掉长尾,可取大于大多数噪声对应的小特征值的<tt>epsilon</tt>。
+
提示:我们也可以在PCA白化过程中同时降低数据的维度。这是一个很好的主意,因为这样可以大大提升算法的速度(减少了运算量和参数数目)。确定要保留的主成分数目有一个经验法则:即所保留的成分的总方差达到总样本方差的 99% 以上。(详细内容请参考[[PCA#Number_of_components_to_retain | PCA ]])
 +
}}
-
【一审】
 
-
在基于重构的方法中(包括:自动编码机,稀疏编码,RBM,K-Means),经常倾向于选取合适的<tt>epsilon</tt>以使得白化达到低通滤波的效果(译注:通常认为数据中的高频分量是噪声,低通滤波的作用就是尽可能抑制这些噪声,同时保留有用的信息。在PCA等方法中,假设数据的信息主要分布在方差较高的方向,方差较低的方向是噪声(即高频分量),因此后文中<tt>epsilon</tt>的选择与特征值有关)。一种检验<tt>epsilon</tt>是否合适的方法是用该值对数据进行ZCA白化,然后画出白化前后的数据。如果<tt>epsilon</tt>太小,白化后的数据就会显得比原始数据噪声大;相反,如果<tt>epsilon</tt>太大,白化后的数据就显得比原始数据模糊。一种直观感觉<tt>epsilon</tt>大小的方法是以图形方式画出特征值,如下图所示,从图中可以看到一条扁平的"长尾"(特征值很小),它对应于数据中的高频噪声部分。合适的<tt>epsilon</tt>能够在很大程度上过滤掉这条"长尾",也就是说,<tt>epsilon</tt>应大于大多数较小的特征值(这些小特征值反映的是数据中的噪声)。
 
-
[[File:ZCA_Eigenvalues_Plot.png]]
+
{{Quote|
 +
注意: 在使用分类框架时,我们应该只基于练集上的数据计算PCA/ZCA白化矩阵。需要保存以下两个参数留待测试集合使用:(a)用于零均值化数据的平均值向量;(b)白化矩阵。测试集需要采用这两组保存的参数来进行相同的预处理。}}
-
【原文】
 
-
In reconstruction based models, the loss function includes a term that penalizes reconstructions that are far from the original inputs. Then, if <tt>epsilon</tt> is set too ''low'', the data will contain a lot of noise which the model will need to reconstruct well. As a result, it is very important for reconstruction based models to have data that has been low-pass filtered.
 
-
【初译】
+
== 大图像 ==
-
在基于重构的模型中,损失函数中会包含一项来惩罚与原数据较大差异的重构。如果<tt>epsilon</tt>太小,数据将包含较多噪声,模型需要重构。因此在基于重构的模型中,对数据低通滤波很重要。
+
-
【一审】
+
对于大图像,采用基于 PCA/ZCA 的白化方法是不切实际的,因为协方差矩阵太大。在这些情况下我们退而使用 1/f 白化方法(更多内容后续再讲)。
-
基于重构的方法的损失函数有一项是用于惩罚那些与原始数据差异较大的重构结果(译注:以自动编码机为例,要求输入数据经过编码和解码之后还能尽可能的还原输入数据)。如果<tt>epsilon</tt>太小,白化后的数据中就会包含很多噪声,而模型要拟合这些噪声,以达到很好的重构结果。因此,对于基于重构的模型来说,对原始数据进行低通滤波就显得非常重要。
+
-
【原文】
 
-
{{Quote|
 
-
Tip: If your data has been scaled reasonably (e.g., to <math>[0, 1]</math>), start with <math>epsilon = 0.01</math> or <math>epsilon = 0.1</math>.
 
-
}}
 
-
【初译】
+
== 标准流程 ==
-
{{Quote|
+
-
提示:如果数据已被缩放到合理范围(如<math>[0, 1]</math>),从<math>epsilon = 0.01</math>或<math>epsilon = 0.1</math>开始调节<tt>epsilon</tt>。
+
-
}}
+
-
【一审】
+
在这一部分中,我们将介绍几种在一些数据集上有良好表现的预处理标准流程.
-
{{Quote|
+
-
如果数据已被缩放到合理范围(如<math>[0, 1]</math>),可以从<math>epsilon = 0.01</math>或<math>epsilon = 0.1</math>开始调节<tt>epsilon</tt>。
+
-
}}
+
-
=== ICA-based Models (with orthogonalization)/基于正交化ICA的模型 ===
 
-
【原文】
 
-
For ICA-based models with orthogonalization, it is ''very'' important for the data to be as close to white (identity covariance) as possible. This is a side-effect of using orthogonalization to decorrelate the features learned (more details in [[Independent Component Analysis | ICA]]). Hence, in this case, you will want to use an <tt>epsilon</tt> that is as small as possible (e.g., <math>epsilon = 1e-6</math>).
 
-
【初译】
+
=== 自然灰度图像 ===
-
对于正交化的基于ICA的模型,数据越接近白化(同协方差)越好,正交化来解相关特征是副作用 (详细内容请参考[[Independent Component Analysis | ICA]]一节)。因此在这种情况下需要采用尽量小的<tt>epsilon</tt>(如<math>epsilon = 1e-6</math>)。
+
-
【一审】
+
灰度图像具有平稳特性,我们通常在第一步对每个数据样本分别做均值消减(即减去直流分量),然后采用 PCA/ZCA 白化处理,其中的 <tt>epsilon</tt> 要足够大以达到低通滤波的效果。
-
对基于正交化ICA的模型来说,保证输入数据尽可能地白化(即协方差矩阵为单位阵)非常重要。这是因为:这类模型需要对学习到的特征做正交化,以解除不同维度之间的相关性(详细内容请参考[[Independent Component Analysis | ICA]]一节)。因此在这种情况下,<tt>epsilon</tt>要足够小(比如<math>epsilon = 1e-6</math>)。
+
-
【原文】
 
-
{{Quote|
 
-
Tip: In PCA whitening, one also has the option of performing dimension reduction while whitening the data. This is usually an excellent idea since it can greatly speed up the algorithms (less computation and less parameters). A simple rule of thumb to choose how many principle components to retain is to keep enough components to have 99% of the variance retained (more details at [[PCA#Number_of_components_to_retain | PCA]])
 
-
}}
 
-
【初译】
+
=== 彩色图像 ===
-
{{Quote|
+
-
提示: 在主成分分析白化中,在白化数据的过程中也可以降低数据维度。这是一个很好的主意,因为这将大大提升算法的速度(更少的运算和更少的参数)。一个选取保留主成分数目的简单规则是使剩余的方差达到99%以上。(详细内容请参考[[PCA#Number_of_components_to_retain | PCA]])
+
-
}}
+
-
【一审】
+
对于彩色图像,色彩通道间并不存在平稳特性。因此我们通常首先对数据进行特征缩放(使像素值位于 <math>[0, 1]</math> 区间),然后使用足够大的 <tt>epsilon</tt> 来做 PCA/ZCA。注意在进行 PCA 变换前需要对特征进行分量均值归零化。
-
{{Quote|
+
 
-
提示:我们可以在PCA白化过程中同时降低数据的维度。这是一个很好的主意,因为这样可以大大提升算法的速度(减少了运算量和参数数目)。确定要保留的主成分数目有一个简单的规则:即所保留的成分的总方差达到总样本方差的99%以上。(详细内容请参考[[PCA#Number_of_components_to_retain | PCA]])
+
 
-
}}
+
=== 音频 (MFCC/频谱图) ===
 +
 
 +
对于音频数据 (MFCC 和频谱图),每一维度的取值范围(方差)不同。例如 MFCC 的第一分量是直流分量,通常其幅度远大于其他分量,尤其当特征中包含时域导数 (temporal derivatives) 时(这是音频处理中的常用方法)更是如此。因此,对这类数据的预处理通常从简单的数据标准化开始(即使得数据的每一维度均值为零、方差为 1),然后进行 PCA/ZCA 白化(使用合适的 <tt>epsilon</tt>)。
 +
 
 +
 
 +
=== MNIST 手写数字 ===
 +
 
 +
MNIST 数据集的像素值在 <math>[0, 255]</math> 区间中。我们首先将其缩放到 <math>[0, 1]</math> 区间。实际上,进行逐样本均值消去也有助于特征学习。''注:也可选择以对 MNIST 进行 PCA/ZCA 白化,但这在实践中不常用。''
 +
 
 +
 
 +
==中英文对照==
 +
 
 +
:归一化 normalization
 +
 
 +
:白化 whitening
 +
 
 +
:直流分量 DC component
-
【原文】
+
:局部均值消减 local mean subtraction
-
{{quote|
+
-
Note: When working in a classification framework, one should compute the PCA/ZCA whitening matrices based only on the training set. The following parameters used be saved for use with the test set: (a) average vector that was used to zero-mean the data, (b) whitening matrices. The test set should undergo the same preprocessing steps using these saved values.  }}
+
-
【初译】
+
:消减归一化 sparse autoencoder
-
{{quote|
+
-
注意: 在处理分类框架时,需要在训练集合上计算PCA/ZCA白化矩阵,需要保存以下两个参数留待测试集合使用(a)平均向量用于零均值化数据;(b)白化矩阵。测试集需要采用保存的参数来进行相同的预处理。}}
+
-
【一审】
+
:缩放 rescaling
-
{{quote|
+
-
注意: 在分类问题中,PCA/ZCA白化矩阵是在训练集合上计算的,需要保存以下两个参数留待测试集合使用:(a)样本均值;(b)白化矩阵。测试集需要采用这两组保存的参数来进行相同的预处理。}}
+
-
== Large Images/大图像 ==
+
:逐样本均值消减 per-example mean subtraction
-
【原文】
+
-
For large images, PCA/ZCA based whitening methods are impractical as the covariance matrix is too large. For these cases, we defer to 1/f-whitening methods. (more details to come)
+
-
【初译】
+
:特征标准化 feature standardization
-
对于大图像,采用基于PCA/ZCA的白化方法是不实际的,这是因为协方差矩阵太大。在这些情况下我们推荐1/f 白化方法(更多内容后续再讲)。
+
-
【一审】
+
:平稳 stationary
-
对于大图像,采用基于PCA/ZCA的白化方法是不切实际的,因为协方差矩阵太大。在这些情况下我们推荐1/f 白化方法(更多内容后续再讲)。
+
-
== Standard Pipelines/标准流程 ==
+
:Mel倒频系数 MFCC
-
【原文】
+
-
In this section, we describe several "standard pipelines" that have worked well for some datasets:
+
-
【初译】
+
:零均值化 zero-mean
-
在这一部分我们将介绍几种在一些数据集上有效地标准流程
+
-
【一审】
+
:低通滤波 low-pass filtering
-
在这一部分我们将介绍几种在一些数据集上有良好表现的预处理标准流程
+
-
=== Natural Grey-scale Images/自然灰度图像 ===
+
:基于重构的模型 reconstruction based models
-
【原文】
+
-
Since grey-scale images have the stationarity property, we usually first remove the mean-component from each data example separately (remove DC). After this step, PCA/ZCA whitening is often employed with a value of <tt>epsilon</tt> set large enough to low-pass filter the data.
+
-
【初译】
+
:自编码器 autoencoders
-
因为灰度图像具有平稳特性,我们第一步通常在样本上分别移除均值项,然后采用PCA/ZCA白化处理,其中的<tt>epsilon</tt>足够大以对数据低通过滤。
+
-
【一审】
+
:稀疏编码 sparse coding
-
灰度图像具有平稳特性,我们通常在对每个样本做分量均值归零化(即减去直流分量),然后采用PCA/ZCA白化处理,其中的<tt>epsilon</tt>要足够大以达到低通滤波的效果。
+
-
=== Color Images/彩色图像 ===
+
:受限Boltzman机 RBMs
-
【原文】
+
-
For color images, the stationarity property does not hold across color channels. Hence, we usually start by rescaling the data (making sure it is in <math>[0, 1]</math>) ad then applying PCA/ZCA with a sufficiently large <tt>epsilon</tt>. Note that it is important to perform feature mean-normalization before computing the PCA transformation.
+
-
【初译】
+
:k-均值 k-Means
-
对于彩色图像,色彩通道间并不存在平稳特性。因此我们通常首先对数据进行重缩放(使之位于<math>[0, 1]</math>区间),然后在使用足够大的<tt>epsilon</tt>来做PCA/ZCA。值得注意的是在进行PCA转换前需要对特征进行均值归一化。
+
-
【一审】
+
:长尾 long tail
-
对于彩色图像,彩色通道间并不存在平稳特性。因此我们通常首先对数据进行特征缩放(使像素值位于<math>[0, 1]</math>区间),然后使用足够大的<tt>epsilon</tt>来做PCA/ZCA。注意在进行PCA变换前需要对特征进行分量均值归零化。
+
-
【说明】
+
:损失函数 loss function
-
原文中说的mean-normalization在整个文档中没有别的地方提及。我认为这是指分量均值归零化,使得图像的平均像素值变为0。即:对彩色图像的处理需要首先把像素值变换到[0,1]区间,然后按照灰度图像的同样方法做预处理。
+
-
=== Audio (MFCC/Spectrograms)/音频 (MFCC/频谱图) ===
+
:正交化 orthogonalization
-
【原文】
+
-
For audio data (MFCC and Spectrograms), each dimension usually have different scales (variances); the first component of MFCCs, for example, is the DC component and usually has a larger magnitude than the other components. This is especially so when one includes the temporal derivatives (a common practice in audio processing). As a result, the preprocessing usually starts with simple data standardization (zero-mean, unit-variance per data dimension), followed by PCA/ZCA whitening (with an appropriate <tt>epsilon</tt>).
+
-
【初译】
 
-
对于音频数据 (MFCC 和频谱图),每一维度的尺寸不同(方差)。例如FMCC的第一组件,作为直流成分通常其幅度会远比其他成分大,当包含时域微分时(音频处理中常用方法)尤为如此。结果是预处理通常从简单的数据标准化开始(是数据每一维度都呈零均值和单位方差),然后进行PCA/ZCA白化(使用合适的<tt>epsilon</tt>)。
 
-
【一审】
+
==中文译者==
-
对于音频数据 (MFCC 和频谱图),每一维度的尺度(方差)不同。例如MFCC的第一分量是直流分量,通常其幅度远大于其他分量,尤其当特征中包含时域导数时(这是音频处理中的常用方法)更是如此。因此,对这类数据的预处理通常从简单的数据标准化开始(即使得数据的每一维度均值为零、方差为1),然后使用合适的<tt>epsilon</tt>进行PCA/ZCA白化。
+
-
=== MNIST Handwritten Digits/MNIST 手写数字 ===
+
陈磊(lei.chen@operasolutions.com), 王文中(wangwenzhong@ymail.com), 王方(fangkey@gmail.com)
-
【原文】
+
-
The MNIST dataset has pixel values in the range <math>[0, 255]</math>. We thus start with simple rescaling to shift the data into the range <math>[0, 1]</math>. In practice, removing the mean-value per example can also help feature learning. ''Note: While one could also elect to use PCA/ZCA whitening on MNIST if desired, this is not often done in practice.''
+
-
【初译】
 
-
MNIST数据集的像素值在 <math>[0, 255]</math>区间中。我们首先将之重缩放到<math>[0, 1]</math>区间,实际情况中移除均值也有助于特征学习。''值得注意的是对MNIST进行PCA/ZCA白化也是可行的,但在实践中不常用。''
 
-
【一审】
+
{{Languages|Data_Preprocessing|English}}
-
MNIST数据集的像素值在 <math>[0, 255]</math>区间中。我们首先将其缩放到<math>[0, 1]</math>区间。实际上,对这些数据做分量均值归零化也有助于特征学习。''注:也可以对MNIST进行PCA/ZCA白化,但这在实践中不常用。''
+

Latest revision as of 04:22, 8 April 2013

Personal tools