我有一个包含 5 种不同回收物品的 10,000 张图像的数据集。我的神经网络的目标是告诉我一件物品是否可回收。问题是我只有 5 种不同分类的数据(汽水罐、碎汽水罐、水瓶、玻璃瓶、纸板箱)。如果您向训练有素的网络提供不属于这 5 个项目之一的东西(比如塑料袋),它仍然会尝试将其标记为这 5 个项目之一。有没有办法在没有数据的情况下逻辑分离垃圾项目垃圾。我没有时间收集更多垃圾项目的数据并在神经网络中添加第 6 个分类。
如何创建一个可以识别对象的神经网络,而无需拥有不在分类集中的对象的数据?
机器算法验证
机器学习
Python
喀拉斯
一类
2022-03-23 00:56:39
4个回答
是的,但最集中的治疗采用不同的方法。您需要选择一种模型类型,以“是或不是”为基础训练每个类。这也称为“一对多”。您的结果将有效地为五个类别中的每一个类别提供一组单独的权重,即五个模型将决定观察(一个数据)是否是该类别的成员。如果五个子模型都没有声明该项目,则它最终归入“垃圾”类别。
给定兼容的输入,SVM(支持向量机)对此很有用。虽然,也有更复杂的治疗方法。
是的,这就是所谓的:一类分类,当您仅在正数据上训练模型并尝试预测异常值时。检查这可能会有所帮助:https ://medium.com/squad-engineering/one-class-classification-for-images-with-deep-features-69182fb4c9c5
我认为你需要从不同的方面来看待这个问题。根据您的情况,您可以将此问题视为“如果该物品不可回收”,而不是训练您的模型来识别“此物品是否可回收”。原因是您只有 5 个可回收物品,这比现实中的要少得多。因此,顺便说一句,您可以将此问题视为无监督学习方式或半监督学习方式,假设您可以访问不可回收的物品。具体来说,建议的方法有两种:
无监督学习:将您的问题设计为异常值检测问题。使用大多数不可回收物品和很少的可回收物品来构建培训信息。遵循k-means聚类、高斯混合模型等方法。
半监督学习:在这个学习中,你只对不可回收的物品进行回归。如果您向您的训练模型提供可回收的项目,您的模型将预测一个与您的预定义值相比偏差较大的值。请参考一类 SVM 或一类神经网络。在您的主题中,对于基于图像的检测,可能宪法神经网络会更好......
我建议您获取更多数据并构建二进制分类器。
- 首先将所有数据合并为 1 类(可回收)
- 然后上网查找不可回收的物品。我们应该找到人们通常扔进垃圾桶的物品。但不要试图获得不相关的图像,例如猫和狗。