0

我正在尝试开发一种计算机视觉算法。该系统的目标是从图像中分类感兴趣的区域,其中目标类具有非常小的内部方差,而背景类具有巨大的内部方差(基本上是无限的)。

考虑到低内部方差,我首先研究了 SIFT 和 HoG 等关键点算法。遗憾的是,它们不起作用,因为目标类中的一些图像具有不同程度的清晰度,并且大多数关键点都没有被检测到。合乎逻辑的下一步是尝试使用某种形式的深度学习。对于目标类,我每个类大约有 20 个示例,因此从头开始构建模型不是可行的方法。我研究了使用连体网络,在该网络中,我将特征生成部分完全固定(因此没有梯度),并且只训练一个密集层,将 cnn 的扁平输出映射到 128 维表示。

我希望这会奏效,并且使用简单的 KNN 分类,我能够获得几乎 100% 的训练错误。然而,当我在生产中测试它时,分类完全关闭,我只得到背景类作为预测。我的两分钱是,即使我只使用预训练 CNN 的前 2 层,甚至修复这些层,模型仍然严重过度拟合。我尝试向密集层添加辍学,但这似乎并没有给出令人满意的结果。

有人对下一步去哪里有建议吗?如何确保我面临的问题是由于过度拟合而不是欠拟合?考虑到我在这 20 个实例上训练连体网络,我真的不能使用留一份简历。

4

0 回答 0