七、独立成分分析
独立成分分析
ICA
用于从混合信号中分离出原始信号。本质上它并不是一个降维的算法,而是一个信号分离算法。
7.1 鸡尾酒会问题
假设酒会上有 个人,他们可以同时说话。房间里散落了 个声音接收器用于记录声音。酒会过后,从 个声音接收器中采集到一组数据:
任务的目标是:从这 个时刻的采样数据中恢复出每个人说话的信号。这个过程也称作盲信号分离。
随机变量 表示观测随机变量, 是其第 个采样值,其物理意义为:在时刻 采集到的 个声音信号。
定义:
第 个人说话的信号为 。它是一个随机变量,其分布为 。 为 的 个时刻的采样,记作 。
个人说话的信号为 。它是一个 维随机变量,分布为 。 为 的 个时刻的采样。
第 个声音接收器收到的信号为 。它是一个随机变量,其分布为 。 为 的 个时刻的采样,记作 。
个声音接收器收到的信号为 。它是一个 维随机变量,分布为 。 为 的 个时刻的采样。
定义矩阵 和矩阵 为:
其意义为:
- 的每一行代表 在时刻 的采样 ;每一列代表信号 在所有时刻的采样序列 。
- 的每一行代表 在时刻 的采样 ;每一列代表信号 在所有时刻的采样序列 。
是一个未知的混合矩阵,它用于叠加 个人说话的信号。则有: 。即: 。
其物理意义为:每个声音接收器采集的信号是所有人说话信号的线性叠加。
7.2 算法
现在 是已知的,即信号 是已知的。令 ,则有: 。 称作分离矩阵。
如果没有任何先验知识,则无法同时确定信号 和 。
当 的每个元素扩大 2 倍,同时信号 放大2倍时,等式仍然成立。因此结果不是唯一的。
当调整信号 中各子信号的顺序,同时调整 中各行的顺序,等式也仍然成立。因此结果不是唯一的。
信号 不能是多维高斯分布。
假设 是多维高斯分布 : 。则 也是一个多维高斯分布,均值为 ,方差为 。
假设 为任意一个正交矩阵,令 ,则有: 。
这表示在给定信号 的分布和 的分布的情况下,参数 的值并不是唯一的,因此无法分离出每个人说话的信号 。
假设每个人发出的声音信号 相互独立,则 的概率分布为: 。
根据 ,有: 。其中 为行列式。
记:
令 , 即它是由 的第 行组成。则有:
因此有: 。
前面提到如果没有任何先验知识,则无法求解。这里需要假设 。
首先,不能选取高斯分布。
其次,考虑到概率密度函数由累计分布函数求导得到,一个方便的选择是:选择累计分布函数为
sigmoid
函数 :则概率密度函数为:
给定采样样本集 ,则对数似然函数为:
根据最大似然准则,可以采用梯度下降法求解 的最大值。
其中:根据矩阵微积分有: 。则有:
当迭代求解出 之后,通过 。 还原出原始信号。
最大似然估计时,假设 和 之间是相互独立的。事实上对于语音信号或者其他具有时间连续性依赖性的数据(如:温度),这个假设不能成立。
- 但是当数据足够多,假设独立对于效果影响不大。
- 如果事先打乱样本,则会加快梯度下降法的收敛速度。
7.3 FastICA
FastICA
的基本思想是:使得 最不可能是高斯信号。度量随机变量 的分布为高斯分布的程度:
基于峰度
kurtosis
的方法: 。- 对于高斯分布,其峰度为 0 ,因此如果 偏离 0 值越远,则它越不可能是高斯分布。
- 实际上该指标只能刻画一个分布是不是高斯分布,而无法描述一个分布偏离高斯分布的程度。因此该方法实际效果一般。
基于负熵的方法:。 其中 为随机变量的熵, 是一个高斯分布,其均值、方差与非高斯分布的 的均值、方差相同。
在信息论中可以证明:在相同方差的条件下,高斯分布的熵最大。因此可以认为 越大, 的分布偏离高斯分布越远。
由于计算 必须需要知道 的概率密度分布函数,实际任务中很难实现。因此通常采用近似公式 来实现。其中 为非线性函数,可以为:
、 、 。其中 。
其导数为 。
定义目标函数为 ,采用梯度下降法求解。其迭代公式为:
一次
FastICA
算法能够估计出一个独立成分,为了估计出若干个独立成分,需要进行多次FastICA
算法来得到 。为了防止这些向量收敛到同一个最大值(即:分解出同一个独立成分),当估计 时,需要减去 在之前得到的 上的投影。即:
其中下标 并不是迭代步数,而是第 个 。
7.4 预处理
ICA
中需要进行预处理,主要有数据中心化、白化两个步骤。数据中心化:对数据集 执行:
称作数据集 的中心向量,它的各元素就是各个特征的均值。
该操作使得 ,这也意味着 也是零均值的。
白化:对 执行线性变化,使其协方差矩阵为单位矩阵 。即: 。
的协方差矩阵为 (经过数据中心化之后), 设其特征值为 ,对应的特征向量组成的矩阵为 ,则有: ,其中 。
令: ,则有: 。
若 的协方差矩阵为单位矩阵,则根据 有: 。
- 根据假设, 中各信号 是相互独立的,因此 的协方差矩阵必须是对角矩阵。
- 能够对 进行缩放时,相应的 进行同样缩放,等式仍然成立。即:最终的解与 幅度无关。因此可以选择 的长度为1。
因此有: 。
,即 相互正交且长度为1 。这也是
FastICA
算法中需要对 进行归一化和正交化的原因。这使得矩阵 的参数从 个降低到 个,减小了算法的计算复杂度。