独立成分分析(Independent Component Analysis, ICA)的负熵最大化与快速ICA算法
1. 问题描述
独立成分分析(ICA)是一种经典的盲源分离(Blind Source Separation, BSS)方法,旨在从多个观测信号中恢复出若干个相互统计独立的源信号。假设观测信号是源信号的线性混合,且源信号之间统计独立、非高斯分布(最多一个为高斯分布),ICA的目标是通过寻找一个分离矩阵,使输出的分量尽可能独立。其中,负熵最大化是一种重要的ICA优化准则,而快速ICA(FastICA) 是基于该准则的高效固定点算法。我们将深入探讨该算法的数学原理、负熵最大化的推导及具体计算过程。
2. 核心数学建模
2.1 观测模型
设有 \(n\) 个独立源信号 \(s_1(t), s_2(t), \dots, s_n(t)\),组成源向量 \(\mathbf{s}(t) = [s_1(t), \dots, s_n(t)]^T\),且满足:
- 各分量均值为零,方差为1(可提前白化)。
- 各分量相互统计独立。
- 至多一个分量为高斯分布。
观测信号由线性混合生成:
\[\mathbf{x}(t) = \mathbf{A} \mathbf{s}(t) \]
其中 \(\mathbf{A} \in \mathbb{R}^{n \times n}\) 是未知的混合矩阵(假设为可逆方阵)。
ICA的目标是找到分离矩阵 \(\mathbf{W} \approx \mathbf{A}^{-1}\),使得输出:
\[\mathbf{y}(t) = \mathbf{W} \mathbf{x}(t) \]
尽可能逼近源信号 \(\mathbf{s}(t)\),即 \(\mathbf{y}(t)\) 的分量相互独立。
3. 独立性度量:负熵近似
3.1 为什么用非高斯性?
根据中心极限定理,多个独立随机变量的混合信号会趋向高斯分布。因此,分离信号应具有最大非高斯性。常用度量包括:
- 峰度(Kurtosis):对离群值敏感,鲁棒性差。
- 负熵(Negentropy):基于信息熵,稳定性好。
3.2 负熵定义
对于随机变量 \(y\),负熵 \(J(y)\) 定义为:
\[J(y) = H(y_{\text{gauss}}) - H(y) \]
其中 \(H(y)\) 是微分熵,\(y_{\text{gauss}}\) 是与 \(y\) 具有相同方差的高斯变量。由于高斯分布熵最大,故 \(J(y) \ge 0\),且当且仅当 \(y\) 为高斯分布时取零。最大化 \(J(y)\) 可增强非高斯性。
3.3 负熵近似计算
精确计算 \(H(y)\) 需知道分布,故常用近似。快速ICA采用一维近似:
\[J(y) \approx \left[ \mathbb{E}\{G(y)\} - \mathbb{E}\{G(v)\} \right]^2 \]
其中:
- \(v\) 是标准高斯变量(零均值、单位方差)。
- \(G(\cdot)\) 是非二次函数,常用选择:
- \(G_1(u) = \frac{1}{a_1} \log \cosh(a_1 u)\),\(1 \le a_1 \le 2\)(通常 \(a_1=1\))。
- \(G_2(u) = -\exp(-u^2/2)\)。
- \(G_3(u) = u^3\)(对应峰度最大化)。
近似中忽略了常数缩放,因我们关注最大化 \(|\mathbb{E}\{G(y)\}|\)。
4. 优化问题构建
设目标为逐一分量独立。假设数据已中心化(零均值)并白化(协方差为单位阵),则寻找正交矩阵 \(\mathbf{W}\)(行向量为单位正交),使 \(y_i = \mathbf{w}_i^T \mathbf{x}\) 的负熵最大。
单个分量的优化问题:
\[\max_{\mathbf{w}} J(\mathbf{w}^T \mathbf{x}) \quad \text{s.t.} \quad \|\mathbf{w}\| = 1 \]
白化后约束 \(\|\mathbf{w}\|=1\) 保证输出方差为1,避免平凡解。
5. FastICA 固定点迭代算法
5.1 目标函数求导
使用近似 \(J(y) \approx [\mathbb{E}\{G(y)\} - \mathbb{E}\{G(v)\}]^2\),忽略常数项,最大化 \(|\mathbb{E}\{G(y)\}|\) 等价于最大化 \(\mathbb{E}\{G(y)\}\)(适当选择 \(G\) 使期望为正)。采用拉格朗日乘子法:
\[\mathcal{L}(\mathbf{w}, \lambda) = \mathbb{E}\{G(\mathbf{w}^T \mathbf{x})\} - \lambda (\|\mathbf{w}\|^2 - 1) \]
求导得:
\[\frac{\partial \mathcal{L}}{\partial \mathbf{w}} = \mathbb{E}\{\mathbf{x} g(\mathbf{w}^T \mathbf{x})\} - 2\lambda \mathbf{w} = 0 \]
其中 \(g(u) = G'(u)\),例如 \(G(u)=\log \cosh(u)\) 时 \(g(u)=\tanh(u)\)。
5.2 牛顿法固定点迭代
由上式得 \(\mathbb{E}\{\mathbf{x} g(\mathbf{w}^T \mathbf{x})\} = 2\lambda \mathbf{w}\)。左乘 \(\mathbf{w}^T\) 并结合约束 \(\|\mathbf{w}\|=1\) 和 \(y=\mathbf{w}^T \mathbf{x}\):
\[2\lambda = \mathbb{E}\{y g(y)\} \]
代入原方程,得固定点方程:
\[\mathbf{w} = \frac{\mathbb{E}\{\mathbf{x} g(\mathbf{w}^T \mathbf{x})\}}{\mathbb{E}\{g(\mathbf{w}^T \mathbf{x})\}} \quad \text{(忽略常数缩放)} \]
实际中采用牛顿法更新,推导得迭代公式(详细推导略):
\[\mathbf{w}^+ = \mathbb{E}\{\mathbf{x} g(\mathbf{w}^T \mathbf{x})\} - \mathbb{E}\{g'(\mathbf{w}^T \mathbf{x})\} \mathbf{w} \]
然后标准化:\(\mathbf{w} \leftarrow \mathbf{w}^+ / \|\mathbf{w}^+\|\)。
5.3 多分量扩展
为防止收敛到相同向量,采用对称正交化:
- 对所有 \(n\) 个向量 \(\mathbf{w}_1, \dots, \mathbf{w}_n\) 并行执行一次迭代。
- 令 \(\mathbf{W} = [\mathbf{w}_1, \dots, \mathbf{w}_n]^T\),更新后计算:
\[ \mathbf{W} \leftarrow (\mathbf{W} \mathbf{W}^T)^{-1/2} \mathbf{W} \]
其中 \((\mathbf{W} \mathbf{W}^T)^{-1/2}\) 通过特征值分解实现。
6. FastICA 完整步骤
输入:观测数据矩阵 \(\mathbf{X} \in \mathbb{R}^{n \times T}\)(\(T\) 为样本数),分量数 \(n\)。
输出:分离矩阵 \(\mathbf{W}\),独立分量 \(\mathbf{Y} = \mathbf{W} \mathbf{X}\)。
- 中心化:\(\mathbf{X} \leftarrow \mathbf{X} - \text{mean}(\mathbf{X}, \text{axis}=1)\)。
- 白化:
- 计算协方差 \(\mathbf{C} = \frac{1}{T} \mathbf{X} \mathbf{X}^T\)。
- 特征分解 \(\mathbf{C} = \mathbf{E} \mathbf{D} \mathbf{E}^T\)。
- 白化矩阵 \(\mathbf{P} = \mathbf{D}^{-1/2} \mathbf{E}^T\),得 \(\mathbf{Z} = \mathbf{P} \mathbf{X}\)(\(\mathbf{Z} \mathbf{Z}^T = \mathbf{I}\))。
- 初始化:随机生成正交矩阵 \(\mathbf{W}_0 \in \mathbb{R}^{n \times n}\)(或单位阵)。
- 固定点迭代(对称正交化):
- 对每个 \(i=1,\dots,n\),更新:
\[ \mathbf{w}_i^+ = \frac{1}{T} \sum_{t=1}^T \mathbf{z}_t g(\mathbf{w}_i^T \mathbf{z}_t) - \frac{1}{T} \sum_{t=1}^T g'(\mathbf{w}_i^T \mathbf{z}_t) \cdot \mathbf{w}_i \]
- 令 \(\mathbf{W} = [\mathbf{w}_1, \dots, \mathbf{w}_n]^T\),对称正交化:
\[ \mathbf{W} \leftarrow (\mathbf{W} \mathbf{W}^T)^{-1/2} \mathbf{W} \]
- 重复直至 \(\|\mathbf{W}_{\text{new}} - \mathbf{W}_{\text{old}}\|_F < \epsilon\)。
- 还原:分离矩阵 \(\mathbf{W}_{\text{final}} = \mathbf{W} \mathbf{P}\),独立分量 \(\mathbf{Y} = \mathbf{W}_{\text{final}} \mathbf{X}\)。
7. 关键细节说明
- 白化必要性:将混合矩阵变为正交,简化优化约束,加速收敛。
- 函数 \(G\) 选择:\(\log \cosh\) 鲁棒性好;\(-\exp(-u^2/2)\) 对亚高斯信号敏感。
- 收敛性:牛顿法具有二次收敛速度,通常迭代 5–20 次即收敛。
- 排序不确定性:ICA 结果中分量顺序和尺度(符号、幅度)不确定,为固有歧义。
8. 算法特点
- 基于负熵最大化,对非高斯信号分离效果好。
- 计算高效,无步长参数,稳定性强。
- 可批量或在线处理,适合高维信号分离(如脑电、语音)。