【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

设计脑机接口的实践指南

  • 2022-04-07
  • 本文字数:2302 字

    阅读完需:约 8 分钟

设计脑机接口的实践指南

背景:BCI 是什么意思?

脑机接口(BCI)指的是将大脑与计算机连接起来的工具。过去十年间,业界对 BCI 的关注度迅速增长——一个典型例子就是,埃隆·马斯克名下主要研发脑机接口技术的初创企业 Neuralink 每次开新发布会都会引发舆论热议[1]。Neuralink 可以在大脑中植入人造物来完成多种任务,诸如用思维来控制动作或直接在大脑中播放音乐等。


你会感到恐惧吗?没关系,这是很正常的。但在这篇文章中,我们将只关注一个简单的 BCI 实现,具体来说是用一个娱乐设备[2]记录脑电波活动,即脑电图(EEG)。这个实现不需要对人体做任何手术(也不会有疼痛或死亡风险)。虽然你(很遗憾)不能用它来收听你最喜欢的乐曲列表,但可以实时观看 BCI 佩戴者的情绪波动(只不过是以代码的形式)。

一个用例:用 EEG Unicorn 估测情绪

如前所述,在本教程中我们将从想法一路走到具体的实现,完成所有必要的步骤来设计一个处理具体任务的 BCI。作为示例,我们要做的 BCI 属于情绪估测领域。这个应用旨在估计参与者的情绪状态。



情绪 BCI 图解。


如图所示,这个管道的目的是将参与者的 EEG 信号作为输入,并返回相应的 V-A 情感坐标图。V-A 图是一种应用于生物心理学的情绪坐标,其中 Valence(横轴)代表愉快和不愉快(即积极和消极)的程度,而 Arousal(纵轴)代表兴奋和平静的水平。基于这种表示,任何情感状态均可表示为 VA 坐标平面上的一个点。

设计情绪识别 BCI 的关键步骤

具体而言,为设计和部署 BCI,我们必须遵循几个关键步骤。

范式定义和信号记录

首先我们要定义 BCI 的范式:我想对什么事物建模?或者想要估计哪些信息?我的应用程序的目的是什么?我是否想通过 BCI 来控制机械手/脚?我是要评估驾驶任务中驾驶员/成员的警觉性吗?是要预测疾病的发作几率?还是检测癫痫发作状态?科学界对一些可以插入 BCI 的研究项目存在巨大兴趣。


在本文的案例中,我们决定关注之前的一项研究工作,就是估计参与者观看一些视频时的情绪状态[3]。这篇论文还提出了一个可以促进特定情绪状态的视频列表(我们对此非常感兴趣!)。这些视频的列表和对应的情绪都可以在 youtube 上找到,并列在注[4]中。


因此我们设计了一个实验基准测试,包括在参与者观看宣传特定情绪的视频时记录他们的 EEG 信号。在我们的存储库中,脚本registration_pipeline.py给出了一段完成这一任务的代码,用户只需将他想要处理的视频放在专用目录中(或改变路径)即可。

概要分析

有了上述基准测试,我们就可以完成脑电波信号的记录工作了。这些信号最后将构成训练 ML 模型(甚至是 DL)所必要的数据集。


我们来做这个模型吧......等一下!在建成一个能够从 EEG 信号中估计情绪的管道之前,我们必须提取信息来帮助模型处理数据。如果你有大量信号和/或可用的计算资源,跳过这一步也是可以的。但为了保持简洁,我们考虑采用更自然简单的模型来简化复杂性。一种可能的提取信息的方法是基于脑电图信号的频率特性,也就是说“这个脑电图片段是在高频率还是低频率范围内振荡?”。过去,科学家们发现,一些脑电图信号是由几个频段组成的,每个频段在特定的任务或行为中都会增强/减弱[4]。


  • δ为深度睡眠,[0-4Hz]。

  • θ表示昏昏欲睡,[4-7Hz]。

  • α代表放松和闭目思考,[8-15Hz]。

  • β代表积极思考和与专注相关的状态[16-31Hz]。

  • γ代表感受到更多压力的状态[32-50Hz]。特征提取的图示。



按照这个过程,我们从每个 EEG 片段中提取了一个信息向量。这个过程的目的是提取信息,以便更好地处理生物医学信号。这个步骤可以使用脚本outline_analysis.py的第一部分来处理。


最后(如果你还跟得上的话),你应该知道剩下的步骤是创建一个模型,用它从上面预计算的特征向量中估计情绪状态(是快乐还是悲伤?)。这里为了让我们的方法简单易懂,我们考虑一个由决策树组成的简单模型。这种简单方法背后的想法是寻找动态阈值来区分信息向量,例如第 i 个电极的高α贡献对应于低 arousal,第 j 个电极的中等γ贡献对应于高 valence,等等。


给出特征向量 X 和它的标签 y,就可以创建一个名为 clf 的分类器(对应于决策树)。该分类器可以通过以下几行代码轻松训练。


from sklearn import treeclf = tree.DecisionTreeClassifier() # definition of the modelclf.fit(X, y) # training of the model...
复制代码


在 outline_analysis.py 的第二部分给出了一个更完整的解释,包括整个模型描述和训练。训练完这个简单的决策树后,可以用 joblib 库来保存它。


...from joblib import dumpdump(clf, 'classifier_file_name')
复制代码

实时实现

在训练和保存模型之后,剩下的步骤是将各个部分合并在一起。


两个联合脚本必须并行工作:第一个脚本旨在记录、处理和估计来自 EEG 的情绪状态pylsl_emotion.py;第二个脚本会在图形上显示相应的情绪和对应的笑脸,如play_emotion.py所述。

尝试一下

最后提一句:自己尝试一下吧!上述代码和自述文件都放到了Github上。你可以自己尝试,或者为不同的模型或 EEG 耳机改编代码。


以上就是全部内容了,感谢大家阅读!我并没有说我的代码是完美的,但如果你有意见、问题或想了解更多内容,请不要犹豫,立刻与我联系吧!😊

参考文献

[1] Rolfe Winkler:埃隆·马斯克创办了,旨在将人脑与计算机连接起来。华尔街日报,2017(链接


[2] Unicorn Hybrid Black——脑机接口(链接


[3] Katsigiannis, S 和 Ramzan, N:通过无线低成本货架设备收集到的 EEG 与 ECG 信号情感识别数据库。IEEE 生物医学和健康信息学(2017——链接)。


[4] Gabert-Quillen, Crystal A:情感视频片段打分。行为研究方法(2015——链接)。


[5] William O Tatum:Ellen R.Grass Lecture: extraordinary EEG。2014(链接)。


原文链接:https://towardsdatascience.com/hands-on-guide-to-design-brain-computer-interface-b99bcc198428

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2022-04-07 12:091503
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 492.2 次阅读, 收获喜欢 1966 次。

关注

评论

发布
暂无评论
发现更多内容

17个新手常见错误,送给初学Python的你!,憋个大招

程序媛可鸥

Python 程序员 面试

一个配件、一块面料,制造企业流水线因为AI变了新模样

百度大脑

Kafka 常用命令总结,给Python程序员的一些面试建议

程序媛可鸥

Python 程序员 面试

28,2021最新Python面试笔试题目分享

程序媛可鸥

Python 程序员 面试

4万字【Python高级编程】保姆式教学,330页PDF10万字的知识点总结

程序媛可鸥

Python 程序员 面试

k8s组件的梳理(1),Python篇

程序媛可鸥

Python 程序员 面试

python DataFrame数据格式化(设置小数位数,百分比,Python常用面试题

程序媛可鸥

Python 程序员 面试

Python 深度集成的神器级 IDE,从此告别Excel!,成为阿里P7Python架构师到底有多难

程序媛可鸥

Python 程序员 面试

Python 实现七大排序算法,Python中高级面试必知必会

程序媛可鸥

Python 程序员 面试

架构实战营 毕业设计项目

樰巳-堕~Horry

架构实战营 「架构实战营」

90后,要有多少存款才正常?答案太扎心了,阿里P8大佬整理

程序媛可鸥

Python 程序员 面试

Girlfriend含苞待笑——一次性处理上百份文档,Python开发实战讲解

程序媛可鸥

Python 程序员 面试

Kafka server,Python面试

程序媛可鸥

Python 程序员 面试

Python 命令行参数详解,Pythonui基础

程序媛可鸥

Python 程序员 面试

Python 基础教程:动态类型模型,超通俗解析

程序媛可鸥

Python 程序员 面试

10个Python set 常用操作函数!,oppoPython面试题

程序媛可鸥

Python 程序员 面试

百度希壤元宇宙平台上线首个汽车数字展厅,领克探索汽车营销新方式

百度大脑

2022美赛单变量深度学习LSTM 时间序列分析预测,作为Python开发者

程序媛可鸥

Python 程序员 面试

36,Python基础开发与实践

程序媛可鸥

Python 程序员 面试

kudu参数优化设置,让集群飞起来~,2021年Python开发陷入饱和

程序媛可鸥

Python 程序员 面试

Python GUI编程:关于 tkinter 怎么才能写出更好看的界面

程序媛可鸥

Python 程序员 面试

python pandas库统计分析基础必备知识汇总,2021Python网络编程总结篇

程序媛可鸥

Python 程序员 面试

30余种加密编码类型的密文特征分析,差点挂在第四面

程序媛可鸥

Python 程序员 面试

Python 使用 PyQt5 开发的关机小工具分享,为什么阿里的程序员成长如此之快

程序媛可鸥

Python 程序员 面试

Redis的数据类型实践

javaadu

Redis 核心技术与实战 Redis 数据结构

Apple任意代码执行漏洞,为了跳槽强刷1000道Python真题

程序媛可鸥

Python 程序员 面试

CSDN终于破2万粉了,几百块钱的课程可白嫖,就是宠粉,Python笔试面试题

程序媛可鸥

Python 程序员 面试

k8s组件的梳理,Glide的缓存机制

程序媛可鸥

Python 程序员 面试

Python 三十个实践、建议和技巧,各种风格的Python面试题进来了解一下

程序媛可鸥

Python 程序员 面试

Python 基础教程:动态类型模型(1),阿里巴巴Python面试题答案

程序媛可鸥

Python 程序员 面试

【C语言】 扫雷游戏(保姆级的实现过程)

謓泽

3月月更

设计脑机接口的实践指南_AI&大模型_Victor Delvigne_InfoQ精选文章