独立成分分析(ICA)的负熵最大化与快速ICA算法
字数 3544 2025-12-14 07:12:14

独立成分分析(ICA)的负熵最大化与快速ICA算法


1. 问题描述

独立成分分析(Independent Component Analysis, ICA)是一种用于盲源分离的统计方法。假设观测信号是若干个未知独立源的线性混合,目标是从观测信号中恢复出源信号。与主成分分析(PCA)寻找不相关成分不同,ICA要求恢复的成分之间统计独立

  • 关键假设
    1. 各源信号相互独立。
    2. 至多一个源服从高斯分布(若多个高斯分布混合,独立性无法唯一确定)。
  • 核心难点:如何度量独立性?ICA常用负熵最大化作为独立性度量,并通过快速ICA算法高效求解。

2. 独立性度量与优化目标

2.1 独立性定义

随机变量独立 ⇔ 联合概率密度等于边缘密度的乘积:

\[p(s_1, s_2, \dots, s_n) = \prod_i p(s_i) \]

实际中无法直接计算概率密度,通常利用非高斯性作为间接指标(中心极限定理:独立随机变量混合后更接近高斯分布)。

2.2 非高斯性度量:负熵

  • 熵衡量随机性:\(H(y) = -\int p(y) \log p(y) dy\)
  • 负熵定义(近似非负):

\[J(y) = H(y_{\text{gauss}}) - H(y) \]

其中 \(y_{\text{gauss}}\) 是与 \(y\) 同方差的高斯变量。负熵 \(J(y) \geq 0\),仅在 \(y\) 为高斯时为零。

  • 近似计算:为避免密度估计,常采用高阶累积量近似非多项式矩函数近似:

\[J(y) \approx c \left[ E\{G(y)\} - E\{G(\nu)\} \right]^2 \]

其中 \(\nu\) 是标准高斯变量,\(G\) 是非二次函数(如 \(G(y) = \log \cosh(y)\)\(G(y) = -\exp(-y^2/2)\))。


3. 信号混合模型与预处理

3.1 线性混合模型

设观测信号 \(\mathbf{x} = (x_1, \dots, x_m)^T\) 由源信号 \(\mathbf{s} = (s_1, \dots, s_n)^T\) 线性混合:

\[\mathbf{x} = \mathbf{A} \mathbf{s} \]

其中 \(\mathbf{A}\) 是未知混合矩阵(\(m \times n\),通常 \(m \geq n\))。目标是寻找分离矩阵 \(\mathbf{W}\) 使 \(\mathbf{y} = \mathbf{W} \mathbf{x}\) 逼近 \(\mathbf{s}\)

3.2 预处理步骤

  1. 中心化\(\mathbf{x} \leftarrow \mathbf{x} - E[\mathbf{x}]\)
  2. 白化:通过 PCA 将 \(\mathbf{x}\) 变换为 \(\mathbf{z} = \mathbf{V} \mathbf{x}\),使得 \(E[\mathbf{z} \mathbf{z}^T] = \mathbf{I}\)(各分量不相关、单位方差)。
    • 白化后模型简化为 \(\mathbf{z} = \mathbf{U} \mathbf{s}\),其中 \(\mathbf{U}\) 是正交矩阵。问题转化为寻找正交分离矩阵 \(\mathbf{W}\) 使 \(\mathbf{y} = \mathbf{W} \mathbf{z}\) 独立。

4. 快速ICA算法推导

4.1 单成分提取

目标:找到单位向量 \(\mathbf{w}\) 使 \(y = \mathbf{w}^T \mathbf{z}\) 的负熵最大化。

  • 优化问题:

\[\max_{\mathbf{w}} J(\mathbf{w}^T \mathbf{z}), \quad \text{s.t.} \ \|\mathbf{w}\| = 1 \]

  • 采用近似负熵 \(J(y) \propto [E\{G(y)\} - E\{G(\nu)\}]^2\),省略常数后等价于:

\[\max_{\mathbf{w}} E\{G(\mathbf{w}^T \mathbf{z})\}, \quad \text{s.t.} \ E\{(\mathbf{w}^T \mathbf{z})^2\} = 1 \]

4.2 不动点迭代

用拉格朗日乘子法求解,得到梯度:

\[\nabla_{\mathbf{w}} E\{G(\mathbf{w}^T \mathbf{z})\} - \beta \mathbf{w} = 0 \]

\(g\)\(G\) 的导数(如 \(G(y) = \log \cosh(y)\)\(g(y) = \tanh(y)\)),则梯度为 \(E\{\mathbf{z} g(\mathbf{w}^T \mathbf{z})\}\)
通过牛顿迭代法化简,得到快速ICA的不动点迭代:

  1. 初始化单位向量 \(\mathbf{w}\)
  2. 迭代更新:

\[\mathbf{w}^+ = E\{\mathbf{z} g(\mathbf{w}^T \mathbf{z})\} - E\{g'(\mathbf{w}^T \mathbf{z})\} \mathbf{w} \]

  1. 正交化(用于多成分):\(\mathbf{w} \leftarrow \mathbf{w}^+ / \|\mathbf{w}^+\|\)
  2. 重复直至收敛(\(\mathbf{w}\) 变化极小)。

5. 多成分扩展与算法步骤

5.1 逐成分提取

每提取一个成分后,从 \(\mathbf{z}\) 中减去其投影,避免重复提取相同成分。更高效的做法是对称正交化

  • 同时估计所有 \(n\) 个成分的矩阵 \(\mathbf{W} = [\mathbf{w}_1, \dots, \mathbf{w}_n]^T\)
  • 每次迭代后对 \(\mathbf{W}\) 做对称正交化:

\[\mathbf{W} \leftarrow (\mathbf{W} \mathbf{W}^T)^{-1/2} \mathbf{W} \]

(通过特征值分解实现)。

5.2 完整快速ICA算法步骤

  1. 输入观测数据 \(\mathbf{X}\)(每行一个观测变量),中心化。
  2. 白化:计算 \(\mathbf{Z} = \mathbf{V} \mathbf{X}\)
  3. 初始化正交矩阵 \(\mathbf{W}\)(随机)。
  4. 对每个 \(\mathbf{w}_i\) 进行不动点迭代:
    • \(\mathbf{w}_i^+ = E\{\mathbf{Z} g(\mathbf{w}_i^T \mathbf{Z})\} - E\{g'(\mathbf{w}_i^T \mathbf{Z})\} \mathbf{w}_i\)
    • 对称正交化:\(\mathbf{W} = (\mathbf{W} \mathbf{W}^T)^{-1/2} \mathbf{W}\)
  5. 重复步骤4直至 \(\mathbf{W}\) 收敛。
  6. 输出分离信号:\(\mathbf{Y} = \mathbf{W} \mathbf{Z}\)

6. 关键细节与注意事项

  • 函数 \(G\) 的选择
    • \(G_1(y) = \log \cosh(a_1 y)\):适合超高斯信号(尖峰分布)。
    • \(G_2(y) = -\exp(-y^2/2)\):适合次高斯信号(平缓分布)。
  • 收敛性:不动点迭代通常以二次速度收敛,比梯度法快。
  • 顺序不确定性:输出成分的顺序和幅度(符号)可能颠倒,这是 ICA 固有的模糊性。

7. 与PCA的对比

特性 PCA ICA
目标 方差最大化、去相关 独立性最大化、非高斯性
成分 正交 统计独立(不一定正交)
高斯性 对高斯数据最优 要求非高斯源

通过负熵最大化与快速不动点迭代,ICA 可高效分离混合信号(如脑电图中去除眼电干扰、音频信号分离等)。算法核心在于用非多项式矩近似负熵,并通过牛顿法推导出简洁的迭代更新。

独立成分分析(ICA)的负熵最大化与快速ICA算法 1. 问题描述 独立成分分析(Independent Component Analysis, ICA)是一种用于 盲源分离 的统计方法。假设观测信号是若干个未知独立源的线性混合,目标是从观测信号中恢复出源信号。与主成分分析(PCA)寻找不相关成分不同,ICA要求恢复的成分之间 统计独立 。 关键假设 : 各源信号相互独立。 至多一个源服从高斯分布(若多个高斯分布混合,独立性无法唯一确定)。 核心难点 :如何度量独立性?ICA常用 负熵最大化 作为独立性度量,并通过 快速ICA算法 高效求解。 2. 独立性度量与优化目标 2.1 独立性定义 随机变量独立 ⇔ 联合概率密度等于边缘密度的乘积: \[ p(s_ 1, s_ 2, \dots, s_ n) = \prod_ i p(s_ i) \] 实际中无法直接计算概率密度,通常利用 非高斯性 作为间接指标(中心极限定理:独立随机变量混合后更接近高斯分布)。 2.2 非高斯性度量:负熵 熵衡量随机性:\( H(y) = -\int p(y) \log p(y) dy \) 负熵定义(近似非负): \[ J(y) = H(y_ {\text{gauss}}) - H(y) \] 其中 \( y_ {\text{gauss}} \) 是与 \( y \) 同方差的高斯变量。负熵 \( J(y) \geq 0 \),仅在 \( y \) 为高斯时为零。 近似计算 :为避免密度估计,常采用 高阶累积量近似 或 非多项式矩函数 近似: \[ J(y) \approx c \left[ E\{G(y)\} - E\{G(\nu)\} \right ]^2 \] 其中 \( \nu \) 是标准高斯变量,\( G \) 是非二次函数(如 \( G(y) = \log \cosh(y) \) 或 \( G(y) = -\exp(-y^2/2) \))。 3. 信号混合模型与预处理 3.1 线性混合模型 设观测信号 \( \mathbf{x} = (x_ 1, \dots, x_ m)^T \) 由源信号 \( \mathbf{s} = (s_ 1, \dots, s_ n)^T \) 线性混合: \[ \mathbf{x} = \mathbf{A} \mathbf{s} \] 其中 \( \mathbf{A} \) 是未知混合矩阵(\( m \times n \),通常 \( m \geq n \))。目标是寻找分离矩阵 \( \mathbf{W} \) 使 \( \mathbf{y} = \mathbf{W} \mathbf{x} \) 逼近 \( \mathbf{s} \)。 3.2 预处理步骤 中心化 :\( \mathbf{x} \leftarrow \mathbf{x} - E[ \mathbf{x} ] \) 白化 :通过 PCA 将 \( \mathbf{x} \) 变换为 \( \mathbf{z} = \mathbf{V} \mathbf{x} \),使得 \( E[ \mathbf{z} \mathbf{z}^T ] = \mathbf{I} \)(各分量不相关、单位方差)。 白化后模型简化为 \( \mathbf{z} = \mathbf{U} \mathbf{s} \),其中 \( \mathbf{U} \) 是正交矩阵。问题转化为寻找正交分离矩阵 \( \mathbf{W} \) 使 \( \mathbf{y} = \mathbf{W} \mathbf{z} \) 独立。 4. 快速ICA算法推导 4.1 单成分提取 目标:找到单位向量 \( \mathbf{w} \) 使 \( y = \mathbf{w}^T \mathbf{z} \) 的负熵最大化。 优化问题: \[ \max_ {\mathbf{w}} J(\mathbf{w}^T \mathbf{z}), \quad \text{s.t.} \ \|\mathbf{w}\| = 1 \] 采用近似负熵 \( J(y) \propto [ E\{G(y)\} - E\{G(\nu)\} ]^2 \),省略常数后等价于: \[ \max_ {\mathbf{w}} E\{G(\mathbf{w}^T \mathbf{z})\}, \quad \text{s.t.} \ E\{(\mathbf{w}^T \mathbf{z})^2\} = 1 \] 4.2 不动点迭代 用拉格朗日乘子法求解,得到梯度: \[ \nabla_ {\mathbf{w}} E\{G(\mathbf{w}^T \mathbf{z})\} - \beta \mathbf{w} = 0 \] 令 \( g \) 为 \( G \) 的导数(如 \( G(y) = \log \cosh(y) \) 时 \( g(y) = \tanh(y) \)),则梯度为 \( E\{\mathbf{z} g(\mathbf{w}^T \mathbf{z})\} \)。 通过 牛顿迭代法 化简,得到快速ICA的不动点迭代: 初始化单位向量 \( \mathbf{w} \)。 迭代更新: \[ \mathbf{w}^+ = E\{\mathbf{z} g(\mathbf{w}^T \mathbf{z})\} - E\{g'(\mathbf{w}^T \mathbf{z})\} \mathbf{w} \] 正交化(用于多成分):\( \mathbf{w} \leftarrow \mathbf{w}^+ / \|\mathbf{w}^+\| \)。 重复直至收敛(\( \mathbf{w} \) 变化极小)。 5. 多成分扩展与算法步骤 5.1 逐成分提取 每提取一个成分后,从 \( \mathbf{z} \) 中减去其投影,避免重复提取相同成分。更高效的做法是 对称正交化 : 同时估计所有 \( n \) 个成分的矩阵 \( \mathbf{W} = [ \mathbf{w}_ 1, \dots, \mathbf{w}_ n ]^T \)。 每次迭代后对 \( \mathbf{W} \) 做对称正交化: \[ \mathbf{W} \leftarrow (\mathbf{W} \mathbf{W}^T)^{-1/2} \mathbf{W} \] (通过特征值分解实现)。 5.2 完整快速ICA算法步骤 输入观测数据 \( \mathbf{X} \)(每行一个观测变量),中心化。 白化:计算 \( \mathbf{Z} = \mathbf{V} \mathbf{X} \)。 初始化正交矩阵 \( \mathbf{W} \)(随机)。 对每个 \( \mathbf{w}_ i \) 进行不动点迭代: \( \mathbf{w}_ i^+ = E\{\mathbf{Z} g(\mathbf{w}_ i^T \mathbf{Z})\} - E\{g'(\mathbf{w}_ i^T \mathbf{Z})\} \mathbf{w}_ i \) 对称正交化:\( \mathbf{W} = (\mathbf{W} \mathbf{W}^T)^{-1/2} \mathbf{W} \) 重复步骤4直至 \( \mathbf{W} \) 收敛。 输出分离信号:\( \mathbf{Y} = \mathbf{W} \mathbf{Z} \)。 6. 关键细节与注意事项 函数 \( G \) 的选择 : \( G_ 1(y) = \log \cosh(a_ 1 y) \):适合超高斯信号(尖峰分布)。 \( G_ 2(y) = -\exp(-y^2/2) \):适合次高斯信号(平缓分布)。 收敛性 :不动点迭代通常以二次速度收敛,比梯度法快。 顺序不确定性 :输出成分的顺序和幅度(符号)可能颠倒,这是 ICA 固有的模糊性。 7. 与PCA的对比 | 特性 | PCA | ICA | |------|-----|-----| | 目标 | 方差最大化、去相关 | 独立性最大化、非高斯性 | | 成分 | 正交 | 统计独立(不一定正交) | | 高斯性 | 对高斯数据最优 | 要求非高斯源 | 通过负熵最大化与快速不动点迭代,ICA 可高效分离混合信号(如脑电图中去除眼电干扰、音频信号分离等)。算法核心在于用非多项式矩近似负熵,并通过牛顿法推导出简洁的迭代更新。