之前在看斯坦福教程中whiteining这一章时,由于原始图像相邻像素值具有高度相关性,所以图像数据信息冗余,对于白化的作用的描述主要有两个方面:1,减少特征之间的相关性;2,特征具有相同的方差(协方差阵为1);但是为什么这么做,以及这样做对于算法或者数据有什么好处,一直雨里雾里的,最近看了ICA的数据预处理之后,发现一个教程图解的白化方法和作用很好。

白化,又称漂白或者球化;是对原始数据x实现一种变换,变换成x_Whitened;使x_Whitened的协方差矩阵的为单位阵。

一般情况下,所获得的数据都具有相关性,所以通常都要求对数据进行初步的白化或球化处理,因为白化处理可去除各观测信号之间的相关性,从而简化了后续独立分量的提取过程,而且,通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性较好。

若一零均值的随机向量Z=(Z1,Z2,....Zm),满足E{Z*Z'}=I,I为单位矩阵,我们称这个向量为白色向量。白化的本质在于去相关,这个同PCA原理相似;在ICA中,对于为零均值的独立源信号S(t)=[S1(t),S2(t)......Sn(t)],有E{Si*Sj}=E{Si}*E{Sj}=0,当i!=j时:,且协方差矩阵是单位阵cov(S)=I,(零均值时相关系数矩阵和协方差矩阵相等),因此,源信号是白色的。对观测信号X(t),我们应该寻找一个线性变换,使X(t)投影到新的子空间后变成白化向量,即:

Z(t)=W0*X(t)    ;其中W0为白化矩阵,Z为白化向量

利用主分量分析,我们通过计算样本向量得到一个变换:

其中^和U分别代表协方差矩阵的特征向量矩阵和特征值矩阵。可以证明,线性变换W0满足白化变换的要求。通过正交变换,可以保证U'*U=U*U'=I。因此通过协方差阵:

再将X(t)=AS(t)式代入Z(t)=W0*X(t),在令W0*A=B;

则有:Z(t)=W0*A*S(t)=B*S(t)

由于线性变换连接的是两个白色随机矢量Z(t)和S(t),可以得出B一定是一个正交变换。如果把上式中Z(t)的看作新的观测信号,那么可以说,白化使原来的混合矩阵A简化成一个新的正交矩阵B。其实正交变换相当于对多维矢量所在的坐标系进行一个旋转。根据上一篇博文中关于联合熵的介绍,多维分布经过坐标系的旋转后联合微分熵保持不变,所以经过变换后的数据信息不变。

在多维情况下,混合矩阵A是的*n的,白化后新的混合矩阵由于是正交矩阵,其自由度降为n*(n-1)/2(这个我也不明白为什么),所以说白化使得ICA问题的工作量几乎减少了一半。

白化这种常规的方法作为ICA的预处理可以有效地降低问题的复杂度,而且算法简单,用传统的PCA就可完成。用PCA对观测信号进行白化的预处理使得原来所求的解混合矩阵退化成一个正交阵,减少了ICA的工作量。此外,PCA本身具有降维功能,当观测信号的个数大于源信号个数时,经过白化可以自动将观测信号数目降到与源信号维数相同。

图解分析:

假设信号源s1和s2是独立的,比如下图横轴是s1,纵轴是s2,根据s1得不到s2。

我们只知道他们合成后的信号x,如下:

此时x1和x2不是独立的(比如看最上面的尖角,知道了x1就知道了x2)。那么直接代入计算结果不好,因为我们假定x是独立的。

因此,漂白这一步为了让x独立。漂白结果如下:

可以看到数据变成了方阵,在的维度上已经达到了独立。

然而这时x分布很好的情况下能够这样转换,当有噪音时怎么办呢?可以先使用前面提到的PCA方法来对数据进行降维,滤去噪声信号,得到k维的正交向量,然后再使用ICA。

参考文献:

1:http://wenku.baidu.com/link?url=M9B-jE_GnXBcZBV2wpHAp8_Mj7je1IH8yetkvfRBZULqwFuTGToO__e5eE2uFcQnPxTYHRlzrizKfCE3YYw1_aw6bb3d7NZTy6UMrwUYbny

2:http://wenku.baidu.com/view/941f6782e53a580216fcfe03.html

数据处理中白化Whitening的作用图解分析相关推荐

  1. 数据流技术在GPU和大数据处理中的应用

    点击上方蓝字关注我们 数据流技术在GPU和大数据处理中的应用 苏华友, 梅松竹, 李荣春, 窦勇 国防科技大学计算机学院,湖南 长沙 410073 论文引用格式: 苏华友, 梅松竹, 李荣春, 窦勇. ...

  2. 试述hadoop生态系统以及每个部分的具体功能_Hadoop在大数据分析中的意义和作用...

    什么是Hadoop? Apache Hadoop是一个开放源代码软件框架,用于开发在分布式计算环境中执行的数据处理应用程序. 使用HADOOP构建的应用程序可在分布在商用计算机群集上的大型数据集上运行 ...

  3. 计算机技术在预防医学的应用,计算机技术在预防医学科研数据处理中的应用

    计算机技术在预防医学科研数据处理中的应用 计算机发展之前,传统的数据处理模式使大批量原始资料的储存.整理.汇总.分析颇为困难,极大地阻碍了预防医学科研工作的进展.近十余年来,随着计算机技术的飞速 (本 ...

  4. 快速云:云计算技术在计算机数据处理中的应用

    伴随我国信息技术的飞速发展,虽然能在一定程度上给人们生活和工作带来了便捷,而且伴随信息化技术的不断应用,还能推动我国经济发展.但是当工作人员在运用云计算技术展开数据处理工作时,时常会把所有资料信息都存 ...

  5. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html

  6. 漫谈 ClickHouse 在实时分析系统中的定位与作用

    ClickHouse 是一款由俄罗斯Yandex公司开源的OLAP数据库,拥有着卓越的性能表现,在官方公布的基准测试中,ClickHouse的平均响应速度是Vertica的2.63倍.InfiniDB ...

  7. 对python 数据处理中的LabelEncoder 和 OneHotEncoder详解

    对python 数据处理中的LabelEncoder 和 OneHotEncoder详解_起飞的木木的博客-CSDN博客_labelencoder原理

  8. pairplot 中参数hue的作用就是在图像中将输出的散点图按照hue指定的特征或标签的类别的颜色种类进行区分

    sns.pairplot(diabetes,hue="Outcome"); pairplot 中参数hue的作用就是在图像中将输出的散点图按照hue指定的特征或标签的类别的颜色种类 ...

  9. C++中explicit关键字的作用

    C++中explicit关键字的作用 explicit用来防止由构造函数定义的隐式转换. 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换. ...

最新文章

  1. finereport连接oracle_FINEREPORT连接远程ORACLE数据库
  2. php多线程解决之stream_socket_client
  3. ubuntu 新建的用户 table 无法补全命令 解决办法
  4. 关于java中锁的面试题_Java面试题-Java中的锁
  5. 计算机专业合成词,大学计算机论文范文大全.docx
  6. Hadoop数据压缩 与 数据清洗ETL
  7. 【转】数据安全优秀思想
  8. python获取系统参数_python 常用系统参数
  9. python从入门到_Python学习路线从入门到上手,如何快速Python学习?
  10. jsp java代码报错,求助!JSP代码中调java服务出参返回正常 weblogic报错BEA-101017
  11. oracle ora00020,ORA-00020: maximum number of processes (1000) 错误处理
  12. php汉字组合算法,php数字转汉字的函数算法
  13. 单系统 台电x80pro_台电X80HD安装Win8单系统教程
  14. android 激光打印机,#本站首晒# 安卓端无线打印的方案选择 兄弟 DCP1618W 一体机...
  15. 以太坊地址和公钥_《每日一课》第九课:什么是钱包、钱包地址、私钥、公钥?...
  16. 用脑电波控制智能假肢:如何利用深度学习技术进行EGG数据分类
  17. heic是什么格式?如何转成JPG格式?
  18. 工业设计中的色彩应用标准及配色方法
  19. Error starting stream. VIDIOC_STREAMON: Protocol error Unable to use mmap. Using read instead. Unabl
  20. 联系导师邮件如何写?要注意什么?

热门文章

  1. 如何关闭或启动mysql服务
  2. CentOS 系统利用 IUS 安装 python3.6
  3. 美云智数——推动人才供应链重要战略部署
  4. java显示proe文件_PROE配置自定义大全(绝对值得你看)
  5. 百度Apollo 2.5 导航模式 使用方法
  6. The kiss Principal
  7. 【Java】数组对象转实体对象
  8. 思维导图制作软件/网站
  9. boost内存池技术
  10. 用nginx反向代理功能将WS转为加密websocket (wss)