对于鸡尾酒会问题,一种简单的情况如下:有n个人在同时说话,同时又m个声音接收器捕捉到了信号之间的线性组合,于是我们可以得到m组声音数据。那么,如何利用这m组接收到的声音信号恢复成原来的n组独立信号呢?
在上个世纪末,鸡尾酒会问题催生了各种盲源分离问题,也有不少机器学习算法被应用于此问题。其中,独立成分分析是简便且有效的一种。
##问题分析 设原始信号为S1、S2、...、Sn,一定存在一个mn的权重矩阵A,使得每个声音接收器对应A中一行。如m=n=2时,令A=[[0.6, 0.4], [0.45, 0.55]],则第一个麦克风接收到的信号为x1=0.6S1+0.4S2,第二个麦克风接收到的信号为x2=0.45S1+0.55S2。即$$AS=x$$ 将该公式左右同乘以A的逆矩阵$$W=A^{-1}$$,得$$A^{-1}AS=A^{-1}x$$,即$$S=Wx$$,这样问题就解决了(当m≠n时,A不是方阵,此时可以乘A的伪逆)。于是问题来了:如何求A的逆矩阵W?
##独立成分分析(Independent Component Analysis) ICA算法始于Bell和Sejnowski,下面用极大似然估计简单推导一下ICA的求解过程