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

2023-12-02 12:18

本文主要是介绍独立成分分析ICA系列4:ICA的最优估计方法综述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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的最优估计方法综述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445313

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac