0、手把手教你Deep Learning处理BCI生物数据

作者作为一名算法工程师,分享了自己在深度学习处理BCI数据方面的经验,包括学习资源推荐、数据导入问题、模型搭建和数据输入的选择、模型调参及结果可视化。文章强调了深度学习在处理生物信号中的作用,并提出了数据格式多样性和模型适用性等挑战。
摘要由CSDN通过智能技术生成

 前言:

本人学生党刚毕业,现在是一名科技公司的算法工程师,依然做BCI相关算法工作。公司较为开朗,鼓励工程师攥写博客,所以我才写下这一系列。自己也算是沉浸于BCI这种医工结合的领域多年,有幸跟随老师认识了我国BCI领域各个高校的大牛和课题组,学到了很多。在此博客系列中,我会把自己多年对于深度学习怎样处理BCI的各个数据进行阐述,若有其他同僚看到,欢迎互相交流学习,若有志于从事使用DL模型探索脑机接口的本硕生,请你们好好看完,好好学习,为自己的将来学得一门本领。在这第一篇博客中,我会阐述深度学习模型处理生物信号的三大问题,在此后文章中会对这些问题依次以项目为例,进行讲解。

一、深度学习:从入门到入门

还没毕业时,常有研一师弟问我,深度学习怎样学习,学好之后怎样处理我们的EEG数据。怎样学习深度学习已是老生常谈,打开知乎和b站有很多资料可以参考学习,总之五花八门,数不胜数。据此,对于小白(国内极少数高校本科开设人工智能专业+研一研究方向人工智能or脑机接口)怎样学习深度学习,我的推荐如下:

书:

深度学习圣经般的存在:花书两本李沐等大神编写的《动手学深度学习》+《深度学习》

[资料]深度学习(花书)带封面文字版PDF - 机器学习技术 - 经管之家(原人大经济论坛)

《动手学深度学习》纸质书样书 - 知乎

  

我个人建议这两本书中的配套项目都自己手打一边,先看《深度学习》,看完再看《动手学》,并且看的过程中是可以配合下面要讲的吴恩达的视频一起学习的。

视频:

b站 [双语字幕]吴恩达深度学习deeplearning.ai  [双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili

b站李宏毅深度学习

(强推)李宏毅2021/2022春机器学习课程_哔哩哔哩_bilibili

建议先看完吴恩达的再看李宏毅的,另外,有需要吴恩达全程课件笔记和课后习题的私信我,我不是卖资料的,可加我V,直接发。

项目代码:github

有人问我编程能力怎样提高,我的回答都是看高手写的代码,不是学习编程风格(有人对你讲编程优美好看的,比如你面试一些公司,面试官让你手搓代码,然后说你要注意编程简洁优美的,趁早去下家面试),而是学习人家的编程思路思想。无疑,Github高手如云,去学去动手敲代码吧。

论文查看:pubmed,AMiner Search

找JCR2区及其以上的,近三年的高水平的论文去看,去学习别人的预处理工作和建模思路。

小结:

说到这里,有人会问:脑电等生理信号可以用机器学习去搞的呀,为啥急头白脸去学Deep Learning呢。此话不假,不得不说的是,机器学习等算法至今早已趋于成熟,并且一些算法在我国一些大厂还用于集装箱检测等项目中。下面我们看一下机器学习包含的模型:

 由图可知,机器学习按照模型类型分为监督学习模型、无监督学习模型概率模型三大类(图来源于GoAI-机器学习专栏(69条消息) 机器学习知识点全面总结_GoAI的博客-CSDN博客)。在大的类别上,机器学习包含深度学习,深度学习是从机器学习这位老大哥上发展起来的,我当时在学习深度学习时,首先是把机器学习这三类模型都过了一遍,记了笔记,逐个实现了一遍模型,再去学习深度学习的。虽然现今机器学习和深度学习相差较大,但机器学习的思想仍可作为我们学习DL的领航者。这里推荐一个我当时学习机器学习的一位前辈:【sklearn机器学习】菜菜的sklearn机器学习完整版(中)_哔哩哔哩_bilibili

尽管机器学习模型已趋于成熟,但在2012年Kaggle大赛中Geoffrey Everest Hinton(深度学习教父,深度学习三大巨头之一)和他的学生Alex提出的AlexNet网络首次证明了神经网络学习到的特征可以超越手工设计的特征(机器学习的输入需要手工设计),所以近年来,随着硬件技术的长足发展和GPU/CPU的并行计算的实现,使得大规模神经网络的实现变为了可能。神经网络被证实在计算机视觉领域拥有杰出的处理能力,并在处理生物信号中仍具有高效的分类/预测能力。所以,我们应该把深度学习学好、做好。

那我在这里为什么题目是从入门到入门呢,因为DL学的越多,你会发现需要学习的就愈发的多,学无止境。

二、三座大山

我们这里确定了使用深度学习模型去处理EEG信号,那我们会遇到哪些问题呢,这里我总结了三大问题:

(1)第一座大山:数据导入

BCI数据五花八门,什么EEG、EMG、肌电、心电、眼电、脑力负荷等,而又因为采集这些数据的设备型号不同,自动保存成的数据格式就不同,常见的BCI信号可以保存为.m、.csv、.xlsx遇到这样的数据我心里就谢天谢地,再有已经打好的标签这还不手到擒来!

如果遇到.cdt、.gdf、.bdf、.sample格式的数据该怎们办呢,如果遇到的数据没有标签怎么办呢。所以首先数据导入python环境中是第一大问题,如果导不进去,我们如何做数据分析和数据清洗等预处理工作呢?导不进去,或者导入错误,比如数据维度置换了,通道去了别的维度,或者导入的不全,浪费了样本,这都是不可取的。至于没有标签,我们就先做数据分析,分析他的实验范式和实验评价标准,我们自己写代码,给他打上标签!

(2)第二座大山:模型搭建和数据输入

在搭建神经网络模型之前我们需要选择适合于我们数据任务类型的模型,比如你使用的数据是脑电运动想象(MI)数据,去做四分类,但是你选用的是回归模型,那结果可想而知。选择适合的模型之后,我们需要对样本数据的输入形状(Input.shape)做一个探讨,就是shape怎样输入才能使得结果最好,这里面对的问题如下所示:

1.数据需不需要升维?

(batch_size,input_channels,len(data))3维 VS 4维(batch_size,input_channels,,H,W)

2.数据需要填充的怎样填充最好?

import pandas as pd
import numpy as np

data = pd.read_csv(A01T.csv)

data = np.pad(data,((0,0),(0,0),(0,400)),'constant') #数据第三维度后面填充400个0,填充方式'连续'

data_leftright = np.pad(data,((0,0),(0,0),(200,200)),'constant')#数据第三维度前后各填充200个0,填充方式'连续'

* 上面代码展示了两种填充方式:len(data)后面填充 VS len(data)前后填充

* 数据填充 VS 模型填充

3.len(data)填充 VS len(data)不填充

我这几年查看相关论文,很遗憾的看到,这些论文只说明了自己数据是怎样输入的,例如16*16输入到Conv2d中或者一个60s的数据片段共750个数据点输入到Conv1d中,但是他们都未说明为何以这种形状(shape)作为输入。这在一定程度上可以察觉到:很多提出的新的模型,以及在模型上可行的一些创新,都只是服务于他们私人数据的奴隶,模型泛化能力差。

(3)第三座大山:模型调参和结果可视化

好了,模型我们建立完了,数据最佳输入形状找好了,我们现在要用数据去训练模型了,不可避免地,我们的模型需要大量的时间去调参。在经过了艰苦而快乐的调优之后,我们需要用一些专业的可视化方法将我们最终的结果导出来,这活既要干的利索也要做的漂亮,因为这些图我们后面要拿来写论文写专利的。

三 总结:

前面的三座大山,在之后我的博客中我会依次以真实的项目和模型配套代码等形式依次阐述,最后我想再写上Deep Learning 几位领航者的谶语,希望各位,在深度学习这条路学习、工作多年之后,再回来看到这些大佬说的话,会有所感悟。

“目前深度学习在社会各个应用领域仍是有监督学习,但我相信在未来无监督学习仍是重要的,并且GANs这一个网络也是非常棒的研究。“                                ————Geoffrey Everest Hinton

“多读论文,但别读太多。”                                                       ————Geoffrey Everest Hinton

“当你有个好的想法时,但别人都认为你是个白痴,或者认为你喝多了,那它就是一个绝好的想法,只要你能坚持”                                                                    ————Geoffrey Everest Hinton

“之前人们的工作都是在计算机上进行编程,我们现在要做的工作是训练计算机让他自己思考,但二者同样重要”                                                                            ————Geoffrey Everest Hinton

“深度学习拥有强大的生命力,它是人类社会的第二种新的电力,只是大多数人还没意识到而已”

                                                                                                    —————————Andrew Ng

“深度学习自学也可以成才”                                                                       ———— Pieter Abbeel

"我认为,在系统开发初期,加入安全性问题是非常重要的,我们发现当系统建立之后,再引入安全性是很难的,如果我们现在开始预见机器学习的安全问题,就可以一开始确保这些算法的安全性"                                                                                                            ————Lan Goodfellow

AI教父Geoff Hinton和深度学习的40年 - 知乎

Geoffrey Everest Hinton(反向传播、受限玻尔兹曼机等创建者,被誉为深度学习教父,现任Google副总裁, 2018 年图灵奖获得者

除了吴恩达,你还需要了解的14位数据科学领域最具影响力人物 - 知乎

 

Andrew Ng(吴恩达,美国斯坦福大学计算机系的副教授,师从机器学习的大师级人物 Michael I. Jordan,Coursera公司创始人,百度首席科学家)

Pieter Abbeel( 2021 ACM 计算机奖(ACM Prize in Computing)金牌获得者,现任美国加州大学伯克利分校教授,博导师从吴恩达)

终于有人把生成对抗网络(GAN)讲明白了_hzbooks的博客-CSDN博客

                    Lan Goodfellow(兰·古德费罗,生成对抗网络GAN创建者,吴恩达助教)

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 2008年BCI竞赛数据集分类是指以脑机接口(BCI)技术为基础,对2008年BCI竞赛所提供的相关数据集进行分类的研究和实践。BCI是一种通过直接解读和理解人类脑部活动,使人与计算机或其他外部设备进行直接交互的技术。 在2008年BCI竞赛数据集分类中,首先需要对所提供的数据集进行预处理,包括数据清洗、滤波和特征提取等步骤。数据清洗是为了去除噪音和不必要的信息,确保数据的可靠性和准确性。滤波则是对数据进行频率调整,以消除干扰信号。特征提取是从原始数据中提取出代表脑部活动状态的关键特征。 接下来,需要选择合适的分类算法来对数据进行分类。常用的分类算法包括线性判别分析(LDA)、支持向量机(SVM)、k最近邻(KNN)等。这些算法基于不同的原理和算法逻辑,可以根据特定需求选择最适合的算法。 最后,对于分类结果的评估是非常重要的。常见的评估指标包括准确率、精确率、召回率和F1值等。这些指标可以评估分类器的性能和效果,进而为后续的改进和优化提供依据。 通过对2008年BCI竞赛数据集分类的研究,可以帮助我们更好地理解和应用BCI技术,实现人与计算机之间的有效交互。此外,对于脑机接口技术的发展和应用也有积极的推动作用。 ### 回答2: 2008年BCI竞赛数据集分类任务是一个旨在研究和探索脑机接口(BCI)技术的比赛任务。BCI技术旨在通过从大脑中获取电信号并将其翻译成计算机可识别的形式,实现人类与计算机之间的直接通信。 2008年的BCI竞赛数据集分类任务包括了来自多个实验受试者的脑电信号数据集。这些数据集包括了来自大脑皮层的电信号,通过电极阵列捕获到。竞赛参与者需要利用这些电信号数据进行分析和分类,以实现对特定任务或指令的识别。 对于BCI竞赛数据集分类任务,参与者需要使用机器学习和信号处理的技术,对电信号进行特征提取和分类。常见的方法包括时域和频域特征提取、滤波器设计、空间滤波和模式识别等。 参与者首先需要对收集到的脑电信号进行预处理,包括滤波、去噪和特征提取。预处理后的信号可以用于建立分类模型。模型可以采用传统的分类算法如支持向量机(SVM)、人工神经网络(ANN)或朴素贝叶斯分类器等。此外,也可以利用脑电信号的特殊性质设计特定的分类算法,如基于时空图模型、卷积神经网络(CNN)或循环神经网络(RNN)等。 在分类任务中,竞赛参与者需要使用训练集中的样本数据进行模型训练,并使用测试集中的未标记样本进行分类性能评估。评估指标可以包括准确率、灵敏度和特异度等。参与者需要根据任务要求和数据集特点进行合适的算法和参数选择,以提高分类的准确性和鲁棒性。 总之,2008年BCI竞赛数据集分类任务旨在通过对脑电信号进行分析和分类,促进脑机接口技术的发展和应用。参与者需要应用机器学习和信号处理的方法,通过对信号的特征提取和分类,实现对特定任务或指令的识别。这个任务对于推动BCI技术的研究和发展具有重要意义。 ### 回答3: 2008年BCI竞赛数据集分类是指在2008年举办的BCI竞赛中,参赛者需要对给定的脑电图数据进行分类。BCI(脑机接口)是一种将人脑活动转化为机器输入的技术,通过分析脑电图(EEG)等生物信号,实现对人脑意图和指令的识别和解码。 2008年BCI竞赛数据集分类任务通常包括两个主要方面的分类:二分类和多分类。在二分类任务中,参赛者需要根据脑电图数据判断被试者的意图,例如分辨是想向左还是向右运动。而在多分类任务中,参赛者需要识别被试者的具体意图,比如向左、向右和闭合手等。 竞赛的数据集通常由若干个不同被试者的脑电图数据组成,这些数据包含了一系列的时间序列脑电信号。参赛者需要通过对这些数据进行预处理、特征提取和模型训练来实现分类任务。预处理可以包括滤波、降噪和去除伪迹等步骤,以提高数据的质量。特征提取是从脑电信号中提取有用的信息,常用的特征包括时域特征、频域特征和时频特征等。模型训练则是使用机器学习或深度学习算法来构建分类模型,并基于训练数据进行模型的优化和评估。 参赛者通常需要根据竞赛要求进行算法的设计和优化,以提高分类准确度和鲁棒性。竞赛的目的是通过对不同算法的比较和评估,推动BCI技术的发展和应用,促进脑机接口技术在康复、通信和娱乐等领域的应用。 总之,2008年BCI竞赛数据集分类是一个通过对给定的脑电图数据进行分类任务,以推动脑机接口技术发展的竞赛活动。参赛者需要运用预处理、特征提取和模型训练等方法,设计和优化算法,并在竞赛中展示出高准确度和鲁棒性的分类结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是馒头阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值