matlab 矩阵白化,白化(预处理步骤)【转】

news/2024/11/7 14:40:34/

介绍

我们已经了解了如何使用PCA降低数据维度。在一些算法中还需要一个与之相关的预处理步骤,这个预处理过程称为白化。举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的就是降低输入的冗余性;更正式的说,我们希望通过白化过程使得学习算法的输入具有如下性质:(i)特征之间相关性较低;(ii)所有特征具有相同的方差。

2D的例子

下面我们先用前文的2D例子描述白化的主要思想,然后分别介绍如何将白化与平滑和PCA相结合。

如何消除特征之间的相关性?在前文计算

eeb703eab32b420dd85b413b7dfce752.png时实际上已经消除了输入特征

58fbeb197d06f5f9dd1939ed69f59e1d.png之间的相关性。得到的新特征 

fb832ab8df1f30e3f4f11d748d1994a5.png 的分布如下图所示:

6b2118598dd52b50613700248f1649e9.png

这个数据的协方差矩阵如下:

66a656cb24888cc3e2fc12ff6759e2f7.png

(注:严格地讲,这部分许多关于“协方差”的陈述仅当数据均值为0时成立。下文的论述都隐式地假定这一条件成立,不过即使数据均值不为0,下文的说法仍然成立,所以你无需担心这个。)

7e6ed85262907122cc81a0c7e39b6cb7.png 协方差矩阵对角元素的值为 

ba79b97e7bcb6e6bffd753188d1165cb.png 和 

52776252bcdaf333e01bc4ef156ba859.png 绝非偶然。并且非对角元素值为0; 因此, 

764b66dd9af67fc0ec08e854da8eca00.png 和 

723ef6e9e31ea10de5627e0a2bf632d3.png 是不相关的, 满足我们对白化结果的第一个要求 (特征间相关性降低)。

为了使每个输入特征具有单位方差,我们可以直接使用

9f8b359aef77ca040b644305bd1b5fda.png作为缩放因子来缩放每个特征

3f2e7e7b374a9fc178c31c450a7774a6.png。具体地,我们定义白化后的数据

1dc90c50c6bb87e34bdd39fbef8ad8bd.png如下:

e9d68125137095835f2993ba8651c339.png

绘制出

be41b87f1f9ea34d0c6ad86decaeac13.png ,我们得到:

072be8622d870d140316cfec8a312d5b.png

这些数据现在的协方差矩阵为单位矩阵I。我们说,

13477ed781363b1adb4e9b247412f21b.png 是数据经过PCA白化后的版本: 

790e8f6c812c4f927a560a08b1f42f31.png 中不同的特征之间不相关并且具有单位方差。

白化与降维相结合:如果你想要得到经过白化后的数据,并且比初始输入维数更低,可以仅保留

a4c295410a46c644a3c0d789c5e404c2.png 中前 

93e7672c1dab12faa657b80e171a5ce4.png 个成分。当我们把PCA和正则化结合起来时(在稍后讨论),

7f6aa9328a693933cd0a4f61f1564cd6.png中最后的少量成分将总是接近于0,因而舍弃这些成分不会带来很大的问题。

ZCA白化

最后要说明的是,是数据的协方差矩阵变为单位矩阵I的方式并不唯一。具体地,如果R是任意正交矩阵,即满足

893abc81e424838c2532ff49dcf7d363.png(说它正交不太严格,R可以是旋转或反射矩阵),那么

aa41e27f0d7fbc36adc9e738afa46ab1.png仍然具有单位协方差。在ZCA白化中,令 

63c4448ddaac06ed239e824581186342.png 。我们定义ZCA白化的结果为:

6cfb98389311edc2e6db52144e2b3f51.png

绘制

5e8eeb5a3468fc906047ac9268e3a7c7.png,得到:

cf2554dc7ffdc6f393a9ebe89a0b2c6c.png

可以证明,对所有可能的R,这种旋转式的

9c8c20e254670ec8572b2c967f273d08.png尽可能地接近原始输入数据x。当使用ZCA白化时(不同于PCA白化),我们通常保留数据的全部n个维度,不尝试去降低它的维数。

正则化

实践中需要实现PCA白化或ZCA白化时,有时一些特征值

c3cbbae85fdd5fee7d71007bdc4bbc9b.png在数值上接近于0,这样在缩放步骤时我们除以 

1f43acabd168dab265e9a802712f0a2e.png 将导致除以一个接近0的值;这可能会导致数据上溢(赋为最大值)或造成数值不稳定。因而在实践中,我们使用少量的正则化实现这个缩放过程,即在取平方根和倒数之前给特征值加上一个很小的常数

0d5ec1b948da6b1679591edcbd2de5e8.png

f303f55c874d2d80a565059f3b10a1f9.png

873aed3b2777df648cdba56ece5b3243.png 在区间 

ef1c3f04f10cd5c5c20c780412bd48b2.png 上时, 一般取值为 

196a6667cbcf75e93f83476ac12c3f1a.png

对图像来说,这里加上

2f4003e60d0729c5fb3b2ca98cf7be8c.png,对输入图像也有一些平滑(或低通滤波)的作用。这样处理还能消除在图像的像素信息获取过程中产生的噪声,改善学习到的特征。

ZCA白化是一种数据预处理方法,它将数据从

b91dd56cc750a4f396d766bcbc94b990.png 映射到 

c1f4fb49a73254b4bd53923ebf8fe3da.png 。

事实证明这也是一种生物眼睛(视网膜)处理图像的粗糙模型。具体而言,当你的眼睛感知图像时,由于一幅图像中相邻的部分在亮度上十分相关,大多数临近的“像素”在眼中被感知为相近的值。因此,如果人眼需要分别传输每个像素值(通过视觉神经)到大脑中,会非常不划算。取而代之的是,视网膜进行一个与ZCA中相似的去相关操作(这是由视网膜上的ON-型和OFF-型光感受器细胞将光信号转变为神经信号完成的)。由此得到对输入图像的更低冗余的表示,并将它传输到大脑。


http://www.ppmy.cn/news/665845.html

相关文章

白化滤波器 matlab,白化滤波器-matlab-程序.doc

随机信号分析实验 PAGE 3 - 白化滤波器 原理 在统计信号处理中,往往会遇到等待处理的随机信号是非白色的,例如云雨、海浪、地物反射的杂乱回波等,它们的功率谱即使在信号通带内也非均匀分布。这样会给问题的解决带来困难。克服这一困难的措施之一是对色噪声进行白化处理。主…

PCA白化

直接上代码! % pca和白化 function features_pca_white pca_and_whiting(feature,a)featureszscore(feature);[~,score,~] pca(features);features_pca score(:,1:a);xfeatures_pca;sigma(x*x)/size(x,2);[u,s,~]svd(sigma);xRot zeros(size(x));xRotu*x;epsi…

白化操作

白化whitening 原文地址: http://blog.csdn.net/hjimce/article/details/50864602 一、相关理论 白化这个词,可能在深度学习领域比较常遇到,挺起来就是高大上的名词,然而其实白化是一个比PCA稍微高级一点的算法而已,所以如果熟悉PCA,那么其实会发现这是一个非常简单…

matlab矩阵的白化,白化原理及Matlab实现

白化的原理: 随机向量的“零均值化”和“空间解相关”(也叫白化)是最常用的两个预处理过程,其中“零均值化”比较简单,而“空间解相关”涉及一些矩阵的知识。 设有均值为零的随机信号向量 x ,其自相关矩阵为 Rx=E[xxT] ≠ I 很明显, Rx 是对称矩阵,且是非负定的(所有特征…

matlab白化代码,[支持m_map白化] MATLAB对地图进行白化

function maskMap(shapefile, masktype, varargin) % 对所绘制图形进行白化 % 输入参数: % shapefile : shapefile文件。 字符串型或元胞型 % 为元胞数组时可通过指定多个省份的shp文件进行白化。 % 比如要白化江苏省,江西省,黑龙江省。…

Sufer白化实现

swpu 物探 杨连刚 2018/4/13 二维坐标系下,不规则网格(已知坐标x,y及对应位置值val)绘制等值线云图,能解决这个问题,特别感谢长安大学 王琦同学热心帮助。 步骤 1根据起伏边界,按照逆时针建立边界白化…

数据白化处理

数据白化处理的作用 减少数据之间的相关性,尤其是做图像处理时,相邻像素点之间关联性较强,白化处理可以让相邻像素点之间的差异更加明显,减少数据冗余。 数据冗余:在数据库中,同一数据存储多次的情况。 …

图像的白化处理

目录 1.白化处理的作用 2.白化处理的原理 3.白化处理的代码 1.白化处理的作用 图像白化(whitening)可用于对过度曝光或低曝光的图片进行处理,下图所示,左图是过分曝光,右图是白化后的结果; 2.白化处理的…