神经网络训练中的奇怪行为?

时间:2012-11-20 19:20:34

标签: neural-network classification email-spam

我创建了一个用于检测垃圾邮件的神经网络。 它涉及以下步骤;

1.Formation of tf-idf matrix of terms and mails.
2.Reduction of matrix using PCA.
3.Feeding the 20 most important terms according to eigen values to neural network as features.

我正在为1-Spam和0-Not spam进行培训。

编辑: 我决定通过批量调整7个邮件来训练它,因为它在形成矩阵时容易出现内存不足错误。我使用了火腿和垃圾邮件的标准安然数据集。 我曾经通过反向传播训练神经网络-1输入 - 1隐藏 - 1输出层,第一层有20个神经元,6个隐藏层神经元。

所以我开始在我的Gmail中使用原始垃圾邮件进行培训,在将其转换为enron数据集之前给出非常糟糕的结果。经过大量培训后获得了令人满意的成果。

当我测试时,14个邮件中有6个被检测到垃圾邮件。

我使用了替代培训,例如垃圾邮件的第1批和火腿邮件的批处理2等,以便网络训练为1输出垃圾邮件和0火腿邮件。

但是现在经过太多的训练后我估计差不多有400-500封邮件,如果再给出不好的结果呢。我降低了学习率但没有帮助。 出了什么问题?

1 个答案:

答案 0 :(得分:0)

将我的评论总结为一个答案......如果你的网络正在产生你期望的结果,然后经过额外的训练后输出不太准确,那么它很有可能是overtrained

如果您的数据集很小或变化不大,则特别容易发生这种情况。找到最佳的时期数主要是反复试验。