看完了sparse coding,开始看ICA模型,本来ng的教程上面就只有一个简短的介绍,怎奈自己有强迫症,爱钻牛角尖,于是乎就搜索了一些ICA的介绍文章(都是从百度文库中搜来的),看完之后感觉这个略懂一二,遂写文以记之,一为加深印象,二为分享交流。

一:引言

ICA  IndependentComponent Analysis 又名独立分量分析。

ICA是20世纪90年代发展起来的一种新的信号处理技术,它是从多维统计数据中找出隐含因子或分量的方法。从线性变换和线性空间角度,源信号为相互独立的非高斯信号,可以看作线性空间的基信号,而观测信号则为源信号的线性组合,ICA就是在源信号和线性变换均不可知的情况下,从观测的混合信号中估计出数据空间的基本结构或者说源信号。

二:ICA模型介绍

2.1.Blind Signal Separation, BSS问题

BSS问题,即盲信号分离问题,是信号处理中一个传统而又极具挑战性的课题。BSS是指仅从观测的混合信号(通常是多个传感器的输出)中恢复独立的源信号,这里的“盲”是指:1.源信号是不可观测的;2.混合系统是事先未知的。在科学研究和工程应用中,很多观测信号都可以假设成是不可见的源信号的混合。所谓的“鸡尾酒会”问题就是一个典型的例子,简单说就是当很多人(作为不同的声音源)同时在一个房间里说话时,声音信号由一组麦克风记录下来,这样每个麦克风记录的信号是所有人声音的一个混合,也就是通常所说的观测信号。问题是:如何只从这组观测信号中提取每个说话者的声音信号,即源信号。如果混合系统是已知的,则以上问题就退化成简单的求混合矩阵的逆矩阵。但是在更多的情况下,人们无法获取有关混合系统的先验知识,这就要求人们从观测信号来推断这个混合矩阵,实现盲源分离。

经典的鸡尾酒宴会问题(cocktail party problem)。假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置了n个声音接收器用来记录声音。宴会后,从n个麦克风中得到一组数据Xi(Xi1,Xi2,……Xin)i=1,2……m,i表示采样的时间顺序,也就是说共得到了m组采样,每一组采样都是n维的。我们的目标是单单从这m组采样数据中分辨出每个人说话的信号。

问题总结:

ICA的目的是对任何t,根据已知X(t)的在A未知的情况下求未知的S(t),ICA的思路是设置一个n*n维反混合阵W,经过变换后得到n维输出列向量Y(t)=[y1(t),y2(t),……y3(t)],即有 :

Y(t)=W*X(t)=W*A*S(t)

基本独立分量分析的线性模型还有一些假设;例如1,信号源之间相互统计独立;2,信号源中最多有一个是高斯分布;3,观测信号的数目和信号源的数目相等等。完整假设请参看文末的参考文献。

三:模型转化

通过上面的分析可知,已知混合信号X,来寻找分离矩阵W,然后计算WX来找到Y,即原始信号S的估计值。

在模型中我们假设各个信号S间是相互独立的,所以我么求解得到的Y的分量间也是相互独立的,所以在未知A,W,只有观测数据X的情况下,我们通过度量Y各个分量间的独立性,来评判求解结果的好坏。Y的各分量独立性越好,说明Y越接近S的真实值,此时的分离矩阵W也越好。

这样盲源分离问题就变成了,一个优化问题,已知数据X,随机初始化一个分离矩阵W;通过变换WX的到Y,要求Y各个分量间相互独立;通过度量Y分量间的独立性,来寻找最好的分解矩阵W。如图所示

ICA算法分为两个部分,1优化判据;2,寻优算法

这里先说一下这个简略介绍的寻优算法,其实有时寻找目标函数最优值的算法,例如经典的梯度下降算法等,由于这里重点介绍ICA模型,所以寻优算法简略提一下。

下面就来介绍ICA的精髓部分,就是优化判据,就是判断结果好不好的依据,那么在ICA中,根据我们的介绍我们的判据就是Y各个“分量间相互独立性”。那么如何度量Y变量之间的相互独立性呢?

度量变量之间的相互独立性,这里分为两种方法,一种是通过统计中特征值来度量,例如四阶中心距,峭度(kurt)等,一种是通过信息论中熵的概念来度量。

在详细介绍度量之前先介绍一些相关的引理,先吃一些饭前的辅餐,然后再来消化后面的饕餮大餐。

四:基础知识介绍

4.1 概率论基本知识

线性变换下两个pdf(probability density function,概率密度函数)之间的关系

设X为n维随机向量,其pdf为p(X)。线性变换Y=WX,W为满秩n*n维矩阵。这样,Y也是n维随机向量,其pdf为p(Y)。这两个随机向量的pdf之间满足下列关系:

    或者     

其中是的行列式,注意下式成立:

非线性变换下两个pdf之间的关系,若Y=g(X),其中g(.)为非线性变换函数。需要计算g函数的雅克比矩阵来变换p(X)和p(Y)之间的关系,在此不详述。

4.2  统计知识

众所周知,如上图高斯分布函数(正态分布函数);高斯信号可由其一、二阶统计量(均值和方差)唯一确定,而传统的信号处理方法是把信号假设为高斯分布。但是在实际中,纯粹的高斯信号很少见,所以这种假设在很多情况下并不满足。传统信号处理方法中常用的分析工具是相关和功率谱这些二阶统计量,而与之相对应,非高斯信号处理则以诸如累积量这样的高阶(阶数大于二)统计量为主要的分析工具。下面简单介绍一下与ICA方法联系密切的高阶统计量方面的基本知识,包括高阶矩和高阶累积量。

4.3 矩

对于单个随机变量x,所谓矩是描述随机变量性质的一种统计量,它是一系列依赖于概率密度函数的描述性的离散参数。

式中,Ux(K)表示第阶k(原点)矩。很显然,一阶矩Ux(1)=E{x}=Mx是x的均值。而x的中心矩则是用来描述对均值Mx而言的分布特性的一系列参数。

当均值为零时,k阶中心矩和k阶原点矩是等价的。对实际的样本数据而言矩的估计方法非常简单,所以具有很高的实用性。二阶中心矩是指方差,反映了信号的能量;三阶中心矩度量了概率密度函数关于均值处的不对称程度。具有对称分布的概率密度函数其三阶中心矩为零。四阶中心矩被用来度量概率分布的峭度。通常简记为。

4.4信息论知识

4.4.1 熵

信息论中,熵通常是用来衡量信源发出每一个消息的平均不确定度,概率愈小的消息带来的信息量愈大,熵也就愈大。连续情况下,对于一个随机变量x,如果它的密度函数为p(x),则x的熵定义为:

用数学期望的形式来表示则为H=E{ln(1/p)}=-E{ln(p)}。值得指出的是,在所有的连续概率密度函数中,如果均值Ux和方差sigma^2都取已知的固定值,则使熵达到最大值的将是高斯分布,此时的最大熵为H=0,5+log(2,sqrt(2*pi*sigma)) (比特)。

4.4.2 联合熵

可以把定义推广到随机矢量的联合微分熵:

为将熵应用在ICA算法中,下面考虑可逆的线性变换对联合熵的影响。对于具有联合密度函数px(X)的n维随机变量X=[X1,X2..Xn],以及一个非奇异矩阵W,得到联合密度函数py(Y)的n维随机变量Y=[Y1,Y2..Yn]。由概率论可知:

根据熵的定义,于是可得:

进一步写成:

上式意味着可逆的线性变换对随机矢量联合熵的影响是增加了一个常数项,如果这个线性变换是一个正交变换,满足det(W)=1,则有:

H(Y)=H(X)

所以得到一个更加重要的结论是:多维分布经过坐标系的旋转后联合微分熵保持不变.

4.4.3 相对熵

假设对同一个随机矢量X,有两种可能形式的概率分布p(x)和q(x)。为了衡量这两个分布之间的距离,定义相对熵(或称作“Kullback-Leibler距离”,是一个与“交叉熵”,“信息散度”和“判别信息量”的概念密切相关的量)。连续情况下的相对熵定义为:

4.4.4 负熵(高斯分布熵和其他分布熵的相对熵)

概率论中的中心极限定理这一经典理论告诉我们:在一定条件下,多个独立分布的和的分布趋向于高斯分布。将该理论应用到ICA问题里可以得出这样的结论:观测信号是多个独立源信号的线性组合,所以其高斯性比源信号的高斯性强,换句话说,源信号的非高斯性比观测信号的非高斯性要强。粗略地讲就是,非高斯性愈强就愈独立。这就启示我们将非高斯性作为ICA的一个判据。除了峭度可以用来表征非高斯性外,负熵是度量非高斯性的一个更加稳健的判据。

在定义负熵之前先给出信息论中的一个结论,即所谓的熵极大定理:在所有具有相同协方差矩阵的分布中,高斯分布的熵最大,简单运用K-L散度的性质便可以证明这个定理(详细见参考文献)。在一定的限制条件下,可以找到一个特定的分布具有最大的信息熵。而上述定理中的这个特定的分布恰好是高斯分布。

负熵的概念因此产生。负熵定义为:

pG(x)和p(x)具有相同协方差阵的高斯概率密度函数。有负熵的定义可以得出,负熵J(x)>=0,当且仅当p(x)也为高斯分布时,J(x)=0.

负熵的一个重要性质是:对于可逆的线性变换保持不变。显然,与熵对于正交变换(det(W)=1)保持不变相比负熵需要的条件更加宽松。该性质使得可以将边缘J(Yi)负熵作为代价函数,然后寻找线性变换W使其最大化。这就导致了ICA算法中负熵判据的有效性。

4.5互传信息量

互信息(Mutual Information,简称MI)是用来度量随机变量之间独立性的基本准则,互信息可以表示成K-L散度的形式。多个随机变量之间的互信息定义为其联合概率密度函数与各边缘密度函数乘积之间的K-L散度,即:

将上式右边继续展开:

由于K-L散度的非负性可知:

容易看出,当X=[X1,X2....Xn]的各个分量相互独立时,即有时,互信息I(x)=0。

得出一个重要结论:I(x)>=0,当且仅当各个分量相互独立时等号成立。进一步观察,各分量边缘熵的和总是大于或等于所有分量的联合熵,而多出的那部分恰好是各分量的互信息。那么互信息可以描述为由于各个分量之间的相互依赖关系带来的信息的冗余。

参考文献:

1 言简意赅的ppt:http://wenku.baidu.com/view/8fa7f71b6bd97f192279e9aa.html

2 基础知识原文:http://wenku.baidu.com/link?url=zXMgJBGspPlWro1ohc57aRZrZWRqNKd4kyLT_gRfkUSdf9l4bT_yLbk6SAwvT9CUA5brQOMAoFQAQ6BWVXxkiWeGSJeOzy5FPVcftk7PmyG

转载于:https://www.cnblogs.com/huty/p/8518731.html

【机器学习】ICA 原理以及相关概率论,信息论知识简介相关推荐

  1. ICA原理及相关链接

    ICA算法的数学原理_Leo-Ma的博客-CSDN博客_ica算法 数据白化 Whiten process--数据的白化处理_slsl97的博客-CSDN博客_白化处理 FastICA的matlab代 ...

  2. 机器学习、深度学习需要哪些数学知识?✅

    如果不是有太多自由时间,不要过度投入到数学上,或者说不要系统大量地学习,可以遇到不懂的再去学习相关数学知识. (本文部分摘自图灵的猫公众号 ) 微积分 微积分是现代数学的基础,线性代数,矩阵论,概率论 ...

  3. 机器学习中用到的概率知识_学习机器学习前,你首先要掌握这些概率论基础知识...

    编者按:本文来自微信公众号"将门创投"(ID:thejiangmen),编译:Tom R,36氪经授权转发. 机器学习中有很多十分重要的核心基础概念,掌握这些概念对我们进行机器学习 ...

  4. Docker容器原理及相关知识

    Docker容器原理及相关知识 一.Docker容器介绍 1.容器概念 2.Docker介绍 3.Dcker的特点 二.Docker的体系架构 三.相关术语介绍 1.Docker 客户端 2.Dock ...

  5. 来学习一下概率论基本知识,它能让防止你的模型过拟合

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 线性代数和概率论是机器学习的必备基础课程.前几天,量子位已经推荐了一个可以互动的线性代数课程. 最近,有位印度小哥Nimish Mishr ...

  6. 机器学习数学原理(1)——极大似然估计法

    机器学习数学原理(1)--极大似然估计法 事实上机器学习的大部分算法都是以数理统计和概率论为理论基础构建的.笔者在学习机器学习的过程中,意识到其实机器学习中的很多假设背后都是有着数学原理支撑的,从而使 ...

  7. 机器学习和深度学习相关的博客推荐

    Deep Learning学习笔记: Deep learning:五十一(CNN的反向求导及练习) Deep learning:五十(Deconvolution Network简单理解) Deep l ...

  8. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...

  9. 计算机术语new一个,微机原理第一章计算机基础知识(new)

    <微机原理第一章计算机基础知识(new)>由会员分享,可在线阅读,更多相关<微机原理第一章计算机基础知识(new)(47页珍藏版)>请在人人文库网上搜索. 1.1.第一章计算机 ...

最新文章

  1. 特斯拉终于要“国产”了!
  2. 谷歌甲骨文Java专利大战终审判决:安卓使用Java不构成侵权
  3. 远去的高考,消逝的大一……
  4. centos 6.5 配置LDAP服务器+客户端!
  5. 使用nginx+Apache负载均衡及动静分离
  6. @codeforces - 1106F@ Lunar New Year and a Recursive Sequence
  7. 我的世界方块云服务器bug,我的世界:两个方块能无限刷经验?这装置太BUG了
  8. ShellExecute 函数的用法和实例
  9. idea怎么将本地文件和远程git对比_IDEA新建本地项目关联远程git仓库
  10. Fighting_小银考呀考不过四级【递推】
  11. 面试官重点考察求职者这5项能力
  12. linux命令之grep 命令
  13. 一次sendmsg的改造过程
  14. 关于js弹出框的介绍:
  15. 【论文分享】ACL 2020 信息抽取任务中的新动向
  16. Javascript特效:左侧二维码的显示和隐藏
  17. 最早会外语的人,是怎么回事
  18. 02-微信小程序商城 顶部广告图片(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  19. 虚拟机系统iso镜像下载_如何下载正版系统镜像
  20. python 调用海康sdk_Qt调用海康SDK实现摄像头视频播放

热门文章

  1. 股东痛斥联想管理层:都是帅哥 但业绩差
  2. 耳目一新的在线答疑服务背后的核心技术
  3. CCNA之网络地址转换(NAT)简介
  4. myeclipse8.5打包jar并引入第三方jar包
  5. 调试24L01经验总结
  6. 〖经典〗网页特效汇总实例
  7. oracle rac war配置,Oracle RAC安装配置流程
  8. 通过深度学习检测疟疾
  9. 如何从硬件到防火墙设置homelab
  10. bash 别名_Linux的10个方便的Bash别名