独立分量分析(Independent Component Analysis)

盲源信号分离问题

引入:鸡尾酒会问题

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

盲源信号分离

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

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

独立分量分析(Independent Component Analysis)相关推荐

  1. 独立成分分析(Independent Component Analysis,ICA)原理及代码实现

    过程监控中会用到很多中方法,如主成分分析(PCA).慢特征分析(SFA).概率MVA方法或独立成分分析(ICA)等为主流算法. 其中PCA主要多用于降维及特征提取,且只对正太分布(高斯分布)数据样本有 ...

  2. 独立成分分析(Independent Component Analysis,ICA)模型介绍

    独立成分分析ICA模型 1 历史背景 2 ICA基本模型 3 独立与不相关 \qquad 1 历史背景 \qquad独立成分分析思想和方法最早源于上世纪八十年代几个法国学者的研究工作,尽管当时他们并没 ...

  3. 基于独立分量分析的语音信号盲源分离

    一.盲源分离介绍 语音信号处理是当今通信技术领域的研究热点之一.在实际应用中,我们常常遇到多个语音信号混杂在一起的情况,这就需要对这些混合信号进行分离,提取出原始的独立语音信号.盲源分离(Blind ...

  4. 用独立分量分析分离混合信号

    周围的世界是来自各种来源的信号的动态混合.就像上面图片中的颜色相互融合,产生新的色调和色调一样,我们感知的一切都是简单组件的融合.大多数时候,我们甚至都不知道我们周围的世界是如此混乱的独立过程混合.只 ...

  5. 快速广义的形态分量分析 matlab,独立分量分析法降噪技术研究

    在超声检测中,无论是人为因素还是非人为因素,都不可避免的会出现影响实验数据的因素,其中噪声是很重要的一环,实验数据的可靠性会因为噪声的干扰而大打折扣,以为了提高检测数据的精确性需要将噪声去除掉.噪声的 ...

  6. parzen窗估计如何进行结果分析_基于参数Parzen窗估计的独立分量分析

    基于参数 Parzen 窗估计的独立分量分析 成孝刚 ; 姜华 ; 刘国庆 ; 陈启美 [期刊名称] <信号处理> [年 ( 卷 ), 期] 2009(025)003 [摘要] 在对盲源信 ...

  7. 尝试理解ICA(Independent Component Analysis)独立成分分析

    1.从鸡尾酒会问题(cocktail party problem)说起 ICA最早是从神经网络领域开始研究的,应用于信号分离.特征提取.为了简单,我们这里从一个经典的例子开始--盲源信号分离(blin ...

  8. 独立成分分析(Independent component analysis, ICA)

    作者:桂. 时间:2017-05-22 12:12:43 链接:http://www.cnblogs.com/xingshansi/p/6884273.html 前言 今天群里冒出这样一个问题:群里谁 ...

  9. 独立成分分析(Independent Component Analysis)(ICA)(主元分解)

    1. 问题: 1.上节提到的PCA是一种数据降维的方法,但是只对符合高斯分布的样本点比较有效,那么对于其他分布的样本,有没有主元分解的方法呢? 2.经典的鸡尾酒宴会问题(cocktail party ...

最新文章

  1. 百万数据修改索引,百万数据修改主键
  2. Python3中with用法
  3. zeroc-ice的全双工通信策略
  4. python计算tfidf sklearn计算
  5. Sqlite使用技巧集锦
  6. AM3354开发 -- bash: /root/opt/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-gcc: No such file or
  7. 力控 串口服务器 虚拟串口,力控工业自动化组态软件eForceCon SD V2.0
  8. 2019标杆案例复盘(上):数字化——金融政企篇
  9. QBC(Query By Criteria) QBE (Query By Example)
  10. 前端学习(3308):redux项目创建和概况
  11. Concurrent and Parallel
  12. c语言编写面条排序算法,腾讯PCG事业部腾讯视频面经
  13. 设计模式之适配器与外观模式(二)
  14. bin文件用cad打开_怎么快速打开CAD图纸?
  15. Android Studio Emulator 报错 detected adb
  16. Fireshot——很棒的的网页截图扩展
  17. 外包程序员,如何提高自己跳出外包圈子?
  18. 人工智能导论--浙江工业大学--王万良
  19. CI服务器-Hudson持续集成服务器的安装配置与使用
  20. 关键词分词工具_关键词在SEO推广中的重要作用

热门文章

  1. 【Matlab】 MATLAB代码速览
  2. JS实现图片90度旋转
  3. Mockjs基础用法
  4. 数据库“写时模式”与“读时模式”对比
  5. 详解函数指针和类成员函数指针
  6. win8如何打开python命令行模式_win8系统如何打开运行|win8系统如何进入运行|win8系统打开cmd图文教程...
  7. 【观察】与“懂行人”一起,助推智慧高速发展“加速度”
  8. 设计一个 60T 的医院数据仓库及其 OLAP 分析平台,你怎么做?
  9. 苹果硅胶套市场空间上百亿:合作厂商利润达30%
  10. Android8.1 MTK 禁止应用图标显示在桌面