是否可以仅通过仅向其提供一个类的输入来训练二元分类神经网络?

Posted

技术标签:

【中文标题】是否可以仅通过仅向其提供一个类的输入来训练二元分类神经网络?【英文标题】:Is it possible to train a binary classification neural network by only feeding it with input from only one class? 【发布时间】:2018-12-13 17:38:33 【问题描述】:

我基本上是在尝试创建一个神经网络,它应该告诉我我提供的输入是否有效。问题是我只有可以训练它的有效输入。

现在我正在尝试提出一个有效的密集模型,它只验证 0 到 4 之间的 mnist 数字。所有其他数字都应该被视为无效。第一次尝试是用 0 到 4 之间的数字作为有效数字来训练它,随机像素的图像无效(黑色像素的百分比与正常图像相同),但不幸的是它不起作用。当我用 5 到 9 之间的数字对其进行测试时,它们被视为有效。

所以我开始思考是否有可能以这种方式训练神经网络。

我也意识到可能有更好的方法来做到这一点,可能使用自动编码器或不同类型的网络,但现在我只想尝试使用密集层。

谢谢。

【问题讨论】:

【参考方案1】:

您要查找的是one-class classification,也称为一元分类或类建模。

Quick google search 建议训练一个 autoencoder 并在重建错误低于特定阈值时定义一个对象,就像在你的类中一样。

但是,如果您开始构建类似的东西,我建议您首先使用类似 K-Nearest Neighbor 或 One-Class SVM 之类的东西,看看您是否获得了可接受的结果。如果是这样,您可以使用“极其复杂的开发”来改善您的结果 - 使用自动编码器的解决方案

【讨论】:

以上是关于是否可以仅通过仅向其提供一个类的输入来训练二元分类神经网络?的主要内容,如果未能解决你的问题,请参考以下文章

使用 LSTM 构建二元分类模型

Keras 用于二元分类预测的 fit_generator() 总是 50%

用于序列二元分类的 RNN

如何推导出二元分类问题中的主要影响因素

sklearn 如何计算二元分类器的 roc 曲线下面积?

R中的SVM函数