独立成分分析
一,作用:还原信号;前提条件是样本数据由概率分布符合独立非高斯分布,且相互独立的因子产生。
例如:鸡尾酒舞会分离说话者发出的声音,因子就是说话者发出的声音,这些声音信号都是非高斯分布的。而且说话者之间是相互独立的。
算法的思想:用极大似然函数来进行参数的更新参数直到迭代收敛之后,就可以求出各个独立成分
二,例子
经典的鸡尾酒宴会问题(cocktail party problem)。假设在 party 中有 n 个人,他们可以同时说话,我们也在房间中一些角落里共放置了
n 个声音接收器(Microphone)用来记录声音。
- 各变量含义:
从 n 个麦克风中得到了一组数据X(i),表示在i时刻n个麦克风记录的信号。
信号源S(S1,S2,S3,...)T,每一维都是一个人的声音信号,每个人发出的声音信号独立。
A 是一个未知的混合矩阵(mixing matrix),每一行一个麦克风对各个信号源的线性组合
x = As ,X是一个矩阵,X每一列都是时刻 i ,n个麦克风所收到 的信号 X(i)=A(i) S,每j行是j麦克风收到的信号
- 算法过程:
- 首先分析未知因子与我们样本之间的关系(说话信号和麦克风抽样的信号之间的关系)


所以两者之间的关系:求出参数W,我们就可以求出S。
2.算法的实现:
- 求x的概率分布:在这个算法里面,为了用最大似然函数我们引入先验条件:S符合一种非高斯分布,假设 s 的累积分布函数符合 sigmoid 函数 。
![]()
如果我们预先知道 s 的分布函数,那就不用假设了,但是在缺失的情况下, sigmoid 函数能够在大多数问题上取得不错的效果。
有了s的分布,根据概率论里面随机变量函数的知识可以推广到随机变量矩阵:随机向量S的函数X的概率分布:
这个式子成立的前提是各因子独立,在这里面就是说话者发出的声音信号相互独立、
- 由x的概率分布建立最大似然函数迭代更新参数:

对参数W求导,然后更新参数(用梯度上升):

求出W之后用
就可以求出S。

浙公网安备 33010602011771号