# 脑电分析之独立成分分析（ICA）

对于一些研究人员来说，独立成分分析（ICA）在某种程度上可能仍然是难点。ICA算法可以改变数据并产生“更清晰”的信号源。在本文中，我将以BrainVision Analyzer 2中的ICA算法的理论背景，要求和算法以及ICA实现的进行讲解。当然，我们无法解决所有细节，但在本文的最后您肯定会对该方法有更深入的了解，并希望将ICA算法集合到您的数据处理中。

**理论背景**

在深入研究方法的复杂性之前，让我们考虑以下情况：一个音乐乐团在音乐会上演奏，你想尽可能产生较少的噪音来获取最干净的信号，但这是一项非常困难的事情。明智地，你在音乐厅，舞台和一排排座位上放置并牢固地安装了几个麦克风。此外，你可以安全地假设舞台上的所有演奏者在演唱会期间都是静止的（你不希望他们在演奏时站起来走动），每个乐器组都会播放他们自己的旋律。在一个激动人心的夜晚之后，每个麦克风都会捕获混合原始信号的录音，实际上您将拥有与麦克风一样多的信号混合。由于麦克风放置在音乐厅，混合信号在不同的麦克风上略有不同。现在你的最终目标是将混合信号分离提取或重建“纯信号”。虽然乐器组演奏的不同旋律当然应该保留，但是应该消除来自观众的声音噪音或者其它的一些环境噪声。

模型示意图：

![](/files/-M8dzbaLlxCyCzWF0pjf)

该模型可以以简单的方式转移到EEG记录上，从脑电图电极记录的通道信号（由微伏振幅的时间序列表示）可以被认为是一组脑信号的混合信号，据推测这些混合信号通过皮层和皮质下区域中的神经元簇的同步产生，触发远场电位。虽然神经元本身局部是静止的并且不移动，但是激活模式基于体积传导的原理混合和合并，传播通过皮层，颅骨和组织的所有层，并且最终存在于任何头皮部位。同样，分析的理想结果是混合信号分离开逐步分析。

![](/files/-M8dzjKTTNPFHhfH65TO)

在示例中，目标是从记录的混合信号中提取统计上的“纯信号”，以便允许选择要保留的信号和丢弃信号。确切地说，这可以通过独立成分分析来完成（ICA; Makeig et al. 1996）。该技术已被公认为减轻伪影和分析头皮和颅内脑电图记录中统计独立皮质过程的有力工具。特别是在EEG数据记录使用有限的电极中，记录诸如眨眼或肌肉活动的伪迹时（例如在患者组，儿童或受试者自由移动的移动EEG实验中），ICA可能优于伪影阈值去伪。

**ICA使用要求：**

满足以下要求，ICA从信号混合信号中提取纯信号（详见 Jung et al. 1998）：

1.由ICA提取的纯信号的特征在于它们的时间过程（神经激活模式），其在统计上独立于任何其它信号。事实上，这些激活是独立的成分（IC）。

2.纯信号（神经元簇）的发生以及记录位置（电极）在整个记录过程中是静止的。因此，成分朝向记录位置的地形位置是固定的。

3.混合是线性的，传播延迟可以忽略不计。

4.各个IC激活的概率分布不是精确的高斯分布。

除此之外，ICA没有对数据提出任何进一步的要求。事实上，它完全不知道信号的性质，这就是为什么ICA通常被称为盲源分离算法（Hyvärinen and Oja 2000）。请记住，IC成分纯粹是统计属性，因此它们不会将1：1映射到生理过程。在EEG / MEG数据的背景下，可以基于它们的时间过程（和地形分布）来检查所提取的IC成分，并且可以去除表示噪声，伪迹或其它非大脑过程的IC。然后，校正的一组独立分量反向逆算，这就可以在电极上修改原始信号，将其中的伪迹信号进行校正。<br>

**ICA的算法基础**

ICA的数学基础，其中包括矩阵运算。通常，我们从电极上记录的时间上的混合信号开始。电极数据可以表示为2-D矩阵，其中行表示通道，列表示采样点。矩阵中的值是每个通道和采样点的记录电压幅值。我们称这个矩阵为x。我们现在可以生成解混矩阵W（ICA矩阵），当与数据矩阵x相乘时，将混合数据x转换为IC激活a。

Wx = a

矩阵a的每一行代表一个成分，每列代表一个采样点。成分a的激活可以表征为加权通道激活的线性和。

![](/files/-M8dzpl0-afLUE7E2l1m)

图1：使用六个EEG通道进行ICA解混和反演的示意流程图，产生六个独立的成分，每个成分都具有特定的IC激活和地形

从矩阵表示可以看出，你可以随时提取最多与电极一样多的成分（Makeig等，1997），因为来自N的混合信号电极被分解成N个分量的线性加权和。因此，ICA可以表征为完整的分解技术。这意味着可以通过将IC激活矩阵a乘以逆矩阵来反演解混合处理。ICA的计算目标是找到一个解混矩阵W，以便实现所有成分的最大时间独立性 。事实上，找到W是计算中最耗时的部分，在BrainVision Analyzer中提供的ICA组件可进行数据的计算。

**Analyzer中实现ICA**

在进行ICA算法时，一般建议是在过滤数据后进行。在Ocular Correction ICA的组件中，Analyzer中已经列出了最佳数据预处理步骤和建议，以确定应该使用多少通道和采样点进行有效的ICA分解。这些数据点应标记为“错误间隔”，因为ICA忽略了标记为“错误间隔”的数据部分。为ICA选择的数据应包括要分解的相关信息内容（例如EMG，EOG，ECG伪影）。因此，我建议使用更长，更有代表性的数据间隔甚至整个数据（前提是它可以提供内存约束）。而且，为了可视化IC拓扑图（表示逆矩阵W -1的列），应该存在电极位置。当使用具有未知位置的通道（Radius，Theta，Phi = \[0,0,0]）时，IC拓扑将保持为空，并且可以仅基于IC激活（矩阵a的行）来完成计算。一旦您的数据满足这些要求，您就可以通过转换ICA和反向ICA完成ICA解混，IC检查和选择以及反演的顺序（图2）。下面将更详细地描述每个变换内的步骤。

![](/files/-M8dzuRc8lbFRhLXvyol)

图2：转换步骤ICA和反向ICA

ICA算法将通道数据解混合成时间上最大独立分量的计算部分。你可以在Transformations > Frequency and Component Analysis > ICA下找到ICA按钮。根据转换对话框中设置的其余选项，Analyzer完成以下计算步骤。

PCA Sphering（白化）：ICA完全忽略了数据的时间进程，而只是检查了通道数据的分布。为了优化ICA中对数据的分布特性，数据被去除（即对于每个通道计算平均幅度并从每个采样点中减去）。通过这样做，所有通道的数据分布具有零重叠均值，并且可以以更有效的方式计算测量。

ICA分解：在此步骤中，将白化后的数据应用到ICA算法中，默认情况下混合信号中的最大成分数总是等于通道数。但是，您也可以手动指定成分数或将其限制为PCA白化期间特征值超过特定标准的成分（例如，特征值> 0.001）。软件默认的ICA算法是Infomax ICA（Bell和Sejnowski 1995; Lee等1999）和FastICA（Hyvärinen和Oja 2000），它们是应用于EEG数据种的最常见的算法。虽然它们都使用非线性函数系统的迭代拟合以最大化独立性，但它们在用于评估解混矩阵W的参数方面不同。

**\*\*Infomax ICA**通过自然梯度上升识别最佳解混矩&#x9635;***W.*** 由于自然梯度上升以无监视动态搜索最佳解混矩&#x9635;***W***，其中所有提取的分量被同时测量，每个ICA运行将产生略微不同的成分集，其中成分序列通常在ICA的不同运行中会不同。搜索最佳解混矩&#x9635;***W***&#x57FA;于最大化负熵，即随机变量的不确定性。negentropy的概念与非高斯性和峰度密切相关，因为它们都是最大化的，可以从每个变量的相互分布中完全预测两个或多个变量的联合分布。**Restricted Infomax** **ICA**能够将数据解混为具有正峰值的分量，这对于诸如音乐，语音和EEG数据之类的纯信号是典型使用的。**Extended Infomax ICA**可以解析成分的负峰度，这可能是由屏蔽电流，设备，照明装置或松动的电极接触引起的AC（交流电）或DC（直流电）噪声信号的典型值（Delorme等人，2007）。因此，当打算拆分反映生物信号的成分以及反映通道噪声的成分时，建议使用**Extended Infomax ICA**。

**\*\*FastICA**可以被认为是Infomax ICA的计算优化版本，它是确定性的，并且总是在不同的运行中产生相同的IC序列（Hyvärinen和Oja 2000）。**Restricted FastICA** 通过最大化负熵的定点算法找到最佳解混矩&#x9635;***W***，**extended FastICA**基于最大似然估计（Hyvärinen等人2001; Koldovsky等人2006）。与Infomax ICA的自然梯度方法相比，FastICA算法更快。然而，FastICA算法的速度提高存在一点问题，FastICA算法存在“弱”成分的问题，即分布接近高斯分布或彼此接近的成分（Chevalier et al.2004） ，这在EEG数据经常出现包含这样的“弱”成分！在这种情况下，FastICA需要更长的时间计算，甚至可能产生不正确的分解。在这种情况下，未混合的成分可能在时间上不是最大独立的。这是FastICA算法的主要缺点。

当您按照自动模式中的建议应用转换时，新创建的ICA节点包含已分解的IC激活 - 标记为“F”后跟一个数字（ICA未选择的通道将显示在IC激活下方）。

**转换ICA：检查成分，选择和反演**

在使用ICA算法计算之后，可以使用转换ICA来检查成分，选择和反演校正通道，在Transformations > Frequency and Component Analysis> Inverse ICA中找到。如果在自动模式下运行此转换，则会将所有成反演到通道上，并恢复原始数据。然而，在去伪迹而应用ICA算法时，这是不希望的。在这种情况下，使用半自动模式下通过手动的筛查和应用，这是更能准确的反演数据。

![](/files/-M8dzzGTLyKxNKcI-5kY)

图3：成分F000-F009的\[A] IC激活（按系数100缩放）。\[B]包含所有成分的反向权重，峰度和能量值的表以及关于是否将选择成分用于反演（绿色）或不选择（红色）的颜色代码。在当前示例中，成分已根据其峰度进行排序。\[C]标准表中突出显示的F007地形。IC拓扑表示当前所选分量朝向所有通道的标准反权重（无单位权重，单位可以忽略）。\[D]显示设置。在交互式视图的这一部分中，您可以调整主窗口中显示的信息，例如相对于通道幅度的组件缩放等。

![](/files/-M8e-2fxLfeYd0pQFWik)

图4：\[E]从下拉列表中选择“校正”将在主窗口中显示通道数据，其中未进行校正数据（表中标记为红色）。此外，激活复选框“使用原始数据覆盖”允许比较除伪迹的数据\[F]之前（红色）和之后（黑色）作对比。<br>

总之，在BrainVision Analyzer 2中实现ICA和Inverse ICA是非常的容易，可以减少基于数据驱动方法的EEG记录中人为过程的影响。与之前提出的转换Ocular Correction ICA相比，Ocular Correction ICA主要针对于眨眼眼电的数据，而ICA则不限，这帮助您保留哪些成分以及从数据中删除哪些成分。

最后，虽然我已经介绍了ICA在Analyzer上的使用，当然ICA的理论知识不仅仅是这些，我最近在看Hyvärinen和Oja两位所著写的《独立成分分析》中文版一书，足足有450页之多，所以说这不仅仅是一次推送就能完全了解ICA的历史及算法。

主要参考：

Hyvärinen A, Karhunen J, and Oja E. Indepenent Component Analysis. New York: Wiley & Sons, 2001.

Hyvärinen A, and Oja E. Independent component analysis: Algorithms and applications. Neural Networks 13: 411-430, 2000.

**谢谢大家观看，如有帮助，来个喜欢或者关注吧！**

本文作者：Chen Rui

星球地址 ：[知识星球](https://t.zsxq.com/W5M3F)[Blog ](https://t.zsxq.com/W5M3F)

知乎地址 : [知乎专栏](https://www.zhihu.com/people/braintechnology)&#x20;

B站地址 : [B站主页](<https://space.bilibili.com/328549846 >)&#x20;

公众号：大脑技术\
&#x20;CSDN地址 : [csdn主页](https://blog.csdn.net/craig_cc)‌<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.7988888.xyz/eeg/5.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
