我正在尝试创建一个神经网络,用于判断我提供的输入是否有效。问题是我只有有效的输入数据来进行训练。
目前,我正在尝试构建一个能够验证MNIST数字0到4之间的有效性的密集模型。其他所有的数字都应被视为无效。我最初的尝试是用0到4之间的数字作为有效输入进行训练,而用随机像素的图像作为无效输入(这些图像的黑色像素百分比与正常图像相同),但遗憾的是,这种方法不起作用。当我用5到9之间的数字进行测试时,它们被识别为有效输入。
因此,我开始怀疑这种训练方式是否可行。
我意识到可能有更好的方法来实现这一点,也许可以使用自编码器或其他类型的网络,但目前我只想尝试使用密集层来进行尝试。
谢谢你。
回答:
你所寻找的是单类分类,也称为一元分类或类建模。
快速谷歌搜索建议训练一个自编码器,并定义如果重构误差低于特定阈值,则对象属于你的类别。
但如果你开始构建这样的系统,我建议你首先尝试使用单类K近邻或单类SVM,看看是否能得到可接受的结果。如果可以,你可以使用“极其复杂的开发”解决方案,即自编码器来改进你的结果。