如何在侧面图像中添加非图像特征作为 CNN 的输入

数据挖掘 机器学习 神经网络 深度学习 张量流 美国有线电视新闻网
2021-09-28 23:37:39

我正在训练一个卷积神经网络来对雾条件下的图像进行分类(3 类)。然而,对于大约 150.000 张图像中的每一张,我还有四个可用的气象变量,它们可能有助于预测图像的类别。我想知道如何将气象变量(例如温度、风速)添加到现有的 CNN 结构中,以便它有助​​于分类。

我已经想到的一种方法是在 CNN 旁边创建另一个(小型)前馈神经网络,然后在密集层将 CNN 层和非图像神经网络的隐藏层的输出连接起来。

我能想到的第二种方法是将这些特征与密集层联系起来。但是,在这种情况下,非图像变量(我认为)只能进行线性预测。

有没有其他(更好的)方法可以将非图像特征包含在模型中?考虑到我拥有的数据量,什么是可取的方法?

我的另一个问题是在使用这些非图像特征进行训练时是否应该解冻卷积层?Resnet-18 的这些层(在 ImageNet 上初始化为预训练)已经使用图像进行了微调。我的猜测是我应该让它们保持冻结状态,并且只解冻密集层,因为只有在这里非图像特征才与图像特征“接触”(不是在 CNN 早期)。如果我在这方面错了,请说出来!

1个回答

我的解决方案就像您的第一个建议,但略有变化。

  1. 构建你的卷积层并将它们堆叠到扁平层。这个网络应该被输入图像数据。
  2. 扁平化你的激活图
  3. 构建具有所需数量的神经元和层的全连接网络。
  4. 连接卷积网络的扁平层和全连接网络的输出。
  5. 添加一些密集层并将它们连接到代表您的类的最后一层。

您可以为此架构使用惯用的成本函数。