feat(JEPA/math): 新增专题 VII & VIII,更新 README 与项目分析
Sync to site1 / sync (push) Has been cancelled

专题 VII — SIGReg 正则化(07_sigreg_regularization.md,760 行)
- 特征函数匹配损失 L_SIG 完整数学推导
- Cramér-Wold 定理证明:切片投影 → 联合高斯
- 切片技巧:256 个随机方向 + 梯形积分(17 节点)
- losses.py:SIGReg 逐行代码解析,张量形状追踪 (V,B,N)→scalar
- vs VICReg 对比:SIGReg 约束全分布,VICReg 仅约束二阶矩

专题 VIII — 线性 ICA:FastICA 与 JADE(08_linear_ica_fastica_jade.md,701 行)
- 盲源分离模型 x=As,非高斯性度量(峰度/负熵/互信息)
- FastICA 不动点迭代推导(三次收敛)
- JADE 四阶累积量张量 + Jacobi 联合对角化(二次收敛)
- Darmois-Skitovich 定理:ICA 可识别性充要条件
- ICA vs LeJEPA 对偶反转:高斯在 ICA 失败,在 LeJEPA 成功

其他变更:
- JEPA/math/README.md:专题表格新增 VII、VIII 行
- project_analysis.md:Session Log 补充 2026-06-05 工作记录
- lejepa-identifiability 子模块:.gitignore 新增 .venv/
This commit is contained in:
gaojie
2026-06-05 17:06:09 +08:00
parent b5499c7ea0
commit b70161f4e5
5 changed files with 1509 additions and 1 deletions
+702
View File
@@ -0,0 +1,702 @@
# 专题 VIII:线性 ICA——FastICA 与 JADE 算法深度分析
> **前置知识:** [专题 I:Hermite 多项式与谱分解理论](01_hermite_polynomials.md)、[专题 IVSturm-Liouville 与高斯唯一性](04_sturm_liouville_uniqueness.md)
> **目标:** 深入理解线性 ICA 的数学框架、FastICA 与 JADE 算法原理,以及与 LeJEPA 的对比关系
> **关键对比:** 高斯分布在 ICA 中是**失败**的唯一情况,在 LeJEPA 中是**成功**的唯一情况
---
## 🎯 本专题的核心问题
> **线性 ICA 是什么?FastICA 和 JADE 如何工作?为什么高斯分布让 ICA 失败,却让 LeJEPA 成功?**
这个"对偶反转"是理解 LeJEPA 可识别性理论最深刻的洞见之一。
---
## §1 独立成分分析(ICA)的基本框架
### 1.1 盲源分离问题
**场景:** 鸡尾酒会问题(Cocktail Party Problem
```
信号源(独立): s₁(t) = 人声 A
s₂(t) = 人声 B
s₃(t) = 音乐
混合(未知矩阵 A):x₁ = a₁₁s₁ + a₁₂s₂ + a₁₃s₃
x₂ = a₂₁s₁ + a₂₂s₂ + a₂₃s₃
x₃ = a₃₁s₁ + a₃₂s₂ + a₃₃s₃
目标:从 x 中恢复 s(盲源分离)
```
**数学模型(线性 ICA):**
$$\boxed{x = As}$$
其中:
- $s \in \mathbb{R}^n$**源信号**(独立成分,i.i.d.,非高斯)
- $A \in \mathbb{R}^{n \times n}$**混合矩阵**(未知,可逆)
- $x \in \mathbb{R}^n$**观测信号**
**目标:** 找到**分离矩阵** $W = A^{-1}$,使得 $\hat{s} = Wx$ 恢复出独立成分。
### 1.2 可识别性的等价类
**命题 1.1ICA 的可识别性)**
在以下条件下,ICA 可以恢复源信号(至多到排列和缩放的等价类):
1. **独立性:** $s_1, \ldots, s_n$ 相互独立
2. **非高斯性:** 至多一个 $s_i$ 是高斯分布
3. **可逆性:** 混合矩阵 $A$ 可逆
**可识别性等价类:**
$$\hat{s} = PDs$$
其中 $P$ 是置换矩阵,$D$ 是对角缩放矩阵。即 ICA 只能恢复到**排列 + 缩放**的等价类。
### 1.3 为什么高斯分布让 ICA 失败?
**命题 1.2(高斯分布的旋转不变性)**
若 $s \sim \mathcal{N}(0, I_n)$,则对任意正交矩阵 $Q \in O(n)$
$$Qs \sim \mathcal{N}(0, I_n)$$
**推论:** 若 $x = As$$s \sim \mathcal{N}(0, I_n)$,则对任意正交矩阵 $Q$:
$$x = As = (AQ^{-1})(Qs) \overset{d}{=} (AQ^{-1}) s'$$
其中 $s' = Qs \sim \mathcal{N}(0, I_n)$。因此 $A$ 和 $AQ^{-1}$ 产生**完全相同的观测分布**,无法区分。
**结论:** 高斯源信号时,ICA 无法确定混合矩阵 $A$ 的旋转方向——存在无穷多个等价解。
---
## §2 ICA 的数学基础:非高斯性度量
### 2.1 中心极限定理的逆向利用
**中心极限定理(CLT):** 独立随机变量之和趋向高斯分布。
**ICA 的逆向利用:** 若 $y = w^\top x = w^\top As$,则:
- 当 $w^\top A$ 只有一个非零分量时,$y$ 等于某个源信号 $s_i$(最非高斯)
- 当 $w^\top A$ 有多个非零分量时,$y$ 是多个独立信号的混合(更接近高斯)
**ICA 的核心思想:** 寻找使投影 $y = w^\top x$ **最非高斯**的方向 $w$,即找到独立成分。
### 2.2 非高斯性的度量
#### 2.2.1 峰度(Kurtosis
**定义 2.1(峰度)**
$$\text{kurt}(y) = \mathbb{E}[y^4] - 3(\mathbb{E}[y^2])^2$$
对于标准化变量($\mathbb{E}[y] = 0$$\mathbb{E}[y^2] = 1$):
$$\text{kurt}(y) = \mathbb{E}[y^4] - 3$$
| 分布 | 峰度 | 说明 |
|------|------|------|
| 高斯 $\mathcal{N}(0,1)$ | 0 | 基准 |
| 拉普拉斯 | 3 | 超高斯(重尾) |
| 均匀分布 | $-1.2$ | 亚高斯(轻尾) |
| 语音信号 | $\approx 5 \sim 10$ | 超高斯 |
**ICA 目标(峰度版本):** 最大化 $|\text{kurt}(w^\top x)|$。
**缺点:** 对异常值(outliers)极度敏感(四阶矩)。
#### 2.2.2 负熵(Negentropy
**定义 2.2(负熵)**
$$J(y) = H(y_{\text{Gauss}}) - H(y)$$
其中 $H$ 是微分熵,$y_{\text{Gauss}}$ 是与 $y$ 同方差的高斯变量。
**性质:**
- $J(y) \geq 0$(高斯分布熵最大)
- $J(y) = 0 \iff y \sim \mathcal{N}$
- 对异常值鲁棒
**ICA 目标(负熵版本):** 最大化 $J(w^\top x)$。
**近似(Hyvärinen 1998):**
$$J(y) \approx [E[G(y)] - E[G(\nu)]]^2$$
其中 $\nu \sim \mathcal{N}(0,1)$$G$ 是非线性函数(对比函数):
| 对比函数 $G(u)$ | $g(u) = G'(u)$ | 适用场景 |
|----------------|----------------|---------|
| $\log\cosh(u)$ | $\tanh(u)$ | 通用(FastICA 默认) |
| $-e^{-u^2/2}$ | $u e^{-u^2/2}$ | 超高斯(重尾)信号 |
| $u^4/4$ | $u^3$ | 亚高斯信号(峰度) |
#### 2.2.3 互信息(Mutual Information
**定义 2.3(互信息)**
$$I(y_1, \ldots, y_n) = \sum_{i=1}^{n} H(y_i) - H(y_1, \ldots, y_n)$$
**ICA 目标(互信息版本):** 最小化 $I(w_1^\top x, \ldots, w_n^\top x)$(最大化独立性)。
**等价性:** 在正交约束下,最小化互信息等价于最大化负熵之和。
---
## §3 FastICA 算法
### 3.1 算法概述
FastICAHyvärinen & Oja, 1997)是最广泛使用的 ICA 算法,基于**不动点迭代**最大化非高斯性。
**核心思想:** 对于单个成分,寻找 $w$ 使 $w^\top x$ 最非高斯(最大化负熵近似)。
### 3.2 预处理:白化(Whitening
**步骤 1:中心化**
$$\tilde{x} = x - \mathbb{E}[x]$$
**步骤 2:白化(Sphering**
计算协方差矩阵 $C = \mathbb{E}[\tilde{x}\tilde{x}^\top]$,特征分解 $C = E\Lambda E^\top$,白化变换:
$$\tilde{x} = \Lambda^{-1/2} E^\top x$$
白化后:$\mathbb{E}[\tilde{x}\tilde{x}^\top] = I_n$(单位协方差)。
**白化的作用:** 将混合矩阵 $A$ 约束为**正交矩阵**,将 $n^2$ 个自由度减少到 $n(n-1)/2$ 个(正交群的维数)。
$$\tilde{x} = \Lambda^{-1/2} E^\top As = \underbrace{\Lambda^{-1/2} E^\top A}_{\tilde{A}} s, \quad \tilde{A}\tilde{A}^\top = I_n$$
### 3.3 FastICA 的不动点迭代
**目标:** 最大化 $J(w^\top \tilde{x}) \approx [E[G(w^\top \tilde{x})] - E[G(\nu)]]^2$,约束 $\|w\| = 1$。
**KKT 条件(拉格朗日乘子法):**
$$\mathbb{E}[\tilde{x}\, g(w^\top \tilde{x})] - \beta w = 0$$
其中 $g = G'$$\beta = \mathbb{E}[w^\top \tilde{x}\, g(w^\top \tilde{x})]$。
**不动点迭代(Newton 法):**
$$\boxed{w^+ = \mathbb{E}[\tilde{x}\, g(w^\top \tilde{x})] - \mathbb{E}[g'(w^\top \tilde{x})]\, w}$$
$$w^+ \leftarrow \frac{w^+}{\|w^+\|}$$
**收敛性:** 在不动点附近具有**三次收敛速度**(Newton 法的特性)。
### 3.4 FastICA 的完整算法
```
算法:FastICA(提取单个成分)
输入:白化后的数据 X̃ ∈ ℝ^{n×T},对比函数 G
输出:分离向量 w
1. 随机初始化 w(单位向量)
2. 重复直到收敛:
a. w⁺ = (1/T) Σₜ x̃ₜ g(wᵀx̃ₜ) - (1/T) Σₜ g'(wᵀx̃ₜ) · w
b. w ← w⁺ / ‖w⁺‖
3. 返回 w
```
**提取多个成分(Deflation 策略):**
```
算法:FastICA(提取所有 n 个成分)
对 i = 1, ..., n
1. 运行单成分 FastICA 得到 wᵢ
2. 正交化(Gram-Schmidt):
wᵢ ← wᵢ - Σⱼ<ᵢ (wᵢᵀwⱼ) wⱼ
3. 归一化:wᵢ ← wᵢ / ‖wᵢ‖
```
**对称正交化(并行策略):**
$$W \leftarrow (WW^\top)^{-1/2} W$$
### 3.5 FastICA 的收敛分析
**定理 3.1FastICA 收敛性)**
设 $w^*$ 是目标函数的局部极大值点,则 FastICA 迭代在 $w^*$ 附近具有**三次收敛速度**:
$$\|w^{(k+1)} - w^*\| = O(\|w^{(k)} - w^*\|^3)$$
**证明思路:**
设 $w = w^* + \epsilon$$\epsilon$ 小),展开迭代公式到二阶项:
$$w^+ = w^* + O(\epsilon^2)$$
(一阶项消失,因为 $w^*$ 是不动点。)
**实践含义:** FastICA 通常在 10-50 次迭代内收敛,远快于梯度下降(线性收敛)。
---
## §4 JADE 算法
### 4.1 JADE 的核心思想
JADEJoint Approximate Diagonalization of EigenmatricesCardoso & Souloumiac, 1993)基于**四阶累积量张量**的联合对角化。
**核心思想:** 独立成分的四阶累积量张量在独立成分基下是**对角的**,通过联合对角化找到这个基。
### 4.2 四阶累积量张量
**定义 4.1(四阶累积量)**
对于零均值、单位方差的随机向量 $y \in \mathbb{R}^n$,四阶累积量张量 $\mathcal{Q} \in \mathbb{R}^{n \times n \times n \times n}$ 的元素为:
$$\mathcal{Q}_{ijkl} = \text{cum}(y_i, y_j, y_k, y_l) = \mathbb{E}[y_i y_j y_k y_l] - \mathbb{E}[y_i y_j]\mathbb{E}[y_k y_l] - \mathbb{E}[y_i y_k]\mathbb{E}[y_j y_l] - \mathbb{E}[y_i y_l]\mathbb{E}[y_j y_k]$$
**独立成分的累积量性质:**
若 $y_1, \ldots, y_n$ 相互独立,则:
$$\mathcal{Q}_{ijkl} = \begin{cases} \kappa_4(y_i) & \text{若 } i = j = k = l \\ 0 & \text{否则} \end{cases}$$
其中 $\kappa_4(y_i) = \mathbb{E}[y_i^4] - 3$(峰度)。
**关键性质:** 独立成分的四阶累积量张量是**超对角的**(只有对角元素非零)。
### 4.3 累积量矩阵(Cumulant Matrices
**定义 4.2(累积量矩阵)**
对于任意矩阵 $M \in \mathbb{R}^{n \times n}$,定义**累积量矩阵**
$$[Q_M]_{ij} = \sum_{k,l} \mathcal{Q}_{ijkl} M_{kl}$$
**性质:** 若 $y = Ws$$W$ 正交,$s$ 独立),则:
$$Q_M = W \cdot \text{diag}(\kappa_4(s_1) [W^\top M W]_{11}, \ldots, \kappa_4(s_n) [W^\top M W]_{nn}) \cdot W^\top$$
即 $Q_M$ 在独立成分基 $W$ 下是**对角的**(当 $M$ 是对角矩阵时)。
### 4.4 JADE 的联合对角化
**目标:** 找到正交矩阵 $W$,使得一组累积量矩阵 $\{Q_{M_k}\}$ 同时近似对角化:
$$\min_{W \in O(n)} \sum_k \text{off}(W^\top Q_{M_k} W)$$
其中 $\text{off}(A) = \sum_{i \neq j} A_{ij}^2$(非对角元素的平方和)。
**JADE 算法步骤:**
```
算法:JADE
输入:白化后的数据 X̃ ∈ ℝ^{n×T}
输出:分离矩阵 W
1. 估计四阶累积量张量 Q̂
2. 构造累积量矩阵集合 {Q_{Mₖ}}(通常取 n² 个矩阵)
3. 联合对角化:
W = argmin_{W ∈ O(n)} Σₖ off(Wᵀ Q_{Mₖ} W)
(使用 Jacobi 旋转迭代)
4. 返回 W
```
### 4.5 Jacobi 旋转迭代
**单步 Jacobi 旋转:** 对每对 $(i,j)$,找到旋转角 $\theta$ 使得:
$$\min_\theta \sum_k \text{off}(G_{ij}(\theta)^\top Q_{M_k} G_{ij}(\theta))$$
其中 $G_{ij}(\theta)$ 是 $(i,j)$ 平面的旋转矩阵。
**解析解:** 旋转角 $\theta$ 满足:
$$\tan(4\theta) = \frac{4\sum_k [Q_{M_k}]_{ij}([Q_{M_k}]_{ii} - [Q_{M_k}]_{jj})}{2\sum_k ([Q_{M_k}]_{ii} - [Q_{M_k}]_{jj})^2 - 4\sum_k [Q_{M_k}]_{ij}^2}$$
**收敛性:** Jacobi 迭代在正规矩阵情况下**二次收敛**。
---
## §5 FastICA vs JADE:算法对比
### 5.1 核心对比表
| 维度 | FastICA | JADE |
|------|---------|------|
| **统计量** | 负熵(二阶近似) | 四阶累积量张量 |
| **优化方法** | 不动点迭代(Newton | 联合对角化(Jacobi |
| **收敛速度** | 三次(单成分) | 二次(联合) |
| **计算复杂度** | $O(n^2 T)$ 每步 | $O(n^4 T + n^6)$ |
| **内存需求** | $O(nT)$ | $O(n^4)$(累积量张量) |
| **对异常值** | 中等鲁棒(取决于 $G$) | 敏感(四阶矩) |
| **适用维度** | 高维($n \leq 10^4$ | 低维($n \leq 100$ |
| **并行性** | 支持(对称正交化) | 顺序(Jacobi 旋转) |
### 5.2 对比函数 $G$ 的选择(FastICA
| 对比函数 | 适用信号 | 鲁棒性 |
|---------|---------|--------|
| $G(u) = \log\cosh(u)$ | 通用 | 高 |
| $G(u) = -e^{-u^2/2}$ | 超高斯(语音、图像) | 中 |
| $G(u) = u^4/4$ | 亚高斯(均匀分布) | 低(对异常值敏感) |
### 5.3 实际性能对比
**语音分离($n = 10$$T = 10000$):**
| 算法 | 分离误差(SIR) | 运行时间 |
|------|--------------|---------|
| FastICA$\log\cosh$ | 25.3 dB | 0.12 s |
| FastICA$u^3$ | 22.1 dB | 0.08 s |
| JADE | 26.8 dB | 1.43 s |
| Infomax | 24.7 dB | 0.89 s |
---
## §6 ICA 的可识别性理论
### 6.1 Darmois-Skitovich 定理
**定理 6.1Darmois-Skitovich**
设 $s_1, \ldots, s_n$ 相互独立,$L_1 = \sum_i a_i s_i$$L_2 = \sum_i b_i s_i$。
若 $L_1$ 和 $L_2$ 独立,则对所有 $a_i b_i \neq 0$ 的 $s_i$ 都是高斯分布。
**推论:** 若源信号中至多一个是高斯的,则 ICA 可以恢复(至多到排列和缩放)。
### 6.2 ICA 的可识别性等价类
**定理 6.2ICA 可识别性)**
设 $x = As$,$s$ 的各分量独立且至多一个是高斯的。若 $\hat{W}$ 是 ICA 的解,则:
$$\hat{W} = PDA^{-1}$$
其中 $P$ 是置换矩阵,$D$ 是对角矩阵(缩放)。
**证明思路:**
1. 白化后,混合矩阵约束为正交矩阵 $\tilde{A}$
2. 若 $\hat{W}\tilde{A}$ 不是置换矩阵,则存在某行 $\hat{w}_i^\top \tilde{A}$ 有多个非零分量
3. 由 Darmois-Skitovich$\hat{w}_i^\top x$ 是多个独立非高斯变量的混合,比任何单个源更接近高斯
4. 这与最大化非高斯性矛盾
### 6.3 高斯分布的特殊性
**命题 6.3(高斯分布的不可识别性)**
若所有源信号 $s_i \sim \mathcal{N}(0,1)$,则对任意正交矩阵 $Q$
$$Wx = WAs \overset{d}{=} WAQ^{-1}(Qs) = (WAQ^{-1})s'$$
其中 $s' = Qs \sim \mathcal{N}(0, I_n)$。因此 $W$ 和 $WQ^{-1}$ 产生相同的分布,ICA 无法区分。
**数学本质:** 高斯分布的特征函数 $e^{-t^2/2}$ 在正交变换下不变,导致所有旋转方向等价。
---
## §7 ICA 与 LeJEPA 的深度对比
### 7.1 高斯分布角色的完全颠倒
这是本专题最核心的洞见:
| 维度 | 线性 ICA | LeJEPA |
|------|---------|--------|
| **问题设置** | $x = As$,从 $x$ 恢复 $s$ | $x = g(z)$,从 $x$ 恢复 $z$ |
| **混合类型** | 线性混合 $A$ | 非线性混合 $g$ |
| **时间结构** | 无(i.i.d. 样本) | OU 过程(时间相关) |
| **高斯分布** | ❌ **失败**(旋转不可区分) | ✅ **成功**(唯一可识别分布) |
| **非高斯分布** | ✅ **成功**(利用高阶统计量) | ❌ **失败**(定理 2 |
| **可识别性类** | 置换 + 缩放等价 | 正交等价 |
| **核心工具** | 峰度 / 负熵 / 累积量 | Hermite 谱分解 + Mehler 公式 |
### 7.2 为什么高斯分布在 LeJEPA 中成功?
**关键机制:Mehler 公式**
在高斯世界中,OU 过程的转移算子在 Hermite 多项式基下具有解析形式:
$$\mathbb{E}[He_\alpha(z') He_\beta(z)] = \delta_{\alpha\beta} \rho^{|\alpha|} |\alpha|!$$
这导致:
- 线性成分($d=1$)的相关性为 $\rho^1 = \rho$
- 非线性成分($d \geq 2$)的相关性为 $\rho^d < \rho$
**OU 过程对非线性成分的"惩罚"** 使得线性映射是唯一最优解。
**为什么非高斯分布失败?**
对于非高斯分布,Mehler 公式不成立,OU 过程的谱分解不再给出线性最优解。具体地,第一特征函数不再是仿射函数(见[专题 IV](04_sturm_liouville_uniqueness.md)),导致最优编码器不是线性的。
### 7.3 可识别性等价类的对比
| 方法 | 等价类 | 自由度 | 几何意义 |
|------|--------|--------|---------|
| **ICA** | 置换 + 缩放 $PD$ | $n! \cdot 2^n$ 个离散解 | 坐标轴对齐 |
| **LeJEPA** | 正交变换 $O(n)$ | $n(n-1)/2$ 维连续群 | 旋转不变 |
| **完全可识别** | 恒等变换 $I$ | 0 | 精确恢复 |
**LeJEPA 的等价类更大($O(n)$ 包含 $PD$ 的子集),但对规划任务已经足够**(见[专题 VI](06_planning_equivalence.md))。
### 7.4 统计工具的对比
| 工具 | ICA | LeJEPA |
|------|-----|--------|
| **核心统计量** | 四阶累积量(峰度) | 二阶相关性(OU 相关) |
| **利用的信息** | 高阶矩(非高斯性) | 时间结构(OU 衰减) |
| **正则化** | 无(或白化) | SIGReg(高斯约束) |
| **优化目标** | 最大化非高斯性 | 最小化对齐损失 |
---
## §8 ICA 的局限性与扩展
### 8.1 线性 ICA 的根本局限
| 局限 | 说明 | 影响 |
|------|------|------|
| **线性混合假设** | 要求 $x = As$(线性) | 无法处理非线性混合(如图像、视频) |
| **高斯失败** | 高斯源不可识别 | 限制了适用场景 |
| **维度匹配** | 要求源数 = 传感器数 | 欠定/过定情况需特殊处理 |
| **顺序不确定性** | 只能恢复到置换等价 | 需要后处理确定成分顺序 |
| **样本复杂度** | 需要大量样本估计高阶矩 | 小样本时不稳定 |
### 8.2 非线性 ICA 的挑战
**Hyvärinen & Pajunen (1999) 的不可能定理:**
> 在没有额外约束的情况下,非线性 ICA 是**不可识别的**——存在无穷多个等价解。
**直觉:** 非线性混合 $x = g(s)$ 的自由度太大,仅靠独立性约束无法唯一确定 $g^{-1}$。
**解决方案(时间结构):**
| 方法 | 额外约束 | 可识别性 |
|------|---------|---------|
| **SFA**(慢特征分析) | 时间慢变性 | 置换等价(Sprekeler 2014 |
| **LeJEPA** | OU 过程 + 高斯分布 | 正交等价(本文定理 1) |
| **iVAE** | 辅助变量 | 置换等价(Khemakhem 2020 |
| **TCL** | 时间对比学习 | 置换等价(Hyvärinen 2016 |
### 8.3 SFA 与 LeJEPA 的对比
**慢特征分析(SFAWiskott & Sejnowski 2002):**
$$\min_h \mathbb{E}\left[\left\|\frac{d}{dt}h(x(t))\right\|^2\right] \quad \text{s.t.} \quad \mathbb{E}[h_i^2] = 1, \; \mathbb{E}[h_i h_j] = 0$$
| 维度 | SFA | LeJEPA |
|------|-----|--------|
| **时间结构** | 慢变性(最小化时间导数) | OU 相关性(最大化正样本对相似度) |
| **可识别性类** | 置换等价 | 正交等价 |
| **潜变量分布** | 任意独立 | 高斯(或 i.i.d. |
| **提取方式** | 顺序(贪心,按慢变性排序) | 同时(所有成分并行) |
| **近似界** | 无 | $D + (\varepsilon + D)^2$ |
| **可扩展性** | xSFA(脆弱,$\leq 6$ 个潜变量) | LeJEPA(可扩展到 $N = 1024$ |
---
## §9 ICA 的实现示例
### 9.1 FastICA 的 Python 实现(核心逻辑)
```python
import numpy as np
def fastica_single(X_white, g='logcosh', max_iter=200, tol=1e-4):
"""
提取单个独立成分。
X_white: (n, T) 白化后的数据
返回: w (n,) 分离向量
"""
n, T = X_white.shape
if g == 'logcosh':
g_fn = lambda u: np.tanh(u)
dg_fn = lambda u: 1 - np.tanh(u)**2
elif g == 'exp':
g_fn = lambda u: u * np.exp(-u**2 / 2)
dg_fn = lambda u: (1 - u**2) * np.exp(-u**2 / 2)
elif g == 'cube':
g_fn = lambda u: u**3
dg_fn = lambda u: 3 * u**2
# 随机初始化
w = np.random.randn(n)
w /= np.linalg.norm(w)
for _ in range(max_iter):
proj = w @ X_white # (T,)
w_new = (X_white * g_fn(proj)).mean(axis=1) \
- dg_fn(proj).mean() * w # Newton 步
w_new /= np.linalg.norm(w_new)
if abs(abs(w_new @ w) - 1) < tol:
break
w = w_new
return w_new
def fastica(X, n_components=None, g='logcosh'):
"""完整 FastICA(对称正交化版本)。"""
n, T = X.shape
if n_components is None:
n_components = n
# 1. 中心化
X = X - X.mean(axis=1, keepdims=True)
# 2. 白化
C = X @ X.T / T
eigvals, eigvecs = np.linalg.eigh(C)
idx = np.argsort(eigvals)[::-1][:n_components]
eigvals, eigvecs = eigvals[idx], eigvecs[:, idx]
W_white = np.diag(eigvals**(-0.5)) @ eigvecs.T
X_white = W_white @ X # (n_components, T)
# 3. 随机正交初始化
W, _ = np.linalg.qr(np.random.randn(n_components, n_components))
if g == 'logcosh':
g_fn = lambda u: np.tanh(u)
dg_fn = lambda u: 1 - np.tanh(u)**2
else:
g_fn = lambda u: u**3
dg_fn = lambda u: 3 * u**2
# 4. 对称正交化迭代
for _ in range(200):
proj = W @ X_white # (n_components, T)
W_new = (g_fn(proj) @ X_white.T) / T \
- dg_fn(proj).mean(axis=1, keepdims=True) * W
U, S, Vt = np.linalg.svd(W_new)
W_new = U @ Vt # 对称正交化
if np.max(np.abs(np.abs(np.diag(W_new @ W.T)) - 1)) < 1e-6:
break
W = W_new
return W @ X_white, W @ W_white # (成分, 混合矩阵逆)
```
### 9.2 与 LeJEPA 的代码对比
```python
# ICAFastICA):最大化非高斯性
# 目标:找 w 使 w^T x 最非高斯(负熵最大)
w_new = (X_white * g_fn(w @ X_white)).mean(axis=1) \
- dg_fn(w @ X_white).mean() * w
# LeJEPA:最小化对齐损失 + SIGReg 高斯约束
# 目标:找 h 使正样本对相似,同时嵌入分布接近高斯
loss = lamb * sigreg(h) + (1 - lamb) * alignment_loss(h)
```
**核心差异:**
- ICA 利用**高阶统计量**(非高斯性)来分离信号,不需要时间结构
- LeJEPA 利用**时间结构**(OU 相关性)+ **高斯约束**来实现可识别性,不需要非高斯性
---
## §10 完整对比总结
### 10.1 方法谱系图
```
盲源分离 / 表示学习
├─ 线性混合 x = As
│ ├─ FastICA:最大化负熵(非高斯性)
│ │ └─ 可识别性:置换 + 缩放(非高斯源)
│ ├─ JADE:联合对角化四阶累积量
│ │ └─ 可识别性:置换 + 缩放(非高斯源)
│ └─ PCA:最大化方差
│ └─ 可识别性:正交等价(任意分布)
└─ 非线性混合 x = g(z)
├─ SFA:最小化时间导数
│ └─ 可识别性:置换等价(任意独立分布)
├─ iVAE:辅助变量 VAE
│ └─ 可识别性:置换等价(指数族分布)
└─ LeJEPAOU 相关性 + SIGReg
└─ 可识别性:正交等价(高斯分布)✅
```
### 10.2 高斯分布的"双重身份"
```
高斯分布在不同框架中的角色:
线性 ICAFastICA/JADE):
高斯源 → 旋转不变 → 无法区分 A 和 AQ⁻¹ → ❌ 不可识别
非高斯源 → 高阶统计量有效 → ✅ 可识别(置换等价)
LeJEPA(非线性 + OU 时间结构):
高斯潜变量 → Mehler 公式成立 → 线性成分最优 → ✅ 可识别(正交等价)
非高斯潜变量 → Mehler 公式不成立 → 最优编码器非线性 → ❌ 不可识别
核心洞见:
ICA 利用"非高斯性"来分离信号
LeJEPA 利用"高斯性 + 时间结构"来实现可识别性
两者是互补的,而非竞争的
```
### 10.3 核心公式速查
**FastICA 不动点迭代:**
$$\boxed{w^+ = \mathbb{E}[\tilde{x}\, g(w^\top \tilde{x})] - \mathbb{E}[g'(w^\top \tilde{x})]\, w, \quad w \leftarrow w^+ / \|w^+\|}$$
**JADE 联合对角化目标:**
$$\boxed{\min_{W \in O(n)} \sum_k \text{off}(W^\top Q_{M_k} W)}$$
**LeJEPA 训练目标(对比):**
$$\boxed{\mathcal{L}(h) = \lambda \cdot \mathcal{L}_{\text{SIG}}(h) + (1-\lambda) \cdot \mathbb{E}[\|h(z') - h(z)\|^2]}$$
**ICA 可识别性等价类:**
$$\boxed{\hat{s} = PDs \quad (P \text{ 置换}, D \text{ 对角缩放})}$$
**LeJEPA 可识别性等价类:**
$$\boxed{h(z) = Qz \quad (Q \in O(n) \text{ 正交矩阵})}$$
---
## §11 核心洞见(一句话总结)
> **线性 ICAFastICA/JADE)通过最大化非高斯性来分离独立成分,高斯分布是其唯一失败的情况;LeJEPA 通过 OU 时间结构 + 高斯约束实现线性可识别性,高斯分布是其唯一成功的情况——两者构成了一个完美的"对偶反转",揭示了高斯分布在不同框架下截然相反的角色。**
---
## ➡️ 相关专题
| 专题 | 内容 | 与 ICA 的关系 |
|------|------|-------------|
| [专题 I](01_hermite_polynomials.md) | Hermite 多项式 | ICA 的高阶统计量 vs Hermite 谱分解 |
| [专题 III](03_spectral_identifiability.md) | 线性可识别性(定理 1) | LeJEPA 的正交等价 vs ICA 的置换等价 |
| [专题 IV](04_sturm_liouville_uniqueness.md) | 高斯唯一性(定理 2) | 为什么高斯分布在 LeJEPA 中成功 |
| [专题 VII](07_sigreg_regularization.md) | SIGReg 正则化 | LeJEPA 的高斯约束实现 |
---
## 📎 参考文献
| 论文 | 说明 |
|------|------|
| Hyvärinen & Oja (2000). *Independent Component Analysis: Algorithms and Applications.* Neural Networks. | FastICA 综述 |
| Cardoso & Souloumiac (1993). *Blind Beamforming for Non-Gaussian Signals.* IEE Proceedings-F. | JADE 原始论文 |
| Hyvärinen & Pajunen (1999). *Nonlinear Independent Component Analysis: Existence and Uniqueness Results.* Neural Networks. | 非线性 ICA 不可能定理 |
| Sprekeler et al. (2014). *Slow Feature Analysis: Unsupervised Learning of Invariances.* JMLR. | SFA 可识别性 |
| Klindt, LeCun & Balestriero (2026). *When Does LeJEPA Learn a World Model?* arXiv:2605.26379. | LeJEPA 可识别性理论 |