独立成分分析(Independent Component Analysis, ICA)
问题引入
- 鸡尾酒宴会问题
- 宴会有n个客人,同时说话,不同位置有n个麦克风,请分离每人说话额信号。
鸡尾酒宴会问题属于盲源分离问题
数学描述
有n个信号源$s=(s_1,s_2,…,s_n)^T$
A是未知的混合矩阵,用来叠加信号s,$x=AS$
X是按时间取样的m组样,
问题:仅知道X,如何求s?
问题分析
信号最多有一个分量是高斯分布。
假设$s\sim N(0,1)$, 那么$x=As$也服从多元正态分布。
$Ex=0,Cov(x)=E[xx^T]=E[Ass^TA^T]=AA^T$, 所以$x\sim N(0,AA^T)$
R为正交阵,$x’=ARs$, 那么,同样可证$x’ \sim N(0,AA^T)$
也就是说,$Rs,s$都可以获得同样的x, 因此s是无法确定的
ICA的前提条件:
- 各个成分独立
- 各个成分中,最多有一个高斯分布
- 混合矩阵是方阵
解法一:MLE
附加假设:每个分量都是logistics分布
那么,又根据每个分量独立,可以列出似然函数。
解法二
$x=As, s=Wx$
根据中心极限定理,s的线性组合比s的任何一个分量都接近正太分布。
呢么我们找到这样的$u=W^T_i x$,使得u 最不接近高斯分布
因此,需要解决一个问题:如何定义 最不接近高斯分布
有两套方案来衡量不接近高斯分布:
- 峰度越偏离0,越不接近高斯分布
- 高斯分布的熵是最大的,定义负熵$J(x)=H(x_{gauss})-H(x)$, 这个值越大,说明越偏离高斯分布
FastICA
FastICA采用负熵的概念
$J(x)=\sum\limits_i k_i [E(G_i(x))-E(G_i(v))]^2$
v是高斯函数,G是任意非二次函数。
等价于求这个最优化:
$\max E(G(W_i^Tx))$
$s.t. \mid\mid W_i\mid\mid=1 $
G的常见形式可以是:
- $G(u)=\dfrac{1}{a}\log \cosh(au)$
- $G(u)=-\exp(-\dfrac{u^2}{2})$
- $G(u)=u^4$
实践中发现,对于不同形式的G,求得的结果差不多,但计算性能有差异。
算法步骤
数据预处理
- 中心化$\tilde x =x -E(x)$
- 白化$\tilde x = V \Lambda ^{-0.5} V^T x$
其中$\Lambda$是对角阵,对角线上的元素是是x协方差矩阵的特征值
V是x协方差矩阵的特征吸向量。
后注
ICA与PCA的区别
- ICA提取的成分是independent
- PCA提取得成分是Orthogonal ICA认为样本数据由独立非高斯分布的隐含因子产生
- PCA认为样本的方差越大则包含的信息越大,数据特征隐含在方差最大的几个正 交方向上,但这很依赖于数据的计量单位选择
- ICA适合用于还原信号,因为人工信号往往分布有规律,不符合高斯分布
- PCA适合用于降维,也可用作对信号进行预处理,可以在一定程度上消除噪音
- 在ICA时可以使用PCA进行数据预处理
应用场景
- 声学信号处理:鸡尾酒宴会问题
- 生物医学信号处理:胎心信号、心脑信号分离
- 阵列信号处理:天线阵列、声呐
- 图像处理:图像特征提取、人脸识别
- 其它:模式识别、数据挖掘、金融等领域
ICA的不足
- 无法还原出源信号的方差,即还原后的信号尺度 与源信号有差别,无法恢复真实波形
- 无法确定还原信号的分量与对应源信号中哪个分 量对应
- 混合矩阵是奇异矩阵或近似奇异矩阵时难以计算