使用神经网络对图像进行一类分类



目标是对狗和非狗进行分类。火车数据集仅包含狗的图像。神经网络将仅使用该训练数据集进行训练,然后使用包含狗和非狗图像的测试数据集进行测试。

我遵循了编码器数据放大器教程,在我的情况下,自动编码器将所有测试图像分类为狗,这是错误的。

为一类分类构建CNN也是不可能的。知道怎么做吗?

您询问的正确术语是二进制分类

你可以安全地使用CNN进行二进制分类。问题在于如何对输出层建模。您可以使用具有两个输出单元的softmax层(argmax(输出(为类1:dog,类2:not dog(,也可以使用更传统的方法,使用单个sigmoid单元作为输出(输出>0.5:dog,<0.5:no dog(。由于softmax规范化是sigmoid激活的多类扩展,因此sigmoid层在理论上更有意义,但如果您在实现这一点时遇到困难,softmax也应该同样有效。

当然,您必须调整您的数据标签以适应任何一种方法。

编辑:你需要狗的图像和那些没有狗的图像。网络需要知道两者的分布情况。只要想想你的用例,你期望什么样的图像不是狗。然后收集不是狗的图像,并相应地给它们贴上标签。

最新更新