面对有限数据时提高 CNN 性能的研究路径/领域

人工智能 卷积神经网络 数学 研究 图像处理 统计数据
2021-11-02 19:15:19

我一直在阅读有关图像处理、计算机视觉和卷积神经网络的研究文献。对于图像分类和对象识别,我知道当有大量数据可用时,卷积神经网络可以提供最先进的性能。此外,我知道 Hinton 等人。创建了“胶囊网络”来尝试克服 CNN 架构的一些基本限制(例如它们不是旋转不变的)。然而,我的理解是胶囊网络(到目前为止)一直是失败的,大多数人都希望它们无处可去。并且 CNN 已经以各种方式逐步得到改进(用于超参数调整的贝叶斯优化、新的卷积核等)。在我看来,目前以及在可预见的未来,

但是,正如我所说,CNN 与其他深度学习架构一样,需要大量数据。所以我的问题如下:

从使用更少的数据(使用小数据集)使它们更有效地工作(即具有更高的性能)的意义上来说,改进 CNN 的研究领域/主题是什么?

我知道有各种研究着眼于增加数据的方法(例如数据增强、生成网络等),但我主要对 CNN 本身的基本修改感兴趣,而不是仅仅关注数据本身的变化。

为了扩展我的问题,使用我上面对“性能”的定义,我对这两个类别感兴趣:

  1. 用于提高 CNN 性能的“计算方法”。这将是我读过的非数学内容,例如只是增加层数并使 CNN 更深/更宽(我认为另一个与只是使卷积核的大小更小有关,这样它就可以随时查看图像的较小部分,或者类似的东西?)。

  2. 提高 CNN 性能的“数学方法”。这将是我读过的最前沿的数学/统计资料:算法之类的东西(例如贝叶斯优化);我遇到了很多几何的东西;我猜图像处理人员创造的尖端卷积核也属于这一类。

显然,这个“列表”并不详尽,而且很可能是不正确的;我是这项研究的新手,所以我正在努力寻找解决方法。

我有兴趣研究上述两个类别,但我将主要从数学/统计方面工作。而且我想从事仍然实用的研究,并且可以在工业中使用以提高性能(即使对于大多数工业界的人来说它可能仍然是“先进的”/复杂的)——而不是与高度理论相关的东西。

相关(但未回答):是否有任何关于数据有限的图像识别的优秀研究论文?

1个回答

当面对有限的数据时,想到的一些研究领域可能很有用:

  • 正则化:包括不同的方法来防止网络过度拟合,使其在验证数据上表现更好,但不一定在训练数据上表现更好。一般来说,你拥有的训练数据越少,你就越想要正则化。常见类型包括:

    • 在网络中注入噪声,例如dropout

    • 将正则化项添加到训练损失中,例如,权重的 L1 和 L2 正则化,但也可以惩罚置信的输出分布。

    • 减少网络中的参数数量,使其无法完全拟合训练数据,从而无法严重过度拟合。有趣的是,增加大型模型的参数数量也可以提高验证性能。

    • 提前停止训练。例如,如果训练集的一部分被搁置并且不用于更新权重,则当观察到这部分训练集的损失开始增加时,可以停止训练。

  • 生成新的训练数据:

    • 数据增强:在不删除语义的情况下增强现有训练示例的方法,例如图像的轻微旋转、裁剪、平移(移位)。

    • 数据插值,例如流形混合

    • 使用合成数据,例如来自视频游戏或其他 CGI 的帧。

  • 迁移学习:当您使用已经在另一个更大的数据集(图像、声音等)与您的数据集相同的模式(图像、声音等)上训练过的神经网络时,并根据您的数据对其进行微调。

  • 多任务学习:不是训练你的网络来执行一项任务,而是给它多个输出头并训练它一次执行许多任务,因为你有额外任务的标签。虽然这对网络来说似乎更困难,但额外的任务具有正则化效果。

  • 半监督学习:如果你有很多未标记数据和标记数据,你可以将监督学习与无监督学习结合起来。与多任务学习非常相似,无监督学习引入的额外任务也具有正则化效果。

其他有趣的方法可以在执行一次性学习的系统中找到,这本质上意味着很少的训练数据。这些系统通常使用稍微修改的网络架构。例如,面部识别系统可以学习仅从单张照片中识别人脸,并且通常使用人脸矢量编码的三元组损失(或类似损失),而不是通常使用 softmax 层输出的交叉熵损失用于图像分类。

零样本学习也存在(例如,零样本机器翻译),但这是一种完全不同类型的问题设置,需要多种数据模式。