七、独立成分分析

  1. 独立成分分析ICA 用于从混合信号中分离出原始信号。

    本质上它并不是一个降维的算法,而是一个信号分离算法。

7.1 鸡尾酒会问题

  1. 假设酒会上有 七、独立成分分析 - 图1 个人,他们可以同时说话。房间里散落了 七、独立成分分析 - 图2 个声音接收器用于记录声音。酒会过后,从 七、独立成分分析 - 图3 个声音接收器中采集到一组数据:

    七、独立成分分析 - 图4

    任务的目标是:从这 七、独立成分分析 - 图5 个时刻的采样数据中恢复出每个人说话的信号。这个过程也称作盲信号分离。

    随机变量 七、独立成分分析 - 图6 表示观测随机变量,七、独立成分分析 - 图7 是其第 七、独立成分分析 - 图8 个采样值,其物理意义为:在时刻 七、独立成分分析 - 图9 采集到的 七、独立成分分析 - 图10 个声音信号。

  2. 定义:

    • 七、独立成分分析 - 图11 个人说话的信号为 七、独立成分分析 - 图12 。它是一个随机变量,其分布为 七、独立成分分析 - 图13七、独立成分分析 - 图14七、独立成分分析 - 图15七、独立成分分析 - 图16 个时刻的采样,记作 七、独立成分分析 - 图17

    • 七、独立成分分析 - 图18 个人说话的信号为 七、独立成分分析 - 图19 。它是一个 七、独立成分分析 - 图20 维随机变量,分布为 七、独立成分分析 - 图21七、独立成分分析 - 图22七、独立成分分析 - 图23七、独立成分分析 - 图24 个时刻的采样。

    • 七、独立成分分析 - 图25 个声音接收器收到的信号为 七、独立成分分析 - 图26 。它是一个随机变量,其分布为 七、独立成分分析 - 图27七、独立成分分析 - 图28七、独立成分分析 - 图29七、独立成分分析 - 图30 个时刻的采样,记作 七、独立成分分析 - 图31

    • 七、独立成分分析 - 图32 个声音接收器收到的信号为 七、独立成分分析 - 图33 。它是一个 七、独立成分分析 - 图34 维随机变量,分布为 七、独立成分分析 - 图35七、独立成分分析 - 图36七、独立成分分析 - 图37七、独立成分分析 - 图38 个时刻的采样。

    • 定义矩阵 七、独立成分分析 - 图39 和矩阵 七、独立成分分析 - 图40 为:

      七、独立成分分析 - 图41

      其意义为:

      • 七、独立成分分析 - 图42 的每一行代表 七、独立成分分析 - 图43 在时刻 七、独立成分分析 - 图44 的采样 七、独立成分分析 - 图45;每一列代表信号 七、独立成分分析 - 图46 在所有时刻的采样序列 七、独立成分分析 - 图47
      • 七、独立成分分析 - 图48 的每一行代表 七、独立成分分析 - 图49 在时刻 七、独立成分分析 - 图50 的采样 七、独立成分分析 - 图51;每一列代表信号 七、独立成分分析 - 图52 在所有时刻的采样序列 七、独立成分分析 - 图53
  3. 七、独立成分分析 - 图54 是一个未知的混合矩阵,它用于叠加 七、独立成分分析 - 图55 个人说话的信号。则有: 七、独立成分分析 - 图56 。即:七、独立成分分析 - 图57

    其物理意义为:每个声音接收器采集的信号是所有人说话信号的线性叠加。

7.2 算法

  1. 现在 七、独立成分分析 - 图58 是已知的,即信号 七、独立成分分析 - 图59 是已知的。令 七、独立成分分析 - 图60 ,则有:七、独立成分分析 - 图61七、独立成分分析 - 图62 称作分离矩阵。

    如果没有任何先验知识,则无法同时确定信号 七、独立成分分析 - 图63七、独立成分分析 - 图64

    • 七、独立成分分析 - 图65 的每个元素扩大 2 倍,同时信号 七、独立成分分析 - 图66 放大2倍时,等式仍然成立。因此结果不是唯一的。

    • 当调整信号 七、独立成分分析 - 图67 中各子信号的顺序,同时调整 七、独立成分分析 - 图68 中各行的顺序,等式也仍然成立。因此结果不是唯一的。

    • 信号 七、独立成分分析 - 图69 不能是多维高斯分布。

      假设 七、独立成分分析 - 图70 是多维高斯分布 : 七、独立成分分析 - 图71 。则 七、独立成分分析 - 图72 也是一个多维高斯分布,均值为 七、独立成分分析 - 图73 ,方差为 七、独立成分分析 - 图74

      假设 七、独立成分分析 - 图75 为任意一个正交矩阵,令 七、独立成分分析 - 图76 ,则有: 七、独立成分分析 - 图77

      这表示在给定信号 七、独立成分分析 - 图78 的分布和 七、独立成分分析 - 图79 的分布的情况下,参数 七、独立成分分析 - 图80 的值并不是唯一的,因此无法分离出每个人说话的信号 七、独立成分分析 - 图81

  2. 假设每个人发出的声音信号 七、独立成分分析 - 图82 相互独立,则 七、独立成分分析 - 图83 的概率分布为:七、独立成分分析 - 图84

    根据 七、独立成分分析 - 图85 ,有:七、独立成分分析 - 图86 。其中 七、独立成分分析 - 图87 为行列式。

    记:

    七、独立成分分析 - 图88

    七、独立成分分析 - 图89, 即它是由 七、独立成分分析 - 图90 的第 七、独立成分分析 - 图91 行组成。则有:

    七、独立成分分析 - 图92

    因此有:七、独立成分分析 - 图93

  3. 前面提到如果没有任何先验知识,则无法求解。这里需要假设 七、独立成分分析 - 图94

    • 首先,不能选取高斯分布。

    • 其次,考虑到概率密度函数由累计分布函数求导得到,一个方便的选择是:选择累计分布函数为 sigmoid 函数 :

      七、独立成分分析 - 图95

      则概率密度函数为:

    七、独立成分分析 - 图96

  4. 给定采样样本集 七、独立成分分析 - 图97 ,则对数似然函数为:

    七、独立成分分析 - 图98

    • 根据最大似然准则,可以采用梯度下降法求解 七、独立成分分析 - 图99 的最大值。

      其中:根据矩阵微积分有: 七、独立成分分析 - 图100 。则有:

      七、独立成分分析 - 图101

    • 当迭代求解出 七、独立成分分析 - 图102 之后,通过 七、独立成分分析 - 图103 。 还原出原始信号。

  5. 最大似然估计时,假设 七、独立成分分析 - 图104七、独立成分分析 - 图105 之间是相互独立的。事实上对于语音信号或者其他具有时间连续性依赖性的数据(如:温度),这个假设不能成立。

    • 但是当数据足够多,假设独立对于效果影响不大。
    • 如果事先打乱样本,则会加快梯度下降法的收敛速度。

7.3 FastICA

  1. FastICA 的基本思想是:使得 七、独立成分分析 - 图106 最不可能是高斯信号。

  2. 度量随机变量 七、独立成分分析 - 图107 的分布为高斯分布的程度:

    • 基于峰度kurtosis 的方法:七、独立成分分析 - 图108

      • 对于高斯分布,其峰度为 0 ,因此如果 七、独立成分分析 - 图109 偏离 0 值越远,则它越不可能是高斯分布。
      • 实际上该指标只能刻画一个分布是不是高斯分布,而无法描述一个分布偏离高斯分布的程度。因此该方法实际效果一般。
    • 基于负熵的方法:七、独立成分分析 - 图110。 其中 七、独立成分分析 - 图111 为随机变量的熵, 七、独立成分分析 - 图112 是一个高斯分布,其均值、方差与非高斯分布的 七、独立成分分析 - 图113 的均值、方差相同。

      • 在信息论中可以证明:在相同方差的条件下,高斯分布的熵最大。因此可以认为 七、独立成分分析 - 图114 越大,七、独立成分分析 - 图115 的分布偏离高斯分布越远。

      • 由于计算 七、独立成分分析 - 图116 必须需要知道 七、独立成分分析 - 图117 的概率密度分布函数,实际任务中很难实现。因此通常采用近似公式 七、独立成分分析 - 图118 来实现。其中 七、独立成分分析 - 图119 为非线性函数,可以为:

        七、独立成分分析 - 图120七、独立成分分析 - 图121七、独立成分分析 - 图122 。其中 七、独立成分分析 - 图123

        其导数为 七、独立成分分析 - 图124

  3. 定义目标函数为 七、独立成分分析 - 图125 ,采用梯度下降法求解。其迭代公式为:

    七、独立成分分析 - 图126

    • 一次FastICA 算法能够估计出一个独立成分,为了估计出若干个独立成分,需要进行多次FastICA 算法来得到 七、独立成分分析 - 图127

    • 为了防止这些向量收敛到同一个最大值(即:分解出同一个独立成分),当估计 七、独立成分分析 - 图128 时,需要减去 七、独立成分分析 - 图129 在之前得到的 七、独立成分分析 - 图130 上的投影。即:

      七、独立成分分析 - 图131

      其中下标 七、独立成分分析 - 图132 并不是迭代步数,而是第 七、独立成分分析 - 图133七、独立成分分析 - 图134

7.4 预处理

  1. ICA 中需要进行预处理,主要有数据中心化、白化两个步骤。

  2. 数据中心化:对数据集 七、独立成分分析 - 图135 执行:

    七、独立成分分析 - 图136

    七、独立成分分析 - 图137 称作数据集 七、独立成分分析 - 图138 的中心向量,它的各元素就是各个特征的均值。

    该操作使得 七、独立成分分析 - 图139 ,这也意味着 七、独立成分分析 - 图140 也是零均值的。

  3. 白化:对 七、独立成分分析 - 图141 执行线性变化,使其协方差矩阵为单位矩阵 七、独立成分分析 - 图142 。即: 七、独立成分分析 - 图143

    七、独立成分分析 - 图144 的协方差矩阵为 七、独立成分分析 - 图145 (经过数据中心化之后), 设其特征值为 七、独立成分分析 - 图146 ,对应的特征向量组成的矩阵为 七、独立成分分析 - 图147 ,则有:七、独立成分分析 - 图148 ,其中 七、独立成分分析 - 图149

    令:七、独立成分分析 - 图150 ,则有: 七、独立成分分析 - 图151

    • 七、独立成分分析 - 图152 的协方差矩阵为单位矩阵,则根据 七、独立成分分析 - 图153 有: 七、独立成分分析 - 图154

      • 根据假设, 七、独立成分分析 - 图155 中各信号 七、独立成分分析 - 图156 是相互独立的,因此 七、独立成分分析 - 图157 的协方差矩阵必须是对角矩阵。
      • 能够对 七、独立成分分析 - 图158 进行缩放时,相应的 七、独立成分分析 - 图159 进行同样缩放,等式仍然成立。即:最终的解与 七、独立成分分析 - 图160 幅度无关。因此可以选择 七、独立成分分析 - 图161 的长度为1。

      因此有: 七、独立成分分析 - 图162

    • 七、独立成分分析 - 图163 ,即 七、独立成分分析 - 图164 相互正交且长度为1 。这也是FastICA 算法中需要对 七、独立成分分析 - 图165 进行归一化和正交化的原因。

      这使得矩阵 七、独立成分分析 - 图166 的参数从 七、独立成分分析 - 图167 个降低到 七、独立成分分析 - 图168 个,减小了算法的计算复杂度。