用于视频分类问题的小数据集的训练测试拆分和增强策略

数据挖掘 机器学习 神经网络 分类 美国有线电视新闻网 图像分类
2021-09-19 05:04:08

对于二进制分类问题,我有一个包含大约 100 个视频的小型视频数据集,每个类别都有。这会产生总共 200 个视频。我在视频上应用了两种类型的增强。

  1. 旋转和翻转视频的变革性增强。它们有 5 种类型,因此结果数据集的大小增加了 5 倍。
  2. 增加和减少亮度、饱和度、对比度、模糊、抖动、噪点等。

所有视频都捕捉到了一些液体滴落到纸上的相同现象。我在下面附上了两帧视频,一帧靠近开始,另一帧在水滴扩大时。在 3D CNN 上,我得到了大约 85% 的准确率。

我担心的是:

  1. 由于我有一个小数据集,是否可以先应用变革性增强然后进行训练测试拆分,以便我的数据集扩展到 1000 个视频,并且拆分结果为 800:200 个视频?或者我应该在增强之前进行拆分,从而产生 80x5=400 个训练视频和 20 个测试视频?
  2. 此外,我的 CNN 具有三个非常标准的卷积层和两个批量归一化层。在我获得良好准确度的每次运行中,测试准确度比训练准确度高 1-2%。应该有关系吗?
  3. 此外,当我包括第二种类型的亮度增强等时,我看到训练和测试精度的差异为 10-15%。我认为这可能是由于与测试集相比,训练集变得非常困难。我想对了吗?

在此处输入图像描述 在此处输入图像描述

1个回答

您的三个问题密切相关:

  1. 您不应该拆分之前增加数据。这会导致数据泄漏,因为训练数据和测试数据之间存在重叠,因为您正在对训练期间已经看到的一些图像(尽管是转换版本)测试您的模型。因此,您应该先拆分,然后增加。

  2. 当您的网络中只有训练正则化元素(如 dropout)时,训练准确度可能低于测试准确度。根据您对网络架构的描述,这不是您的情况。您的性能差异很可能是由您的增强产生的数据泄漏引起的。

  3. 同2。