大家好,又见面了,我是你们的朋友全栈君。
\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),m≥n
\qquad 对任何t,根据已知的 X ( t ) X(t) X(t),在A未知的条件下,求未知的 S ( t ) S(t) S(t),,这就构成一个盲源分离问题,噪声可以认为是一个源信号。
\qquad 盲源分离中的“盲”是指原理上它不要求对S和A有先验知识,而实际上任务的解答明显不是唯一的,因此分解结果肯定不是唯一的,需要一些假定。如果按照以下几个基本假设条件来解决盲源分离问题,则成为独立分量分析。这些条件如下:
- 各源信号 s i ( t ) s_i\left(t\right) si(t)均为零均值、实随机变量,各源信号之间统计独立。
- 源信号数与观察信号数相同,即m=n,这时混合阵A是是一个确定且未知的方阵,A是满秩,则逆矩 A − 1 A^{-1} A−1存在
- 各个源信号 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 h1和h2,我们有:
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=ED−21ET
来完成。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146040.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...