数据处理中白化Whitening的作用图解分析

数据处理中白化Whitening的作用图解分析之前在看斯坦福教程中 whiteining 这一章时

之前在看斯坦福教程中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为白化向量

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

数据处理中白化Whitening的作用图解分析

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

数据处理中白化Whitening的作用图解分析

再将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本身具有降维功能,当观测信号的个数大于源信号个数时,经过白化可以自动将观测信号数目降到与源信号维数相同。

图解分析:

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

数据处理中白化Whitening的作用图解分析

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

数据处理中白化Whitening的作用图解分析

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

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

数据处理中白化Whitening的作用图解分析

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

    然而这时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



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225816.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:28
下一篇 2026年3月17日 上午8:28


相关推荐

  • 扣子(Coze)基础:扣子入门教程——初识扣子

    扣子(Coze)基础:扣子入门教程——初识扣子

    2026年3月12日
    2
  • Vue中嵌入LayUI框架

    Vue中嵌入LayUI框架Auther:江湖人称平头哥前言Vue.js是一套构建用户界面的渐进式框架。Vue采用自底向上增量开发的设计。Vue的核心库只是关注图层。容易学习和整合其他项目。LayUI是开源的模块化前端UI框架,其中提供了丰富的内置模块,都可以通过模块化的方式按需加载,可作为PC网页端后台管理系统和前台界面的速成开发。下载LayUI文件链接:https://www.layui.com/将解…

    2022年6月25日
    54
  • (二)泛型学习笔记—泛型擦除原理

    (二)泛型学习笔记—泛型擦除原理泛型的内部原理就是 类型擦除 java 泛型被称为伪泛型 主要是因为在编译期间 所有的泛型信息都会被擦除掉 整个 java 泛型都是在编译器层次实现的 泛型基础知识里面测试过那个例子 colleage1 和 colleage2 的类型相同 也是因为类型擦除的原因 一 类型擦除 1 类型擦除 使用泛型的时候加上的类型参数 会在编译器在编译的时候去掉 这个过程就称为类型擦除 生成的 Java 字节码

    2026年3月26日
    2
  • 详解LCD12864显示屏的使用(并行控制)

    详解LCD12864显示屏的使用(并行控制)一 概述 LCD12864 显示屏是所说的点阵液晶显示模块 就是由 12864 个液晶显示点组成的一个 128 列 64 行的阵列 所以也就叫成了 12864 每个显示点都对应着有一位二进制数 0 表示灭 1 表示亮 存储这些点阵信息的 RAM 被称为显示数据存储器 如果要显示某个图形或汉字就是将相应的点阵信息写入到对应的存储单元中 图形或汉字的点阵信息是由自己设计 如果模块带有字库 则不需要自己设计汉字 这时候问题的

    2026年3月20日
    5
  • python生成可执行文件linux_python运行exe程序

    python生成可执行文件linux_python运行exe程序Python生成可执行文件exe一、安装pyinstallerpipinstallpyinstaller二、使用pyinstaller命令使用示例相对路径在程序目录中,运行命令pyinstallermyscript.py则可以在当前目录生成两个文件夹dist和build,exe文件在dist文件夹中。绝对路径在程序目录中,运行命令pyinstallerC:\mys…

    2022年5月3日
    159
  • 基于卷积神经网络的人脸识别[通俗易懂]

    基于卷积神经网络的人脸识别[通俗易懂]基于卷积神经网络的人脸识别的实现利用opencv获取人脸,采集人脸数据,将收集到的人脸数据加载到内存,搭建属于自己的卷积神经网络,并用人脸数据训练自己的网络,将训练好的网络保存成模型,最后再用opencv获取实时人脸用先前训练好的模型来识别人脸。1.前言随着社会的不断进步以及各方面对于快速有效的自动身份验证的迫切要求,生物特征识别技术在近几十年得到了飞速的发展。作为人的一种内在属性,并且具有…

    2022年6月5日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号