我正在使用隐藏层的自动编码器神经网络进行异常检测。这是一个无人监督的设置,因为我没有以前的异常示例。输入数据具有模式但也变化很大,因此在本质上是部分随机的。
为了便于理解,我训练了一个(完整的)自动编码器,其维度为 input =、 hidden =、 output =,并且在隐藏层和输出层中使用 sigmoid 函数。我的训练数据具有维度(500 个变量,5000 个样本)。我使用种算法,学习率,小批量大小,以及 Keras/TensorFlow 中的标准算法参数:
- 标准随机梯度下降 (SGD)
- 和学习率衰减的高级/扩展 SGD
- 亚当优化器(,,学习率衰减)
下图显示了相应的误差曲线。就我而言,两者都在不断下降(亚当除外),所以我会说“继续训练”。另一方面,我直觉地知道我不应该训练这么长时间,因为一定有一些过度拟合发生。那么我怎么知道什么时候停止训练,你会如何解释下面的结果呢?我是否正确,只使用 Adam 并使用 250 个 epoch(即使它在训练/验证集之间存在很大偏差)?
