独立成分分析(Independent Component Analysis, ICA)的负熵最大化与快速ICA算法
字数 4543 2025-12-08 20:49:05

独立成分分析(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 多分量扩展

为防止收敛到相同向量,采用对称正交化

  1. 对所有 \(n\) 个向量 \(\mathbf{w}_1, \dots, \mathbf{w}_n\) 并行执行一次迭代。
  2. \(\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}\)

  1. 中心化\(\mathbf{X} \leftarrow \mathbf{X} - \text{mean}(\mathbf{X}, \text{axis}=1)\)
  2. 白化
    • 计算协方差 \(\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}\))。
  3. 初始化:随机生成正交矩阵 \(\mathbf{W}_0 \in \mathbb{R}^{n \times n}\)(或单位阵)。
  4. 固定点迭代(对称正交化):
    • 对每个 \(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\)
  1. 还原:分离矩阵 \(\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. 算法特点

  • 基于负熵最大化,对非高斯信号分离效果好。
  • 计算高效,无步长参数,稳定性强。
  • 可批量或在线处理,适合高维信号分离(如脑电、语音)。
独立成分分析(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. 算法特点 基于负熵最大化,对非高斯信号分离效果好。 计算高效,无步长参数,稳定性强。 可批量或在线处理,适合高维信号分离(如脑电、语音)。