有没有可能在数据增强中应用深度梦想?

数据挖掘 深度学习 美国有线电视新闻网 数据增强
2022-03-16 07:42:15

我研究了深层梦想的概念,觉得这有可能产生数据。但我不确定这个概念有多大可能。对此有什么想法吗?

1个回答

TL;DR通常不会,因为 Deep Dream 忽略了输入人口的分布。

您无法使用生成器提取额外的信息数据,只能重新混合和重新组合您已有的数据。可能在某些情况下这很有用,因为您可以使用在其他数据上训练的生成器来引入不在您的主数据集中的额外相关信息。


Deep Dream 在逻辑上改变了输入结构,以最大化基于神经元激活的神经网络中的某些度量。这可能是单个神经元或一层神经元的激活。

我曾使用基于 Google 的 Inception v5 网络的 Deep Dream 脚本,该网络是在 ImageNet 上训练的,只是为了好玩。

这是一个相对极端的输出示例,最大化了一些特定的神经元激活并进行了长时间缩放,因此数据基本上只是对那些人工神经元的超级刺激:

尼尔·斯莱特的深梦形象

您可以合理肯定地说的一件事是,此图像看起来不像您从 ImageNet 中随机绘制的任何类别的任何内容。作为 ImageNet 分类任务的增强,这将是一个糟糕的选择,因为它不是来自目标人群。

对于所有明显的 Deep Dream 修改,一般情况下也是如此。这些修改看起来不自然,并产生了在输入分布中不合理的输入。一旦您明显不在用例的输入分布范围内,那么学习如何处理这些输入可能不会给您带来与机器学习任务目标相关的任何好处。

更细微的变化可能是有用的,如果在检查时很明显它们不应该改变分类。这可能类似于添加噪声的增强,如果仔细选择更改,可能有助于防御对抗性输入。事实上,生成对抗性输入的过程与 Deep Dream 几乎相同,通常侧重于输出类别和看起来像高频噪声的更新,因此人类往往看不到差异。

有更好的数据生成模型试图创建可能来自输入群体的数据。两个主要的是变分自动编码器(VAE)和生成对抗网络(GAN)。这些可能对数据生成有用。

但是,如果您正在考虑以某种方式通过训练其中一个生成器来“引导”一个小数据集,然后使用它的输出来增强您的数据,那么这不太可能奏效。输出的质量通常取决于其训练数据,因此生成的数据不会真正添加原始训练集中没有的信息。在大多数情况下,您最好查看更简单的数据逻辑转换,您确信这些转换不会更改目标标签(或以可预测的方式更改它) - 对于基于图像的 CNN,可能包括更改旋转、裁剪、亮度/对比度和其他基本的图像处理。

在某些情况下,使用生成器可能会有所帮助。例如,如果您可以在更多数据上训练它,因为您有大量未标记的数据,或者来自不同但相似的任务的数据。然后生成的输入的质量可能足够高,以至于您可以有效地利用来自同一数据集的无监督学习。你可能仍然会发现迁移学习更容易,或者训练一个自动编码器并重用它的前几层。