关于normalize ,白化的解释

在看机器学习的过程中往往会看到正则化,归一化,白化的名词,今天就概括介绍一下

正则化

正则化的目的:避免出现 过拟合(over-fitting)

经验风险最小化 + 正则化项 = 结构风险最小化

经验风险最小化(ERM),是为了让拟合的误差足够小,即:对训练数据的预测误差很小。

但是,学习得到的模型,当然是希望对 未知数据有很好的预测能力(泛化能力),这样才更有意义。
当拟合的误差足够小的时候,可能是模型参数较多,模型比较复杂,此时模型的泛化能力一般。于是,增加一个正则化项,它是一个正的常数乘以模型复杂度的函数,aJ(f),a>=0 用于调整ERM与模型复杂度的关系。
结构风险最小化(SRM),相当于是要求拟合的误差足够小, 同时模型不要太复杂(正则化项的极小化),这样得到的模型具有较强的泛化能力。

正则化主要的对损失函数的后面添加一个p范数来做约束以达到高的泛化能力。

一种较为有效的数值方法就是在求解过程中结合某些解的已知信息对解进行限制,当将解的2-范数最小作为附加条件加入到原问题中,可以将问题转化为:

λ为正则化参数,控制着残差的范数与附加条件之间的权重,λ的选择是否恰当在正则化问题中起着非常重要的作用。



归一化定义与作用(normalize)

    归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。

   归一化的目的简而言之,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。

    在使用机器学习算法的数据预处理阶段,归一化也是非常重要的一个步骤。例如在应用SVM之前,缩放是非常重要的。Sarle的神经网络FAQ的第二部分(1997)阐述了缩放的重要性,大多数注意事项也适用于SVM。缩放的最主要优点是能够避免大数值区间的属性过分支配了小数值区间的属性。另一个优点能避免计算过程中数值复杂度。因为关键值通常依赖特征向量的内积(inner products),例如,线性核和多项式核力,属性的大数值可能会导致数值问题。我们推荐将每个属性线性缩放到区间[-1,+1]或者[0, 1]。当然,我们必须使用同样的方法缩放训练数据和测试数据。例如,假设我们把训练数据的第一个属性从[-10,+10]缩放到[-1, +1],那么如果测试数据的第一个属性属于区间[-11, +8],我们必须将测试数据转变成[-1.1, +0.8]。


白化

假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的就是降低输入的冗余性;更正式的说,我们希望通过白化过程使得学习算法的输入具有如下性质:(i)特征之间相关性较低;(ii)所有特征具有相同的方差。数据白化主要是解决空间的相关性,使其可以降低数据的相关程度,主要常见的白化是pca白化和zca白化。

\textstyle x_{\rm rot} 协方差矩阵对角元素的值为 \textstyle \lambda_1 和 \textstyle \lambda_2 绝非偶然。并且非对角元素值为0; 因此,  和 \textstyle x_{{\rm rot},2} 是不相关的, 满足我们对白化结果的第一个要求 (特征间相关性降低)。

为了使每个输入特征具有单位方差,我们可以直接使用 \textstyle 1/\sqrt{\lambda_i} 作为缩放因子来缩放每个特征  。具体地,我们定义白化后的数据 \textstyle x_{{\rm PCAwhite}} \in \Re^n 如下:

\begin{align}x_{{\rm PCAwhite},i} = \frac{x_{{\rm rot},i} }{\sqrt{\lambda_i}}.   \end{align}

最后要说明的是,使数据的协方差矩阵变为单位矩阵 \textstyle I 的方式并不唯一。具体地,如果 \textstyle R 是任意正交矩阵,即满足  (说它正交不太严格,\textstyle R 可以是旋转或反射矩阵), 那么  仍然具有单位协方差。在ZCA白化中,令 \textstyle R = U 。我们定义ZCA白化的结果为:

\begin{align}x_{\rm ZCAwhite} = U x_{\rm PCAwhite}\end{align}

你可能感兴趣的:(关于normalize ,白化的解释)