ICA算法的研究可分为基于信息论准则的迭代估计方法基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。基于信息论的方法研究中,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计算法。如FastICA算法, Infomax算法,最大似然估计算法等。基于统计学的方法主要有二阶累积量、四阶累积量等高阶累积量方法。

1.最大似然估计算法

1.1 目标函数部分

假设信号Si有概率密度函数Ps(t),由于我们假定信号源是相互独立的,其实经过白化处理后就变成独立的了;那么在给定时刻的联合分布函数为:

知道了信号源的联合分布Ps(t),再由分解矩阵S=WX,可以得出信号x的联合分布函数。

其中|W|为W的行列式。

由于没有先验知识,只知道原信号之间特征独立,且最多有一个是高斯分布,所以没有办法确定Ps(t)的分布,所以我们选取一个概率密度函数Ps'(t)来近似估计Ps(t)。

概率密度函数由累积分布函数F(x)求导得到。

F(x)要满足两个性质:1单调递增;2值域在[0 1]范围

我们发现sigmoid函数的定义域是负无穷到正无穷,值域为0到1,缓慢递增的性质。基于sigmoid函数良好的性质,我们用sigmoid函数来近似估计F(x),通过求导得到Ps'(t)。

            

两函数图像如图:

如果我们预先知道Ps(t)的分布函数,那就不用假设了;但是在缺失的情况下,sigmoid函数大多数情况下能够起到不错的效果。由于Ps(t)是个对称函数,所以均值E[s]=0,那么E[x]=E[AS]=0,x的均值也是0。

知道了Ps(t),就剩下W了,在给定训练样本{Xi(Xi1,Xi2,........Xin),i=1,2....m个样本,样本的对数似然估计如下:

 (W=H')

T=m为独立同分布观测数据的样本数。最大化此似然函数就可获得关于参数W 的最佳估计。

1.2 优化部分(梯度下降算法)

接下来就是对W求导了,这里牵涉一个问题是对行列式|W|进行求导的方法,属于矩阵微积分

最终得到的求导后公式如下,logg'(s)的导数为1-2g(s):

当迭代求出W后,便可得到S=WX来还原出原始信号.

2.负熵最大的FastICA算法

2.1目标函数部分

2.1.1负熵判别准则

由极大熵原理可知,在方差相同的条件下,所有概率分布中,高斯分布的熵最大;因而我们可以利用熵来度量分布的非高斯性。因此通过度量分离结果的非高斯性,作为分离结果独立性的度量;当非高斯性达到最大时,表明已完成对各个分量的分离。因为FastICA算法以负熵最大作为一个搜寻方向,因此先讨论一下负熵判决准则。由信息论理论可知:在所有等方差的随机变量中,高斯变量的熵最大,因而我们可以利用熵来度量非高斯性,常用熵的修正形式,即负熵。

负熵的定义:   其中XG是和X具有相同协方差的随机变量,H()为变量的微分熵

微分熵定义:

联系极大熵原理,XG为高斯分布,所以J(X)>=0;当且仅当X本身也为高斯分布时=0;所以J(x)的值越大,证明X的非高斯性越强,

2.1.2负熵与独立性关系

假设n维随机变量X=[X1,X2……Xn],其互信息为I(X):

互信息即为:独立分布乘积分布与联合分布之间的负熵J(X),当Xi相互独立时,互信息为0;

由于计算J(X)需要联合分布函数和各个分量的分布函数,这个显然不切实际;所以采用非线性变换g(x)后的均值期望来近似替代。

由于Xi即为观测数据X分离后的独立变量Si,再由中心极限定理可知,若随机变量X有许多相互独立的随机变量信号源Si相互组合而成,则不论Si为何种分布,观测变量数据X比Si具有更强的高斯性,换言之Xi的非高斯性更强。所以,负熵J(X)的值越小,即此时的互信息I(X)越小,此时分离的变量Si独立性越好。

2.2 优化部分

快速ICA算法是找一个方向以便WX具有最大的非高斯性,也即最大的相互独立性;这里的独立性通过负熵来给出,通过均值近似估计来计算。这里通过白化处理,使W的范数为1,即使WX的方差估计为1;

优化过程推导比较复杂,公式太多!

实践中,FastICA算法中用的期望必须用它们的估计值代替。当然最好的估计是相应的样本平均。理想情况下,所有的有效数据都应该参与计算,但这会降低计算速度。所以通常用一部分样本的平均来估计,样本数目的多少对最后估计的精确度有很大影响。迭代中的样本点应该分别选取,假如收敛不理想的话,可以增加样本的数量。

独立成分分析ICA系列4:ICA的最优估计方法综述相关推荐

  1. 独立成分分析ICA系列1:意义

    1.前言 独立成分分析思想和方法最早源于上世纪八十年代几个法国学者的研究工作,尽管当时他们并没有命名其为ICP;在1986年举行的神经网络计算会议上,法国学者Heraull和Jutten提出了一个基于 ...

  2. 学习笔记 | 独立成分分析(ICA, FastICA)及应用

    学习笔记 | 独立成分分析[ICA, FastICA]及应用 1 背景说明 2 算法原理 2.1 ICA简介 2.2 形式化表达 3 算法步骤与代码 4 算法改进:FastICA 5 ICA实例与应用 ...

  3. 独立成分分析 ( ICA )

    PCA是一个降维的过程,ICA则是帮助你从多个维度分离有用数据的过程. 独立成分分析思想和方法最早源于上世纪八十年代几个法国学者的研究工作,尽管当时他们并没有命名其为ICP;在1986年举行的神经网络 ...

  4. Hum Brain Mapp | 联合连接矩阵独立成分分析:结构和功能连接的自动链接

    导读 对人类大脑连接的研究,包括结构连接(SC)和功能连接(FC),这些方面的研究有助于深入了解大脑功能的神经生理机制及其与人类行为和认知的关系.这两种类型的连接测量都提供了重要且互补的信息.然而,将 ...

  5. 独立成分分析ICA系列3:直观解释与理解

    服从均匀分布的独立成分sl和s2的联合分布.其中横坐标表示s1,纵坐标表示s2 为了进一步解释ICA的统计模型,考虑服从下列均匀密度分布的两个互相独立的随机变量: 这个联合分布是在一个方形上均匀分布的 ...

  6. 独立成分分析ICA系列2:概念、应用和估计原理.

    1.概念 独立成分分析是从多元(多维)统计数据中寻找潜在因子或成分的一种方法.ICA与其它的方法重要的区别在于,它寻找满足统计独立和非高斯的成分.这里我们简要介绍ICA的基本概念.应用和估计原理. 1 ...

  7. Python专栏 | 独立成分分析(ICA)的实例应用:消除伪影信号

    关注微信公众号:脑机接口研习社 了解脑机接口最近进展 系列文章目录 Python专栏 | 脑电图和脑磁图(EEG/MEG)的数据分析方法之载入数据 Python专栏 | MNE脑电数据(EEG/MEG ...

  8. R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行独立成分分析ICA(Independent components analysis)、设置method参数为ica

    R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行独立成分分析ICA(Independent components analysis).设置method参数为ica 目 ...

  9. 独立成分分析ICA、因子分析、LDA降维、NMF非负矩阵分解

    独立成分分析ICA.因子分析.LDA降维.NMF非负矩阵分解 目录 独立成分分析ICA.因子分析.LDA降维.NMF非负矩阵分解 独立成分分析ICA

  10. 主成分分析(PCA)和独立成分分析(ICA)相关资料

    来源:知乎:独立成分分析(ICA)与主成分分析(PCA)的区别在哪里(https://www.zhihu.com/question/28845451) - 一楼:魏天闻 首先回答题主的问题:不管是PC ...

最新文章

  1. 模拟命令行自动输入的HTML,HTML5 命令行界面仿真和自动打字动画
  2. 深入浅出 Linux 惊群:现象、原因和解决方案
  3. react数据从本地读取_如何将从Google表格读取的React应用程序部署到Netlify
  4. 使用临界段实现优化的进程间同步对象-原理和实现
  5. golang错误:The process cannot access the file because it is being used by another process
  6. 50年代黄岩师专_300多位30、40和50年代获得第一份技术工作的开发人员的故事
  7. java怎么设计一个系统吗_谁能帮我设计一个Java的文件管理系统谢谢各位
  8. python运维脚本部署jdk_Python+PyDev+Jdk+Eclipse开发环境部署
  9. shiro框架的简单介绍以及使用(一)
  10. java 打开scv 文件_JAVA读写CSV文件
  11. 删除Windows远程桌面连接记录 和 删除Windows凭据
  12. 免费苹果账号(apple id)申请ios证书p12真机调试
  13. 【3D建模制作技巧分享】Maya模型如何导入zbrush
  14. 【读书】2019年阅读记录
  15. 怎样查出SQLServer的性能瓶颈
  16. 洛谷 P1293 班级聚会
  17. 应用系统如何与外部渠道进行对接?java代码实现篇
  18. 油猴Tampermonkey及其脚本的安装
  19. 判断用户关闭浏览器-beforeunload事件
  20. vip结尾的域名到期查询,多久会被删除?

热门文章

  1. ASA IPSEC ***配置
  2. UI基本控键UIView ,UILabel,UITextField ,UIButton,UIAlertView
  3. liunx 下巧妙使用代理服务器(squid)
  4. hdu 3962(AC自动机+矩阵优化dp)
  5. 二叉树的操作(二叉树的创建、先序遍历---先根、中序遍历----先左、后续遍历---后根)
  6. nyoj36最长公共子序列 动态规划
  7. linux不允许root用户登录图形界面的解决办法
  8. HDUOJ-2094-产生冠军
  9. ActionScript3(AS3)类库学习之(八)——自定义上下文菜单
  10. ZT Android4.2蓝牙基础架构学习