史上最直白的ICA教程之一

前言

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

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

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

ICA问题表述

X 是随机向量,且 XRn×1 ,这也就说, X 里有 n 个成员,每个成员是一个随机变量:

X=x1x2...xi...xn

其中,  xi 是一个随机变量。

随机变量有诸多特性,殆由概率论和数理统计教科书详述备尽,在此不一一叙述。

X 里的 n 个随机变量是相互非独立的,在一定的假设下,可以用 n 个相互独立的随机变量线性组合重新表达 X ,也就是说:

x1x2...xi...xn=As1s2...si...sn

其中, si 是一个随机变量,且两两相互独立, A 是满秩矩阵,且 ARn×n
令:
S=s1s2...si...sn

则:
X=AS

又有:
S=A1X

令:
W=A1

则:
S=WX

其中, WRn×n

记录随机向量 X 的值 m 次,则形成数据集:

D=d1,1d2,1...dn,1d1,2d2,2...dn,2............d1,md2,m...dn,m

其中, DRn×m

ICA的目标,就是在只知道 D 的情况下,估算 A W S 的值。

实例:在一个大厅里,有 n 个人在随机聊天。在大厅的不同角落,布置 n 个麦克风记录大厅的声音,每秒一个记录,一共记录m秒。麦克风记录的混合声音,多个麦克风记录不同位置的混合声音。ICA的目标,就是从混声录音中将每个人的声音分离出来。

理论推导

由前可知:

 si=(wi,1wi,2...wi,j...wi,n)x1x2...xi...xn

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

则:
si=wiX

设随机变量 si 概率密度函数是 psi(si) ,其中 p 的右下角 si 表示随机变量标示,括号中的 s

  • 56
    点赞
  • 315
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值