zoukankan      html  css  js  c++  java
  • 独立分量分析(Independent Component Analysis)

    独立分量分析(Independent Component Analysis)

    盲源信号分离问题

    引入:鸡尾酒会问题

    设想在一个鸡尾酒会中,所有的人都在交谈,而我们所希望听到的可能只是其中一个人到谈话内容,这时候我们就会将注意力集中到这个人说话到声音中,辨析出他说话的内容。对于人类的听觉系统可能这并非特别难到事情,但是这却是语音识别领域的一个较为困难的课题。

    盲源信号分离

    实际上,这就是一个信源盲源分离(Blind Source Seperation)的问题,如图所示:


    这里写图片描述

    x是我们接收到到信号,而我们希望得到的是s中到某一项。x 和 s 之间存在一个线性映射关系A,称为“混合矩阵”(mixing matrix) ,即 x = As ,如果在鸡尾酒会的场景下,a11 等元素可能表达的是说话人跟听话人距离的远近,越远则声音中这个分量就越小。之所以是“盲”分离,是因为我们对于矩阵A不知道,对于s也不知道,因此我们需要同时估计出A和s,从而将s找到。(如果A是可逆方阵则可以是 s=A1x )我们可以利用到的先验知识即这些 s 应该尽量不相关。


    这里写图片描述

    PCA 和 ICA

    众所周知,PCA(Principal Component Analysis,主成分分析)是数据处理中的一个常用方法。可以用于数据降维,提特征等,其实际上就是将在原有的特征空间中分布的数据映射到新的特征空间,或者说,将原有到正交坐标系进行旋转,使得在旋转后的坐标系下,在某几根坐标轴上数据分布的方差比较大,我们也就可以认为在这些特征上,不同数据区分度比较高,最高的我们称为第一主成份,按照大小顺序依次第二主成份,第三主成份…等等,到了最后,可能某些坐标轴上所有数据的取值都是一样的(PCA之前一般要作归一化,把数据的分布移动到以原点为中心来,这样的话,那些坐标轴几乎所有样本数据都取值为0),这就相当于在三维空间中放置了一张二维的平面,加入我们把坐标轴xyz移动到xOy与平面重合,那么法向量z就可以去掉,因为z上到值对于信息表征没有任何意义,所以对于高维数据,我们可以根据需要选择使用前面到几个最大K个特征值,而不是之前的所有特征,这就是PCA降维的原理。经过PCA分解以后的分量都是正交的,因此是不相关的,但是不能保证独立。

    对于数据向量而言,PCA实际上是为了满足上面到目的,做了一个线性变换。而我们的ICA(Independent Component Analysis,独立分量分析) 实际上也是对数据在原有特征空间中做的一个线性变换。相对于PCA这种降秩操作,即可以用作压缩到降维方式,ICA并不是通过在不同方向上方差的大小,即数据在该方向上的分散程度来判断那些是主要成分,那些是不需要到特征。相反,ICA并没有设定一个所谓主要成分和次要成分,ICA认为所有的成分同等重要,而我们的目标并非将重要特征提取出来,而是找到一个线性变换,使得变换后的结果具有最强的独立性,而PCA中的不相关太弱,我们希望数据的各阶统计量都能利用,即我们利用大于2的统计量来表征。而且,ICA并不要求特征是正交的。如图所示:


    这里写图片描述

    对于两个都服从均匀分布到数据来说,PCA 和 ICA 的比较如下:


    这里写图片描述

    那么,如何才能将数据空间旋转到在轴上的分布最具有独立性呢?考虑 中心极限定理(Central Limit Theorem) : Average of many independent random variables will have a distribution that is close(r) to gaussian。也就是说,多个独立随机变量混合之后会趋向于高斯分布,那么我们可以认为,越是混合的变量,越是Gaussian,越是独立的,则Gaussian性越弱。因此,我们利用非高斯性(Nongaussianity)来度量信号之间的独立性。具体可以用峰度(kurtosis)或者KL散度。 我们知道 KL-divergence 可以用来衡量两个概率分布的相似程度,因此可以计算出当前分布与高斯的相异程度。 kurtosis (from Greek : κυρτός, kyrtos or kurtos, meaning “curved, arching”)是随机变量的四阶标准矩


    这里写图片描述

    对于单峰的分布,该统计量表征的是分布的pdf的峰的尖锐程度。(不过此处有争议,有文章指出,kurtosis表征的是尾部而非尖峰【Kurtosis tells you virtually nothing about the shape of the peak - its only unambiguous interpretation is in terms of tail extremity; i.e., either existing outliers (for the sample kurtosis) or propensity to produce outliers (for the kurtosis of a probability distribution).】)这个量有个好处,就是对于所有的正态分布,kurtosis都是3 (这也说明了ICA处理不了高斯分布之和的情况,因为高斯分布本身所蕴涵的内容太少,只要确定1和2阶矩,正态分布就能给定,所以ICA的算法在作推导的时候要假设source是非高斯的,当然还有一个自然的假设就是信源mutually independent)。因此常用 excess kurtosis 计算,即上面计算得到的kurtosis - 3。将 excess kurtosis 分成三类:等于0的叫做mesokurtic,正数的叫做leptokurtic(lepto- means slender),负数的叫做platykurtic (platy- means broad)。几个常见分布的excess kurtosis如下图:


    这里写图片描述

    ICA的优化算法有:基于Gradient method 的 “infomax”;Fixed-point algorithom 的 FastICA。此一节暂从略。给出一个FastICA的结果,感觉还不错:

    开始是这样的


    这里写图片描述

    然后慢慢随着迭代,分开咯:


    这里写图片描述

    问题背景以及基本原理和思路如上。之后读 Independent Component Analysis : Algorithms and Applications 并整理笔记。

    THE END

    2017/12/24 Sun 19:27 于 平安夜
    Merry Christmas ~

    reference:

    http://research.ics.aalto.fi/ica/icademo/
    https://en.wikipedia.org/wiki/Kurtosis#cite_note-1
    Westfall, PH. “Kurtosis as Peakedness, 1905 - 2014. R.I.P.”. Am Stat. 68: 191–195. doi:10.1080/00031305.2014.917055. PMC 4321753 Freely accessible. PMID 25678714.
    slides:A Short Introduction to Independent Component Analysis with Some Recent Advances / Aapo Hyvärinen / Dept of Computer Science / Dept of Mathematics and Statistics / University of Helsinki

  • 相关阅读:
    20172314 2017-2018-2 《程序设计与数据结构》第七周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》第六周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》第5周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》实验报告一
    20172314 2017-2018-2 《程序设计与数据结构》 第三周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》第一周学习总结
    预备作业03
    学号 2017-2018-20172309 《程序设计与数据结构》第3周学习总结
    # 学号 2017-2018-20172309 《程序设计与数据结构》实验1报告
    第二 周作业总结
  • 原文地址:https://www.cnblogs.com/morikokyuro/p/13256840.html
Copyright © 2011-2022 走看看