浅谈ICA(1)
独立成分分析ICA(Independent components analysis),是一个线性变换。这个变换把数据或信号分离成统计独立的非高斯的信号源的线性组合。独立成分分析可以看做盲信号分离(Blind source separation)的一种特例。ICA方法最早由Comon在1994年提出,并在之后的数年间得到很大的扩展。目前ICA被应用在语音信号分离、生物医学信号处理、金融数据分析、图像消噪、远程通信、人脸识别等方面。
1.鸡尾酒会问题(cocktail-party problem)
为了更好的理解ICA方法的背景,下面先介绍一个在ICA文献中经常被提到的例子:鸡尾酒会问题。
假设在鸡尾酒会中两个人在同时说话。在屋子的不同位置放置了可以记录声音信号的两个麦克风,它们记录的信号分别记为x1(t),x2(t),其中x1和x2是振幅,t是时间。这两个信号是两名说话者声音信号的叠加,原始的声音信号我们记为s1(t),s2(t), 设这两组信号满足下面的线性关系:
x1(t)=a11s1+a12s2
x2(t)=a21s1+a22s2
现在我们希望根据x1(t),x2(t)来估计原始信号s1(t),s2(t)(也就是估计上面线性表达式的系数),忽略时间延迟和其它的干扰因素。
为了准确的估计系数aij,假设s1(t),s2(t)在任意时间t是统计独立的。也就是说,ICA是这样的一种方法,在基于独立的信息基础上估计aij,从而在混合信号x1和x2中分解出原始信号s1和s2。
例:一个简单的人工例子。
信号源的混合 源信号为y1,y2,混合信号为y3,y4。使用R的fastICA包对混合信号进行分析,得到估计的源信号为y6和y7
y1 <- sin(seq(0, 50, by = 0.05))
y2 <- sign(sin(seq(0, 37, by = 0.037) + 5))
par(mfrow = c(2, 1))
plot(y1, type = "l", lwd = 2, col = "blue")
plot(y2, type = "l", lwd = 2, col = "green")
y3 <- y1 - 2 * y2
y4 <- 1.73 * y1 + 3.41 * y2
par(mfrow = c(2, 1))
plot(y3, type = "l", lwd = 2, col = "red")
plot(y4, type = "l", lwd = 2, col = "yellow")
library(fastICA)
y5 <- cbind(y3, y4)
a <- fastICA(y5, 2)
par(mfrow = c(2, 1))
y6 <- a$S[, 1]
y7 <- a$S[, 2]
plot(y6, type = "l", lwd = 2, col = "blue")
plot(y7, type = "l", lwd = 2, col = "green")
2.ICA的定义
可以把ICA理解为一个隐变量模型。设我们观察了n个独立成分s1,s2,…sn的线性混合x1,x2,…,xn,满足:xj=aj1s1+aj2s2+...+ajnsn
这里设混合成分和独立成分都是零均值的(否则要对混合成分进行中心化), 记X=(x1,...,xn)′,S=(s1,...,sn)′,A=(aij), 则ICA模型可表示为:
X=AS (1)
也可以记作:X=∑n1αjsi (2) 这里αj是A的列向量,A称为混合矩阵。
ICA模型描述了观测数据是如何由各个独立成分的一个混合过程而生成。在这里独立成分视为隐变量,因为它们不能直接观测,我们需要估计混合矩阵A来推测S。在估计了矩阵A之后,可以计算它的逆W,并由此得到独立成分:
S=WX (3)
(注:(1)这个模型是不是和因子分析比较像,没错。ICA和因子分析的关系会在后面介绍。 (2)更为现实的情况是,在模型中应该存在噪声项。为了简化,这里把噪声项忽略。)
上面定义的ICA模型在使用中会有两个不确定的性质: (a)不能决定独立成分的方差(即信号的幅度不确定)。因为S和A都未知,把S的某个分量乘上一个常数的效果可以通过在A的对应列上除以相同常数的方法抵消。因此,可以假设独立成分都具有单位方差:Esij^2=1 (b)不能决定独立成分的顺序,因此在(3)式当中各项的顺序是可以改变的。
3.独立性和非高斯性
ICA模型关于源信号S有两个两个前提假设: (1)源信号是统计独立的 (2)源信号的分布是非高斯的(最多只能有一个是高斯分布)。
另外,观测到的混合信号的数目m不少于源信号的数目n,一般取m=n
3.1 独立性的说明
在ICA中,假设源信号是独立的。但是因为独立性隐含不相关,许多ICA的估计方法给出独立成分的不相关估计. 这样不仅减少了参数数目, 而且简化了问题。
3.2 非高斯性
ICA的成功之处在于其源信号(独立成分)的非高斯特性。为什么要限制独立成分为非高斯的呢?因为这涉及到源信号S的可辨识性。由中心极限定理,独立的随机变量的和接近高斯分布。因此一个高斯信号可以认为是许多独立信号的线性组合。这就是说独立信号从混合信号中的分离可以通过对混合信号线性变换的最大的非高斯化来实现。
1.鸡尾酒会问题(cocktail-party problem)
为了更好的理解ICA方法的背景,下面先介绍一个在ICA文献中经常被提到的例子:鸡尾酒会问题。
假设在鸡尾酒会中两个人在同时说话。在屋子的不同位置放置了可以记录声音信号的两个麦克风,它们记录的信号分别记为x1(t),x2(t),其中x1和x2是振幅,t是时间。这两个信号是两名说话者声音信号的叠加,原始的声音信号我们记为s1(t),s2(t), 设这两组信号满足下面的线性关系:
x1(t)=a11s1+a12s2
x2(t)=a21s1+a22s2
现在我们希望根据x1(t),x2(t)来估计原始信号s1(t),s2(t)(也就是估计上面线性表达式的系数),忽略时间延迟和其它的干扰因素。
鸡尾酒会 |
为了准确的估计系数aij,假设s1(t),s2(t)在任意时间t是统计独立的。也就是说,ICA是这样的一种方法,在基于独立的信息基础上估计aij,从而在混合信号x1和x2中分解出原始信号s1和s2。
例:一个简单的人工例子。
信号源的混合 源信号为y1,y2,混合信号为y3,y4。使用R的fastICA包对混合信号进行分析,得到估计的源信号为y6和y7
y1 <- sin(seq(0, 50, by = 0.05))
y2 <- sign(sin(seq(0, 37, by = 0.037) + 5))
par(mfrow = c(2, 1))
plot(y1, type = "l", lwd = 2, col = "blue")
plot(y2, type = "l", lwd = 2, col = "green")
源信号 |
y3 <- y1 - 2 * y2
y4 <- 1.73 * y1 + 3.41 * y2
par(mfrow = c(2, 1))
plot(y3, type = "l", lwd = 2, col = "red")
plot(y4, type = "l", lwd = 2, col = "yellow")
混合信号 |
library(fastICA)
y5 <- cbind(y3, y4)
a <- fastICA(y5, 2)
par(mfrow = c(2, 1))
y6 <- a$S[, 1]
y7 <- a$S[, 2]
plot(y6, type = "l", lwd = 2, col = "blue")
plot(y7, type = "l", lwd = 2, col = "green")
使用fastICA分离出的源信号 |
2.ICA的定义
可以把ICA理解为一个隐变量模型。设我们观察了n个独立成分s1,s2,…sn的线性混合x1,x2,…,xn,满足:xj=aj1s1+aj2s2+...+ajnsn
这里设混合成分和独立成分都是零均值的(否则要对混合成分进行中心化), 记X=(x1,...,xn)′,S=(s1,...,sn)′,A=(aij), 则ICA模型可表示为:
X=AS (1)
也可以记作:X=∑n1αjsi (2) 这里αj是A的列向量,A称为混合矩阵。
ICA模型描述了观测数据是如何由各个独立成分的一个混合过程而生成。在这里独立成分视为隐变量,因为它们不能直接观测,我们需要估计混合矩阵A来推测S。在估计了矩阵A之后,可以计算它的逆W,并由此得到独立成分:
S=WX (3)
(注:(1)这个模型是不是和因子分析比较像,没错。ICA和因子分析的关系会在后面介绍。 (2)更为现实的情况是,在模型中应该存在噪声项。为了简化,这里把噪声项忽略。)
ICA问题示意图 |
上面定义的ICA模型在使用中会有两个不确定的性质: (a)不能决定独立成分的方差(即信号的幅度不确定)。因为S和A都未知,把S的某个分量乘上一个常数的效果可以通过在A的对应列上除以相同常数的方法抵消。因此,可以假设独立成分都具有单位方差:Esij^2=1 (b)不能决定独立成分的顺序,因此在(3)式当中各项的顺序是可以改变的。
3.独立性和非高斯性
ICA模型关于源信号S有两个两个前提假设: (1)源信号是统计独立的 (2)源信号的分布是非高斯的(最多只能有一个是高斯分布)。
另外,观测到的混合信号的数目m不少于源信号的数目n,一般取m=n
3.1 独立性的说明
在ICA中,假设源信号是独立的。但是因为独立性隐含不相关,许多ICA的估计方法给出独立成分的不相关估计. 这样不仅减少了参数数目, 而且简化了问题。
3.2 非高斯性
ICA的成功之处在于其源信号(独立成分)的非高斯特性。为什么要限制独立成分为非高斯的呢?因为这涉及到源信号S的可辨识性。由中心极限定理,独立的随机变量的和接近高斯分布。因此一个高斯信号可以认为是许多独立信号的线性组合。这就是说独立信号从混合信号中的分离可以通过对混合信号线性变换的最大的非高斯化来实现。
> 我来回应