独立成分分析ICA.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

独立成分分析ICA1.

PCA用于数据降维,而且只对高斯分布的数据有效。对于非高斯分布的数据,需要采用ICA进行BSS。

经典的鸡尾酒会问题:

,i表示采样的时间顺序,也就是说共得到了m组假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置n

,i表示采样的时间顺序,也就是说共得到了m组

也就是说:有n个信号源,,每一维都是一个人的声音信采样,每一组采样都是

也就是说:有n个信号源

,每一维都是一个人的声音信

这里的X是一个矩阵,其由采样数据构成。其中每个列向量是,号,每个人发出的声音信号独立。A是一个未知的混合矩阵(mixingmatrix),用来组合叠加信号

这里的X是一个矩阵,其由采样数据构成。其中每个列向量是

令,那么A和s都是未知的,x是已知的,我们要想办法根据x来推出s。这个过程也

,那么

将W表示成

其中,其实就是将 写成行向量形式。那么得到:不确定性:

其中

,其实就是将 写成行向量形式。那么得到:

由于w和s都不确定,那么在没有先验知识的情况下,无法同时确定这两个相关参数。比如上面的公式s=wx。当w扩大两倍时,s只需要同时扩大两倍即可,等式仍然满足,因此无法得到唯一的s。同时如果将人的编号打乱,变成另外一个顺序,如上图的蓝色节点的编号变为3,2,1,那么只需要调换A的列向量顺序即可,因此也无法单独确定s。这两种情况称为原信号不确定。

还有一种ICA不适用的情况,那就是信号不能是高斯分布的,或者至多只能

有一个信号服从高斯分布。

密度概率及线性变换

假设我们的随机变量s有概率密度函数(连续值是概率密度函数,离散值是概率)。为了简单,我们再假设s是实数,还有一个随机变量x=As,A和x都是实数。令是x的概率密度,那么怎么求?

公式如下:

推导过程如下:

数据预处理

一般情况下,所获得的数据都具有相关性,所以通常都要求对数据进行初步的白化或球化处理,因为白化处理可去除各观测信号之间的相关性,从而简化了后续独立分量的提取过程,而且,通常情况下,数据的白化处理能大大增强算法的收敛性。

FastICA算法

FastICA算法以负熵最大作为一个搜寻方向。由信息论理论可知,在所有等方差的随机变量中,高斯变量的熵最大,因而我们可以利用熵来度量非高斯性,常用熵的修正形式,即负熵。根据中心极限定理,若一随机变量X由许多独立的随机变量s之和组成,只要si具有有限的均值和方差,则不论其服从何种分布,随机变量X较s更接近高斯分布。换言之,si较X的非高斯性更强。在分离过程中,可通过对分离结果的非高斯性度量来表示分离结果间的相互独立性,当非高斯性度量达到最大时,则表明已完成对各独立分量的分离。

FastICA算法的基本步骤

ICA函数:

functionz=ICA(X)

%去均值[M,T]=size(X);

average=mean(X);fori=1:M

X(i,:)=X(i,:)-average(i)*ones(1,T);

end

%白化

Cx=cov(X,1); %计算协方差矩阵

[eigvector,eigvalue]=eig(Cx); %计算特征值和特征向量W=eigvalue^(-1/2)*eigvector; %白化矩阵

z=W*X; %正交矩阵

%迭代

Maxcount=10000; %最大迭代次数Critical=0.00001; %判断是否收敛

m=M; %需要估计的分量的个数

W=rand(m);forn=1:m

WP=W(:,n); %初始权向量(任意)

% Y=WP*z;

% G=Y.^3;%G为非线性函数,可取y^3等

% GG=3*Y.^2;%G的导数count=0;

LastWP=zeros(m,1);

W(:,n)=W(:,n)/norm(W(:,n));

whileabs(WP-LastWP)abs(WP+LastWP)Criticalcount=count+1; %迭代次数LastWP=WP; %上次迭代的值

%WP=1/T*z*((LastWP*z).^3)-3*LastWP;fori=1:m

WP(i)=mean(z(i,:).*(tanh((LastWP)*z)))-(mean(1-(tanh((LastWP))*z).^2)).*LastWP(i);

end

WPP=zeros(m,1);forj=1:n-1

WPP=W

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档