通常,当使用Keras时,用于训练神经网络的数据集被标记。
例如,如果我有100,000行患者,每行12个字段,那么最后一个字段将指示该患者是否患有糖尿病或无糖尿病(0或1)。然后在训练结束后,我可以插入一个新的记录,并预测这个人是否患有糖尿病。
但是,在无标签数据集中,由于某些原因,我无法对数据进行标记,如何训练神经网络让他知道这些都是正常记录,而任何与此网络不匹配的新记录都将是恶意的或不被接受的?
发布于 2017-04-27 18:03:00
这叫做一班学习,通常是用自动编码器来完成的.您可以根据培训数据对自动编码器进行培训,以重建数据本身。本例中的标签是输入本身。这会给你一个重建错误。https://en.wikipedia.org/wiki/Autoencoder
现在您可以定义一个阈值,其中数据是否是良性的,这取决于重建错误。希望好数据的重建要好于坏数据的重建。
编辑回答关于监督学习和非监督学习在性能上的差异的问题。
这不能肯定地说,因为我没有试过,我也不知道最终的准确性是什么。但对于一个粗略的估计,监督学习将更好地执行对经过训练的数据,因为更多的信息提供给算法。然而,如果实际数据与训练数据有很大的不同,那么网络在实际操作中会表现不佳,而自动编码器则倾向于更好地处理不同的数据。此外,根据经验规则,每堂课应该有5000个例子来可靠地训练一个神经网络,因此标记可能需要一些时间。但无论如何,你都需要一些数据来测试。
发布于 2017-04-27 16:39:20
听起来你需要两种不同的型号:
对于这两种型号,您都需要有标签。对于第一种模式,您的标签将指示记录是好的还是坏的(恶意的),第二种是病人是否患有糖尿病。
为了检测不良记录,您可能会发现简单的logistic回归或支持向量机有足够的性能。
https://stackoverflow.com/questions/43654798
复制相似问题