多任务学习的情绪识别

数据挖掘 机器学习 机器学习模型 多任务学习
2022-02-21 02:32:14

介绍

我是数据科学的初学者,目前正在从事一个旨在从生物医学传感器数据集中识别情绪的学习项目。

该数据集由来自 20 个受试者的 8 个传感器数据组成,这里我附上了数据集一小部分的屏幕截图,以便您更好地了解它:

在此处输入图像描述

因此,如您所见,数据集是关于:

  • 多个主题,每个主题有 11 列数据。
  • 第 1-8 列是 250 Hz 时的原始传感器数据(EEG、EOG、GSR、皮肤温度、IR 响应……)。
  • 第 9-11 列是相应的标签。

我想做的事?

我想使用多任务学习来生成三个情绪水平的输出——唤醒、支配和平衡。

我对此进行了大量研究,但不幸的是没有找到任何关于我应该做什么的明确指导。我发现了一些与 VAD 模型相关的东西,但不确定如何为这个数据集实现它。

所以,如果有人能给我一个指导或路径(我应该做的主要步骤)来处理它,我可以搜索它并尝试逐步解决它。

1个回答

我想你的问题是……“如何进行多任务学习?

多任务图

例如,您是否应该采用神经网络方法:上图的一个简单示例是将第 1-8 列传递到“共享层”中。

任务特定层每个都与您的三个目标相关,即。任务 1 - 唤醒,任务 2 - 支配和任务 3 - 价。

请查看这篇关于多任务学习及其各种类型的评论文章。更易于访问的文章,此处包含一些代码示例。

附录

编辑:解决 OP 关于如何实施上述内容的询问。我不确定您打算使用哪些工具,我主要熟悉 Python。以下是使用深度学习框架实施多任务学习的指南或建议方法:

  1. 安装 Python,并获取keras和 TensorFlow 库,以及其他数据科学库(即pandas
  2. 尝试先实现一个较小的系统,或者一个玩具模型(参见此处的示例代码——只需尝试确保您可以先运行一个简单的图表)
  3. 尝试更复杂的图模型
  4. 修改上面文章中的最终代码,使其具有 3 个损失函数,(即 valence、arousal 和 dominance 各一个)
  5. 为模型使用数据的子集——确保它运行。您希望您的输入特征为第 1-8 列,而您的三个目标或结果为效价、唤醒和 dmoiance。
  6. 一旦模型和代码运行良好,对您的数据进行训练测试拆分(80:20 拆分,即 20% 的数据保留为看不见的数据)。为此,您可以使用 sklearn test-train-split
  7. 在测试数据上训练模型。
  8. 通过对测试数据进行预测来检查您的模型,并查看差异有多大(您可以使用绝对误差或均方误差等指标)来衡量这一点。
  9. 为了进一步改进您的模型,请调整超参数 - 即。改变优化器或学习率。

这是一个非常广泛的概述,抱歉,我无法详细说明,因为这是一个很大的话题。如果您不理解上述任何术语,您可以快速搜索它们,您应该可以上路了。