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

独立成分分析(Independent Component Analysis,ICA)模型介绍目录独立成分分析(IndependentComponentAnalysis,ICA)模型介绍1历史背景2ICA基本模型3独立与不相关独立成分分析(IndependentComponentAnalysis,ICA)模型介绍你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基…

大家好,又见面了,我是你们的朋友全栈君。

\qquad

1 历史背景

\qquad 独立成分分析思想和方法最早源于上世纪八十年代几个法国学者的研究工作,尽管当时他们并没有命名其为ICA;在1986年举行的神经网络计算会议上,法国学者Heraull和Jutten提出了一个基于神经网络模型和Hebb学习准则的方法,来解决盲源分离问题,简称BSS。

\qquad 混合信号是由相互统计独立的源信号混合而成的。这篇文章提出的算法可以解决具有两个源信号混合的盲源分离问题。他们的工作开创了信号处理领域的新纪元,从此盲源分离问题得到了各国学者的广泛重视。但在当时仅为法国学者所研究,在国际上的影响十分有限。八十年代国际神经网络会议上,当时少数有关的文章被埋没于back-propagation网络、Kohonen自组织网络的研究热潮中,并没有引起各国学者足够的重视。

\qquad 进入到上世纪九十年代初期,某些学者开始了这方面的研究,他们扩展了八十年代有关盲分离问题的一些工作,其中,学者Cichochi和Unbehauen提出了当时较为流行的ICA算法。芬兰学者Ojs,Ksrhunen,等提出了“非线性ICA ”方法,然而,直到九十年代中期,仍然只得到少数学者的关注,主要原因是这些学者提出的算法所能解决的问题是相当有限的。

\qquad 事实上,解决盲源分离问题是一个非常困难的任务,因为我们不知道源信号的任何信息,在Heraull和Jutten提出的算法中,只作了两个假设:一个是假设源信号是相互统计独立的,另一个是假设己知源信号的统计分布特征。如果假设源信号是高斯分布的,则很容易看出这个盲源分离问题没有一般的解,因为高斯分布的任何线性混合仍然是高斯。用Heraull-Jutten的网络模型解决盲源分离问题,需要假设源信号是亚高斯信号,也就是说源信号的峰度值要小于高斯信号的峰度值。

\qquad 直到1994年,法国学者Comon,Heraull和Jutten提出的独立成分分析问题给出了一个较为清晰的数学上的框架,从此成为文献中的正式用语。

\qquad ICA获得广泛的关注和持续增长的研究兴趣归功于美国学者Bell和Sejnouski在九十年代发表的里程碑式的论文,他们的方法基于信息极大化原理,这个算法进一步由日本学者和他的合作者用自然梯度完善,其本质上是极大似然估计方法。几年以后,芬兰学者Hyvarrinen和Oja提出Fixed-Point算法(不动点算法),或称为FastICA。因为它对大规模问题特别有效,而得到了广泛的应用。

\qquad 解决标准的独立成分分析只需假设源信号是相互统计独立的,并且满足非高斯性,到目前为止,标准的独立成分分析算法己经较为成熟,国际上使用最为广泛的是信息极大化算法、FastICA算法、扩展的信息极大化算法和ECSI算法等。

\qquad 标准的独立成分分析的数学模型较为简单,不同的独立性判据所导致的算法在形式上也是基本相似的。形势虽然简单,但到目前为止,以实际的生物医学信号处理为例,研究者大量使用的主要还是标准的算法,主要因为它发展的最为成熟,计算稳定,较少有数值问题,并且网上有相关作者编制的通用软件包可用于研究下载在真实数据的处理过程中,可尽量将所面临的问题转化为标准的问题,然后选用有效的算法来解决它因为真实数据往往规模比较大。

\qquad 选择在实算中收敛速度快,计算稳定的算法是相当重要的,最初所希望解决的鸡尾酒会问题是极为复杂和困难的,实际的盲源分离问题又是方方面面,需要将各种实际情况转化为相应的数学模型来解决,现在人们重点研究的是扩展的独立成分分析,其模型是标准的模型的扩展和补充,来进一步满足实际需要,比如具有噪声的独立成分分析阵,稀疏和超完备表示问题,具有时间结构的独立成分分析问题,非线性的独立成分分析和非平稳信号的独立成分分析等。

\qquad 独立成分分析己经被广泛应用于实际数据的处理中,诸如图像处理、语音信号处理、生物医学信号处理、模式识别、数据挖掘、通讯等。

\qquad

2 ICA基本模型

\qquad 独立分量分析(Independent Component Analysis,ICA)是将信号之间的独立性作为分离变量判据的方法。由Comon于1994年首次提出。Comon指出ICA方法可以通过某个对比函数(Contrast Function)的目标函数达到极大值来消除观察信号中的高阶统计关联,实现盲源分离。盲源分离被描述成在不知道传输通道特性的情况下,从传感器或传感器阵列中分离或估计原始源波形的问题。然而,对于某些模型,不能保证估计或提取的信号与源信号具有完全相同的波形,因此有时要求放宽到提取的波形是源信号的失真或滤波版本。

\qquad 设有n个未知的源信号构成一个列向 S ( t ) = [ s 1 ( t ) , s 2 ( t ) , … , s n ( t ) ] T S(t)=\left[s_{1}(t), s_{2}(t), \ldots, s_{n}(t)\right]^{T} S(t)=[s1(t),s2(t),,sn(t)]T,A是一个m×n维矩阵,称为混合矩阵。设 X ( t ) = [ x 1 ( t ) , x 2 ( t ) , … , x m ( t ) ] T X(t)=\left[x_{1}(t), x_{2}(t), \ldots, x_{m}(t)\right]^{\mathrm{T}} X(t)=[x1(t),x2(t),,xm(t)]T,是由m个可观察信号构成的列向量,满足下列方程:
X ( t ) = A S ( t ) , m ≥ n X(t)=A S(t), \quad m \geq n X(t)=AS(t),mn

在这里插入图片描述

\qquad 对任何t,根据已知的 X ( t ) X(t) X(t),在A未知的条件下,求未知的 S ( t ) S(t) S(t),,这就构成一个盲源分离问题,噪声可以认为是一个源信号。

\qquad 盲源分离中的“盲”是指原理上它不要求对S和A有先验知识,而实际上任务的解答明显不是唯一的,因此分解结果肯定不是唯一的,需要一些假定。如果按照以下几个基本假设条件来解决盲源分离问题,则成为独立分量分析。这些条件如下:

  1. 各源信号 s i ( t ) s_i\left(t\right) si(t)均为零均值、实随机变量,各源信号之间统计独立。
  2. 源信号数与观察信号数相同,即m=n,这时混合阵A是是一个确定且未知的方阵,A是满秩,则逆矩 A − 1 A^{-1} A1存在
  3. 各个源信号 s i ( t ) s_i\left(t\right) si(t)只允许有一个的概率密度函数具有高斯分布,如果具有高斯分布的源信号个数超过一个,则各源信号是不可分的。

\qquad ICA的思路是设置一个n×m维反混合矩阵 W = ( w i j ) W=\left(w_{ij}\right) W=(wij) X ( t ) X\left(t\right) X(t)经过W变换后得到n维输出列向量 Y ( t ) = [ y 1 ( t ) , y 2 ( t ) , … , y n ( t ) ] T Y(t)=[y_1(t),y_2(t),…,y_n(t)]^T Y(t)=[y1(t),y2(t),,yn(t)]T,即有
Y ( t ) = W X ( t ) = W A S ( t ) Y\left(t\right)=WX\left(t\right)=WAS\left(t\right) Y(t)=WX(t)=WAS(t)
在这里插入图片描述

\qquad BSS的主要工作是寻找一个线性滤波器或者是一个权重矩阵W。理想的条件下,W矩阵是A矩阵的逆矩阵。
在这里插入图片描述

\qquad 如果通过学习得以实现 W A = I WA=I WA=I I I I n × n n×n n×n单位阵),则 Y ( T ) = S ( t ) Y\left(T\right)=S\left(t\right) Y(T)=S(t),从而达到了信源分离的目的。由于没有任何参照目标,这一学习过程只能是自组织的。学习过程的第一步是建立一个以W为变元的目标函数 L ( W ) L\left(W\right) L(W),如果某个 W ^ \hat{W} W^能使 L ( W ) L\left(W\right) L(W)达到极大(小)值,则该 W ^ \hat{W} W^即为所需的解。第二步即是用一种有效的算法求 W ^ \hat{W} W^。按照 L ( W ) L\left(W\right) L(W)定义的不同和求 W ^ \hat{W} W^的方法不同,可以构成各种ICA算法。因此, ICA理论上是一个优化问题,其目的是通过优化分解矩阵W,以获得源信号s,并使源信号间的独立性最强。

从独立成分分析的模型可以看出下列因素是很难确定的:

1. 幅值不确定

\qquad 事实上,原因是很明显的,由于混合矩阵和独立成分都是未知的,如果对独立成分乘上某个标量 a i ≠ 0 ai≠0 ai=0,或同时对混合矩阵相应的除以一个相同的标量,则不影响混合信号的值。

\qquad 因此,在独立成分分析算法中,可以固定独立成分的方差,由于独立成分是随机变量,则最自然的方法就是假设独立成分具有单位方差。

b.顺序不确定

\qquad 在独立成分分析的绝大多数应用中,这两个不确定性并不是十分重要的,用ICA算法所得到的解能够满足相当多的实际应用,所得到的源信号的幅度和排序对于通常所考虑的问题影响不大.所以我们可以说独立成分分析所求得的解是波形保持解.在某些特殊的应用中,我们需要确定输出成分的顺序,可以通过某些统计量的大小来规定输出独立成分的顺序,这样的规定,使得这个问题转化为一个具有某些约束的问题,即标准的ICA问题转化为约束ICA问题。

\qquad

3 独立与不相关

\qquad 独立和不相关(uncorrelated)是紧密相关的概念,因此,可以设想使用估计不相关变量的方法来同样估计独立成分,这样的典型方法为白化(whitening)或球化(sphering),通常由主成分分析(principal component analysis)来进行.但用这样的方法来估计独立成分通常是不可行的,一般的,白化是以独立成分分析的预处理技术身份出现的。

\qquad 不相关是独立的较弱形式,两个随机变量 y 1 , y 2 y_1,y_2 y1,y2是不相关的,那么它们的协方差是零:
cov ⁡ ( y 1 , y 2 ) = E { y 1 , y 2 } − E { y 1 } E { y 2 } = 0 \operatorname{cov}\left(y_{1}, y_{2}\right)=E\left\{y_{1}, y_{2}\right\}-E\left\{y_{1}\right\} E\left\{y_{2}\right\}=0 cov(y1,y2)=E{
y1,y2}
E{
y1}
E{
y2}
=
0

\qquad 如果随机变量是零均值的,协方差化为相关 cov ⁡ ( y 1 , y 2 ) = E { y 1 , y 2 } \operatorname{cov}\left(y_{1}, y_{2}\right)=E\left\{y_{1}, y_{2}\right\} cov(y1,y2)=E{
y1,y2}
,不相关相当于零相关。

\qquad 如果随机变量是独立的,它们即是不相关的。这是因为两个随机变量y1和y2是独立的,那么对于任意两个函数 h 1 和 h 2 h_1和h_2 h1h2,我们有:
E { h 1 ( y 1 ) h 2 ( y 2 ) } = E { h 1 ( y 1 ) } E { h 2 ( y 2 ) } E\left\{h_{1}\left(y_{1}\right) h_{2}\left(y_{2}\right)\right\}=E\left\{h_{1}\left(y_{1}\right)\right\} E\left\{h_{2}\left(y_{2}\right)\right\} E{
h1(y1)h2(y2)}
=
E{
h1(y1)}
E{
h2(y2)}

\qquad 这就是我们常说的,独立意味着不相关,而不相关并不意味着独立。
比不相关稍强的概念是白化.白化的随机向量y与它的各分量是不相关的,并且具有单位方差.换句话说,随机向量Y的协方差矩阵是单位阵:
E { y y T } = I E\left\{
{yy}^{
{T}}\right\}={I}
E{
yyT}
=
I

\qquad 白化意味着我们将观测数据向量x进行线性变换,使得新向量
Z = V x Z=Vx Z=Vx

\qquad 是白化的随机向量。白化有时称为球化。白化变换总是可行的。白化的一个流行方法是协方差矩阵的特征值分解(EVD):
E { x x T } = E D E T E\left\{x x^{T}\right\}=EDE^{T} E{
xxT}
=
EDET

\qquad 这里,E是 E { x x T } E\left\{x x^{T}\right\} E{
xxT}
,的特征向量组成的正交矩阵,D是它的特征值组成的对角矩阵,这样,白化可以通过白化矩
V = E D − 1 2 E T V=E D^{-\frac{1}{2}} E^{T} V=ED21ET

来完成。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146040.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python创建文件和文件夹

    python创建文件和文件夹创建文件夹importosdefmkdir(path): folder=os.path.exists(path) ifnotfolder:#判断是否存在文件夹如果不存在则创建为文件夹 os.makedirs(path)#makedirs创建文件时如果路径不存在会创建这个路径 print”—

  • BeanUtils.populate方法的作用

    BeanUtils.populate方法的作用一般来说,这个方法是在org.apache.commons.beanutils.BeanUtils包中的方法。该方法的函数原型为:BeanUtils.populate(Objectbean,Mapproperties)。这个方法会遍历map<key,value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性。具体使用方法,见…

  • Git教程 SSH keys配置[通俗易懂]

    SSH为SecureShell的缩写,由IETF的网络小组(NetworkWorkingGroup)所制定;SSH为建立在应用层基础上的安全协议。在管理Git项目上,有两种克隆到本地的方法。直接使用httpsurl克隆到本地使用SSHurl克隆到本地  这两种方式的主要区别在于:使用httpsurl克隆对初学者来说会比较方便,复制http…

  • Unity 从UI中拖拽对象放置并拖动[通俗易懂]

    Unity 从UI中拖拽对象放置并拖动[通俗易懂]需求:点击UI,在场景中生成3D对象,对象跟随鼠标移动,放置后可再次拖拽对象,改变其位置。做了一个小Demo,如下图所示:实现大致思路:射线碰撞检测对象空间坐标变换(世界坐标->屏幕坐标、屏幕坐标->世界坐标)首先为要生成3D对象的UI添加一个鼠标监听事件,脚本如下:SelectImage.csusingSystem.Collections;using…

  • Ecshop他们主动双语版切换来推断个人的计划

    Ecshop他们主动双语版切换来推断个人的计划

  • 史上最全的数字IC后端设计实现培训教程(整理版)

    史上最全的数字IC后端设计实现培训教程(整理版)史上最全的数字IC后端设计实现培训教程(整理版)由于最近比较忙,前几天才把五月份开展活动送的书全部寄出,预计最迟明后天就会送到各位手中,希望各位多多理解!本次活动共送出八本《LowPowerFlow》PhysicalImplementation(BackEnd)纸质书籍,请各位中奖的朋友注意查收!另外本次小编多打印了五六本,有需要的朋友可以按照成本价送出(小编微信ic-backend2018)。鉴于很多小伙伴们经常苦于找各类数字IC后端实现培训教程和培训视频,今天小编特此整理了一份非常全

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号