文档介绍:JerryLead
不想飞翔,不是因为没有翅膀,而是失去了梦想
独立成分分析(Independent Component Analysis)
1. 问题:
     1、上节提到的PCA是一种数据降维的方法,但是只对符合高斯分布的样本点比较有效,那么对于其他分布的样本,有没有主元分解的方法呢?
     2、经典的鸡尾酒宴会问题(cocktail party problem)。假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了一组数据,i表示采样的时间顺序,也就是说共得到了m组采样,每一组采样都是n维的。我们的目标是单单从这m组采样数据中分辨出每个人说话的信号。
     将第二个问题细化一下,有n个信号源,,每一维都是一个人的声音信号,每个人发出的声音信号独立。A是一个未知的混合矩阵(mixing matrix),用来组合叠加信号s,那么
    
     x的意义在上文解释过,这里的x不是一个向量,是一个矩阵。其中每个列向量是,
     表示成图就是
    
     这张图来自
     -interests/research-interests-erp-analysis/blind-source-separation-bss-of-erps-using-independent-component-analysis-ica/
    
     的每个分量都由的分量线性表示。A和s都是未知的,x是已知的,我们要想办法根据x来推出s。这个过程也称作为盲信号分离。
     令,那么
     将W表示成
    
     其中,其实就是将写成行向量形式。那么得到:
    
2. ICA的不确定性(ICA ambiguities)
     由于w和s都不确定,那么在没有先验知识的情况下,无法同时确定这两个相关参数。比如上面的公式s=wx。当w扩大两倍时,s只需要同时扩大两倍即可,等式仍然满足,因此无法得到唯一的s。同时如果将人的编号打乱,变成另外一个顺序,如上图的蓝色节点的编号变为3,2,1,那么只需要调换A的列向量顺序即可,因此也无法单独确定s。这两种情况称为原信号不确定。
     还有一种ICA不适用的情况,那就是信号不能是高斯分布的。假设只有两个人发出的声音信号符合多值正态分布,,I是2*2的单位矩阵,s的概率密度函数就不用说了吧,以均值0为中心,投影面是椭圆的山峰状(参见多值高斯分布)。因为,因此,x也是高斯分布的,均值为0,协方差为。
     令R是正交阵,。如果将A替换成A’。那么。s分布没变,因此x’仍然是均值为0,协方差。
     因此,不管混合矩阵是A还是A’,x的分布情况是一样的,那么就无法确定混合矩阵,也就无法确定原信号。
3. 密度函数和线性变换
     在讨论ICA具体算法之前,我们先来回顾一下概率和线性代数里的知识。
     假设我们的随机变量s有概率密度函数(连续值是概率密度函数,离散值是概率)。为了简单,我们再假设s是实数,还有一个随机变量x=As,A和x都是实数。令是x的概率密度,那么怎么求?
     令,首先将式子变换成,然后得到,求解完毕。可惜这种方法是错误的。比如s符合均匀分布的话(),那么s的概率密度是,现在令A=2,即x=2s,也就是说x在[0,2]上均匀分布,可知。然而,前面的推导会得到。正确的公式应该是
    
     推导方法
    
    
     更一般地,如果s是向量,A可逆的方阵,那么上式子仍然成立。
4. ICA算法
     ICA算法归功于Bell和Sejnowski,这里使用最大似然估计来解释算法,原始的论文中使用的是一个复杂的方法Infomax principal。
     我们假定每个有概率密度,那么给定时刻原信号的联合分布就是
    
     这个公式代表一个假设前提:每个人发出的声音信号各自独立。有了p(s),我们可以求得p(x)
    
     左边是每个采样信号x(n维向量)的概率,右边是每个原信号概率的乘积的|W|倍。
     前面提到过,如果没有先验知识,我们无法求得W和s。因此我们需要知道,我们打算选取一个概率密度函数赋给s,但是我们不能选取高斯分布的密度函数。在概率论里我们知道密度函数p(x)由累计分布函数(cdf)F(x)求导得到。F(x)要满足两个性质是:单调递增和在[0,1]。我们发现sigm