ICA直白讲解

前言

独立成分分析ICA是一个在多领域被应用的基础算法。ICA是一个不定问题,没有确定解,所以存在各种不同先验假定下的求解算法。相比其他技术,ICA的开源代码不是很多,且存在黑魔法–有些步骤并没有在论文里提到,但没有这些步骤是无法得到正确结果的。

本文给出一个ICA最大似然解法的推导,以及FastICA的python实现,限于时间和实际需求,没有对黑魔法部分完全解读,只保证FastICA实现能得到正确结果。

有兴趣的童鞋可以在未来补上相关内容。

ICA问题表述

XX个成员,每个成员是一个随机变量:

X=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜x1x2...xi...xn⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟X=(x1x2...xi...xn)
,也就是说:
⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜x1x2...xi...xn⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟=A⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜s1s2...si...sn⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟(x1x2...xi...xn)=A(s1s2...si...sn)

令:
S=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜s1s2...si...sn⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟S=(s1s2...si...sn)

则:
X=ASX=AS

又有:
S=A1XS=A−1X

令:
W=A1W=A−1

则:
S=WXS=WX
次,则形成数据集:
D=⎛⎝⎜⎜⎜⎜d1,1d2,1...dn,1d1,2d2,2...dn,2............d1,md2,m...dn,m⎞⎠⎟⎟⎟⎟D=(d1,1d1,2...d1,md2,1d2,2...d2,m............dn,1dn,2...dn,m)
个麦克风记录大厅的声音,每秒一个记录,一共记录m秒。麦克风记录的混合声音,多个麦克风记录不同位置的混合声音。ICA的目标,就是从混声录音中将每个人的声音分离出来。

理论推导

由前可知:

 si=(wi,1wi,2...wi,j...wi,n)⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜x1x2...xi...xn⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟ si=(wi,1wi,2...wi,j...wi,n)(x1x2...xi...xn)

令:
wi=(wi,1wi,2...wi,j...wi,n)wi=(wi,1wi,2...wi,j...wi,n)

则:
si=wiXsi=wiX
,根据概率分布函数和概率密度函数的关系可知:
pX(x)=FX(x)pX(x)=FX′(x)
,则:
pS(s)=FS(s)pS(s)=FS′(s)

根据概率分布函数的定义,有:

FX(x)=P(X<x)FX(x)=P(X<x)

FS(s)=P(S<s)FS(s)=P(S<s)

那么:
pX(x)=FX(x)=(P(X<x))=(P(U<u))=(P(U<s))=(P(U<Wx))=(P(S<Wx))=(FS(Wx))=FS(Wx)=pS(Wx)(Wx)=pS(W
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值