deap dataset的不同分类模型的实现(1)

9 篇文章 11 订阅

本教程是基于deap数据集的,涵盖了预测脑电信号的大多数传统机器学习算法和深度学习算法。

因为有很多关于DEAP数据集的研究,但它们很难比较。因此,作为一个EEG研究者,几乎不可能知道我应该做出什么样的架构决策。这是由于这样的事实:一些文章要么没有提供代码库因此无法复制,或者没有明确指定使用的hyperparameters,或仅仅由于显而易见的事实,即使是两篇论文使用相同的模型不能直接比较,因为不同的硬件和使用的hyperparameters。

我的目的是,我的硕士和博士学生可以使用它作为他们脑电研究的入门工具包。这些算法不一定能很好地用于EEG情绪识别,但为了完整起见,我将它们全部包括在内。

因此,我想对典型的脑电图模型进行受控比较,以清楚地了解什么有用,什么没用。

注意:在使用教程之前,请创建一个文件夹“data”,并下载预处理的DEAP数据集,并将s01.dat,…,s32.dat放在这个“data”文件夹中。数据文件夹将位于与教程相同的目录中。

本教程通过使用基准DEAP数据集中的情感识别作为案例研究,解释了基本的EEG分析以及常见的深度学习模型。

该库通过使用来自基准DEAP数据集的情感识别作为案例研究,比较了传统机器学习算法和深度学习算法的不同建模方法。

Python libraries:

  1. Python MNE
  2. PyTorch
  3. NumPy
  4. Sckit-Learn
  5. SciPy

Docker Prerequisite (Akraradet & Raknatee)

  1. Docker
  2. Docker-Compose

How to use

docker是为了使用与docker扩展的Visual Studio代码。这样我们就可以将“可视代码”附加到docker环境中。

一旦你“撰写”了服务,去docker标签,找到“eeg-emotion”。右键单击并选择“附加Visual Studio代码”。打开’ /root/projects/ ',并享受编码的乐趣。

docker-compose有两种类型。只支持CPU和GPU

  • CPU
docker-compose -f docker-compose-cpu.yml up --build -d
  • GPU
docker-compose -f docker-compose-gpu.yml up --build -d

Tutorials:

  1. (01.) Understanding the DEAP dataset
  2. Common EEG feature engineering + machine learning
    • (02.) spectrum + SVM (61%)
    • (03.) asymmetry + SVM - Akraradet
    • (04.) connectivity + SVM - Akraradet
    • (05.) common spatial pattern + SVM - Akraradet
    • (06.) phase coherence + SVM - Akraradet
  3. Baseline deep learning models (50 epochs)
    • (07.) LSTM (71% acc)
    • (08.) CNN1D + LSTM (92% acc)
    • (09.) Spectogram + CNN2D
      • CNN 2 layers - (87% acc)
      • CNN 4 layers - (96% acc)
  4. Advanced (50 epochs)
    • (10.) CNN1D + LSTM + General Attention
      • Dot Product Attention (94% acc)
      • Multiplicative Attention ( ) Fabby
      • Additive Attention ( ) Babby
      • Hierarchical Attention ( ) Fabby
    • (11.) CNN1D + LSTM + Self Attention
      • Using mean to combine (90% acc)
      • Using sum to combine (91% acc)
      • Using last state to combine (90% acc)
    • (12.) CNN1D + LSTM + MultiHead Self Attention
      • Using mean to combine (92% acc)
      • Using sum to combine (92% acc)
      • Using last state to combine (94% acc)
    • (13.) ChannelNet ( ) Beau
    • (14.) EEGNet ( ) Chaky
    • (15.) Spatial–Temporal Self-Attention CNN ( ) New + Babby + Beau

一些可能的结论:

  • 仅LSTM较差(71%)。这是预期的,因为每个单独的样本只是一个单独的数据点。由于信号大多很长(1分钟内8064个样本),因此LSTM几乎不可能理解样本1(第一秒)和样本8064(最后60秒)之间的关系。
  • 很明显,在LSTM之前应用CNN1D会产生巨大的改善(92%),这意味着CNN1D在平滑和卷积信号为LSTM更有意义的表示方面是有用的,从而解决了LSTM的长期依赖问题。
  • 很明显,使用光谱图(96%)可以很好地捕捉时间和频率信息,因此CNN2D四层显示的精度更高。关于谱图的另一点是,它的参数相对较少,这进一步激发了它的使用。
    需要注意的是,对于光谱图,我们尝试了不同的窗口大小和重叠大小。我们发现它的影响是非常小的,因此我们决定报道最好的准确性。我们选择窗口大小为采样率,重叠大小为采样率的一半。
  • 对于CNN1D和CNN2D, maxpooling被证明是非常有用的,它缩小了样本的大小,从而加快了训练过程,同时也作为特征选择。无论如何,我们发现一个小小的警告,过多的maxpooling可能导致较差的结果,这可能是由于过多的向下采样,因此找到最优的maxpooling层是有用的。
  • 很明显,在CNN1D + LSTM的基础上增加注意力会带来轻微的好处,增加大约2%的额外准确度(92 + 2%),就像在多头自我注意中看到的那样。但这种好处是不确定的,正如我们在单头自我关注中看到的那样。这表明,增加注意力应该是精心设计的。此外,增加的精度需要用大量增加的参数来证明。
  • 多头注意力(94%)明显比单头注意力(91%)更好,这与《变形金刚》论文的建议一致。
  • 值得尝试不同的约简方法(sum、mean、last),但结果可能并不直接。这可能是优先级较低的超参数之一。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大大U

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

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

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

打赏作者

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

抵扣说明:

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

余额充值