我正在使用Caffe框架进行CNN训练。我的目标是为几个基本对象类别执行简单的对象识别。由于预训练网络不是我提出的用法的替代方案,所以我准备了一个自己的训练和测试集,每个训练课程包括两个班级(椅子和汽车),大约有1000个图像。CNN负面训练图片示例
结果非常好。如果我呈现一张尚未看到的椅子图像,则可能将其归类为汽车图像。我的问题是,不显示任何这些类别的杂项图像的结果对于一个随机类别(这对于单独的训练数据而言并不令人惊讶,但对于我的应用程序而言是一个问题)显示出非常高的置信度(= 1)。我想过不同的解决方案:
1)添加第三个类也有大约1000个反例,显示除椅子和汽车以外的任何物体。
2)通常添加更多的对象类别,只是为了让网络将其他对象分类,而不再是椅子或汽车(当然这需要很多努力)。也许更广泛的预测结果会显示负像中更均匀的分布,从而允许根据阈值评估目标物体的存在?
因为从互联网抓取随机图片作为负面例子并不费时,所以我已经用大约1200个反面例子测试了我的第一个解决方案。它有帮助,但问题依然存在,也许是因为它太少了?我担心的是,如果我增加负面例子的数量,每个类别的例子数量的不平衡导致原始类别的检测不准确。 经过一番研究,我发现一个人有类似的问题,但没有解决办法: Convolutional Neural Networks with Caffe and NEGATIVE IMAGES
我的问题是:有没有人有同样的问题,并且知道如何处理呢?您会推荐什么方式,添加更多否定示例或更多对象类别,或者您有其他建议吗?