尾酒宴会问题---ICA独立成分分析[原创]
2011-05-29 08:36
309 查看
作者:einyboy or alert
(注本文有些图片来源于网络)
鸡尾酒宴会问题:
假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了一组数据 ,i表示采样的时间顺序,也就是说共得到了m组采样,每一组采样都是n维的。我们的目标是单单从这m组采样数据中分辨出每个人说话的信号。
图示跟数学表达如下:
![](http://hiphotos.baidu.com/einyboy/pic/item/f68acbedd90afb7b62d09fa9.jpg)
![](http://hiphotos.baidu.com/einyboy/pic/item/a5f2bb32db8f491fad4b5fa9.jpg)
X=AS
S是原始信号,X是麦克峰采集出来的信号,A是表征信道特征的混合矩阵。另一种表达如下:
![](http://hiphotos.baidu.com/einyboy/pic/item/31ddb63e7e823c9e7d1e71ae.jpg)
为了求由X求S,我们能不能写出S=inv(A)*X?是不行的,因为我们
没有A的相关知识。我们换个思路,显然由常识X的分量是相关的,认为S的分量是相互独立的(说白点就是不同的说话人),我们找一个矩阵W,使得U = WX,而U的个个分量是独立的就行了,有一种叫做ICA的独立成分分析算法我以解这种问题。请注意ICA算法要求原信号S是独立同分布的非高斯分布才行。ICA对高斯分布来说是病态,为什么呢,想想中心极限定理就知道了。下面对ICA的算法做一个介绍,不做深入的数学推导:
1、 中心化:也就是求X均值,然后让所有X减去均值。
X = X-mean(X)
2、 白化:目的是将x乘以一个矩阵变成
![](http://images.cnblogs.com/cnblogs_com/jerrylead/201104/201104191633072271.png)
,使得
![](http://images.cnblogs.com/cnblogs_com/jerrylead/201104/201104191633072271.png)
的协方差矩阵是 I 即
![](http://hiphotos.baidu.com/einyboy/pic/item/f68acbedd92afb7b62d09f89.jpg)
我们只需用下面的变换,就可以从x得到想要的 。
![](http://hiphotos.baidu.com/einyboy/pic/item/6d46012637e96f5f918f9d89.jpg)
其中使用特征值分解来得到E(特征向量矩阵)和D(特征值对角矩阵),计算公式为
![](http://hiphotos.baidu.com/einyboy/pic/item/85859502c6b638b008fa9389.jpg)
这样做的目的是消除二阶统计量的相关性,就是PCA分析了。
3、随机初始化一个矩阵W,并归一化:
![](http://hiphotos.baidu.com/einyboy/pic/item/729fb3c944a0514b7f3e6fbe.jpg)
4、计算
![](http://hiphotos.baidu.com/einyboy/pic/item/cf6d7d31ad0120c5a9018ebd.jpg)
g是一个非线性函数,可以是下面一些函数:
![](http://hiphotos.baidu.com/einyboy/pic/item/21097239d86a63aeb211c7b9.jpg)
![](http://hiphotos.baidu.com/einyboy/pic/item/4bfa4cdc02e4e4858d1029b8.jpg)
5、W进行归范化:
![](http://hiphotos.baidu.com/einyboy/pic/item/729fb3c944a0514b7f3e6fbe.jpg)
6、如果W没有收敛,转第4步,否则算法结束
代码运行截图如下:
![](http://hiphotos.baidu.com/einyboy/pic/item/de54433e1f24e3b054e723ba.jpg)
代码:http://download.csdn.net/source/3321665
man.wav 源信号
music.wav 源信号
MixedS1.wav混合信号
MixedS2.wav混合信号
SS1.wav解混信号
SS2.wav解混信号
ICADemo.m程序文件
(注本文有些图片来源于网络)
鸡尾酒宴会问题:
假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了一组数据 ,i表示采样的时间顺序,也就是说共得到了m组采样,每一组采样都是n维的。我们的目标是单单从这m组采样数据中分辨出每个人说话的信号。
图示跟数学表达如下:
![](http://hiphotos.baidu.com/einyboy/pic/item/f68acbedd90afb7b62d09fa9.jpg)
![](http://hiphotos.baidu.com/einyboy/pic/item/a5f2bb32db8f491fad4b5fa9.jpg)
X=AS
S是原始信号,X是麦克峰采集出来的信号,A是表征信道特征的混合矩阵。另一种表达如下:
![](http://hiphotos.baidu.com/einyboy/pic/item/31ddb63e7e823c9e7d1e71ae.jpg)
为了求由X求S,我们能不能写出S=inv(A)*X?是不行的,因为我们
没有A的相关知识。我们换个思路,显然由常识X的分量是相关的,认为S的分量是相互独立的(说白点就是不同的说话人),我们找一个矩阵W,使得U = WX,而U的个个分量是独立的就行了,有一种叫做ICA的独立成分分析算法我以解这种问题。请注意ICA算法要求原信号S是独立同分布的非高斯分布才行。ICA对高斯分布来说是病态,为什么呢,想想中心极限定理就知道了。下面对ICA的算法做一个介绍,不做深入的数学推导:
1、 中心化:也就是求X均值,然后让所有X减去均值。
X = X-mean(X)
2、 白化:目的是将x乘以一个矩阵变成
![](http://images.cnblogs.com/cnblogs_com/jerrylead/201104/201104191633072271.png)
,使得
![](http://images.cnblogs.com/cnblogs_com/jerrylead/201104/201104191633072271.png)
的协方差矩阵是 I 即
![](http://hiphotos.baidu.com/einyboy/pic/item/f68acbedd92afb7b62d09f89.jpg)
我们只需用下面的变换,就可以从x得到想要的 。
![](http://hiphotos.baidu.com/einyboy/pic/item/6d46012637e96f5f918f9d89.jpg)
其中使用特征值分解来得到E(特征向量矩阵)和D(特征值对角矩阵),计算公式为
![](http://hiphotos.baidu.com/einyboy/pic/item/85859502c6b638b008fa9389.jpg)
这样做的目的是消除二阶统计量的相关性,就是PCA分析了。
3、随机初始化一个矩阵W,并归一化:
![](http://hiphotos.baidu.com/einyboy/pic/item/729fb3c944a0514b7f3e6fbe.jpg)
4、计算
![](http://hiphotos.baidu.com/einyboy/pic/item/cf6d7d31ad0120c5a9018ebd.jpg)
g是一个非线性函数,可以是下面一些函数:
![](http://hiphotos.baidu.com/einyboy/pic/item/21097239d86a63aeb211c7b9.jpg)
![](http://hiphotos.baidu.com/einyboy/pic/item/4bfa4cdc02e4e4858d1029b8.jpg)
5、W进行归范化:
![](http://hiphotos.baidu.com/einyboy/pic/item/729fb3c944a0514b7f3e6fbe.jpg)
6、如果W没有收敛,转第4步,否则算法结束
代码运行截图如下:
![](http://hiphotos.baidu.com/einyboy/pic/item/de54433e1f24e3b054e723ba.jpg)
代码:http://download.csdn.net/source/3321665
man.wav 源信号
music.wav 源信号
MixedS1.wav混合信号
MixedS2.wav混合信号
SS1.wav解混信号
SS2.wav解混信号
ICADemo.m程序文件
相关文章推荐
- 一些知识点的初步理解_9(独立成分分析-ICA,ing...)
- 独立成分分析 ( ICA ) 与主成分分析 ( PCA ) 的区别
- 独立成分分析 ( ICA ) 与主成分分析 ( PCA )再解析
- 独立成分分析ICA系列3:直观解释与理解
- 16.PCA续,奇异值分解SVD,独立成分分析ICA
- 独立成分分析算法(ICA)
- 一些知识点的初步理解_9(独立成分分析-ICA,ing...)
- 独立成分分析简介(ICA)
- ICA--独立成分分析(Independent Component Analysis)
- Topographic ICA as a Model of Natural Image Statistics(作为自然图像统计模型的拓扑独立成分分析)
- ica 独立成分分析
- ICA(独立成分分析)
- ICA独立成分分析
- 独立成分分析ICA系列1:意义
- 独立成分分析ICA系列4:ICA的最优估计方法综述
- Topographic ICA as a Model of Natural Image Statistics(作为自然图像统计模型的拓扑独立成分分析)
- 【转载】独立成分分析(Independent Component Analysis)ICA
- 独立成分分析ICA系列5:信息极大化的 ICA 算法
- ICA(独立成分分析)
- 主成分分析(PCA)和独立成分分析(ICA)相关资料