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