ICA又称盲源分离(Blind source separation, BSS)

它假设观察到的随机信号x服从模型,其中s为未知源信号,其分量相互独立,A为一未知混合矩阵。

ICA的目的是通过且仅通过观察x来估计混合矩阵A以及源信号s。

大多数ICA的算法需要进行“数据预处理”(data preprocessing):先用PCA得到y,再把y的各个分量标准化(即让各分量除以自身的标准差)得到z。预处理后得到的z满足下面性质:

  • z的各个分量不相关;
  • z的各个分量的方差都为1。

“ICA基本定理”:

       定理(Pierre Comon, 1994)

      假设随机信号z服从模型,其中s的分量相互独立,且其中至多可以有一个为高斯;B为满秩方阵。

那么若z的分量相互独立当且仅当B=PD,其中P为排列矩阵(permutation matrix),D为对角矩阵。

这个定理告诉我们,对于原信号x做线性变换得到的新随机向量,若z的分量相互独立,那么z的各个分量一定对应于某个源信号分量乘以一个系数。到这里,我们可以看到ICA的解具有内在的不确定性(inherent indeterminacy)。实际上,因为,即具备相同统计特征的x可能来自两个不同的系统,这意味着单从观察x我们不可能知道它来自于哪一个,从而我们就不可能推断出源信号s的强度(方差)。为了在技术上消除这种不确定性,人们干脆约定源信号s的方差为1。有了这个约定,再通过数据预处理的方法,我们可以把原混合矩阵A化为一个自由度更低的正交矩阵:

数据预处理的过程又称为“数据白化”(data whitening)。这里预处理以后得到的z和源信号s的关系为。取,则它可以看做一个新的混合矩阵。容易看出这是一个正交矩阵,它仅有个自由度;而原混合矩阵一般有个自由度。

     
         在ICA之前,往往会对数据有一个预处理过程,那就是PCA与白化。白化在这里先不提,PCA本质上来说就是一个降维过程,大大降低ICA的计算量。 
        总的来说,ICA认为观测信号是若干个统计独立的分量的线性组合,ICA要做的是一个解混过程。而PCA是一个信息提取的过程,将原始数据降维,现已成为ICA将数据标准化的预处理步骤。
       

          大部分算法都用两步来实现ICA:第一步做白化预处理(whitening),让输出信号不相关而且同方差。第二步找一个旋转(就是正交变换)让输出信号不只不相关(uncorrelated),进而在统计意义上独立(statistically independent)。

更进一步,每当我们做回归(regression),不管是线性回归还是非线性回归,噪声和predictor都是不相关的。但很多情况下,它们却不是独立的。这个性质最近十年内在因果关系分析中得到很重要的应用。

其他详细内容请参考:

https://www.baidu.com/link?url=I5XgnPAgtupzEncN4tet8Ou1xpTvqcWR9XlMAjiO-30-_t-RP0zTUJNiVsHYliLKdvJnhwlzhJq6SXr_pXOpB_&wd=&eqid=f77b202a00025c40000000035b7a6746
 
https://blog.csdn.net/shenziheng1/article/details/53555969
https://blog.csdn.net/shenziheng1/article/details/53637907
https://blog.csdn.net/sinat_37965706/article/details/71330979

ICA(独立成分分析)笔记的更多相关文章

  1. PCA主成分分析 ICA独立成分分析 LDA线性判别分析 SVD性质

    机器学习(8) -- 降维 核心思想:将数据沿方差最大方向投影,数据更易于区分 简而言之:PCA算法其表现形式是降维,同时也是一种特征融合算法. 对于正交属性空间(对2维空间即为直角坐标系)中的样本点 ...

  2. 斯坦福ML公开课笔记15—隐含语义索引、神秘值分解、独立成分分析

    斯坦福ML公开课笔记15 我们在上一篇笔记中讲到了PCA(主成分分析). PCA是一种直接的降维方法.通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降维的效果. 本文继续PCA的话题, ...

  3. 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

  4. Topographic ICA as a Model of Natural Image Statistics(作为自然图像统计模型的拓扑独立成分分析)

    其实topographic independent component analysis 早在1999年由ICA的发明人等人就提出了,所以不算是个新技术,ICA是在1982年首先在一个神经生理学的背景 ...

  5. ICA (独立成分分析)

    介绍 独立成分分析(ICA,Independent Component Correlation Algorithm)简介 X=AS X为n维观测信号矢量,S为独立的m(m<=n)维未知源信号矢量 ...

  6. 独立成分分析 ICA 原理及公式推导 示例

    独立成分分析(Independent component analysis) 前言 独立成分分析ICA是一个在多领域被应用的基础算法.ICA是一个不定问题,没有确定解,所以存在各种不同先验假定下的求解 ...

  7. 独立成分分析(ICA)的模拟实验(R语言)

    本笔记是ESL14.7节图14.42的模拟过程.第一部分将以ProDenICA法为例试图介绍ICA的整个计算过程:第二部分将比较ProDenICA.FastICA以及KernelICA这种方法,试图重 ...

  8. 独立成分分析(Independent Component Analysis)

    ICA是一种用于在统计数据中寻找隐藏的因素或者成分的方法.ICA是一种广泛用于盲缘分离的(BBS)方法,用于揭示随机变量或者信号中隐藏的信息.ICA被用于从混合信号中提取独立的信号信息.ICA在20世 ...

  9. Independent Components Analysis:独立成分分析

    一.引言 ICA主要用于解决盲源分离问题.需要假设源信号之间是统计独立的.而在实际问题中,独立性假设基本是合理的. 二.随机变量独立性的概念 对于任意两个随机变量X和Y,如果从Y中得不到任何关于X的信 ...

随机推荐

  1. onTouchEvent事件

    @Override public boolean onTouchEvent(MotionEvent event) { if(event.getAction() == MotionEvent.ACTIO ...

  2. JS中浮点数相加问题

    https://blog.csdn.net/u012937029/article/details/61191512 采用IEEE 754 Floating-point的浮点数编码方式来表示浮点数 按I ...

  3. HDU 1213 How Many Tables【并查集】

    解题思路:和畅通工程类似,问最后还剩下几个不连通的区域. How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: ...

  4. CDR 2017版本LiveSketch工具是什么,怎么用?

    LiveSketch 工具在提供手绘草图的简便性和速度的同时,结合了智能笔触调整和向量绘图.在您绘制草图时,CorelDRAW 2017会分析您输入笔触的属性.时序和空间接近度,对其进行调整并将其转换 ...

  5. ZBrush中Layer层笔刷介绍

    本文我们来介绍ZBrush®中的Layer层笔刷,该笔刷是一种类似梯田效果的笔刷,常用来制作鳞甲和花纹图腾.他还可以用一个固定的数值抬高或降低模型的表面,当笔刷在重合时,笔画重叠部分不会再次位移,这使 ...

  6. Pyhton学习——Day41

    #一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:# 核心(ECMAScript)# 文档对象模型(DOM) Document object model (整合js,css,ht ...

  7. fullcalendar日历插件

    https://www.helloweba.net/javascript/231.html

  8. day 06 数据类型的内置方法[数字类型,字符串类型]

    什么是可变还是不可变? 可变是值可以改变,但是ID不变,不可变是值变,ID也变. 1.数字类型 int 1.用途:年龄,号码,等级 2.定义:可以使用int()方法将纯数字的字符串转为十进制的整数 a ...

  9. 😈 HTTP 学习笔记

  10. HDU1061 - Rightmost Digit

    Given a positive integer N, you should output the most right digit of N^N. Input The input contains ...