machine-learning - 何时停止训练 - LOOV MLP

标签 machine-learning statistics neural-network keras

我正在运行 MLP 将一组值分为 10 个不同的类别。

简单来说,我有一个声纳,它可以提供 400 个物体的“读数”。每个读数都是 1000 个浮点值的列表。

我已扫描了总共 100 个对象,想要对它们进行分类并基于留一交叉验证来评估模型。

对于每个对象,我将数据分为 99 个对象的训练集和剩余对象的测试集。我将训练集(99 个对象,99*400 个“读数”)输入到 MLP 中,并使用测试集(1 个对象,1*400 个“读数”)进行验证。

我的问题是:我如何知道使用哪个训练纪元作为最终的“最佳”模型?我在谷歌上搜索了一下,有些人说使用具有最佳验证准确性的纪元,但是这对我来说似乎是在欺骗。我不应该只根据训练数据的统计数据来选择一个模型吗? (我的思考过程是,训练中的随机权重重组可能会人为地产生高验证精度,但实际上并不能为将来可以扫描的新对象提供有用的模型)

SO 答案说使用提供最佳验证准确性的训练纪元:

whats is the difference between train, validation and test set, in neural networks?

最好, 洗板机

最佳答案

这称为提前停止

您需要的是验证集。

- 在每个时期之后,计算您在验证集上所需的评估指标。

- 始终将验证集上性能最佳模型的参数保存在变量中。

- 如果两次或 n 次迭代验证结果没有得到改善,则停止 epoch 并使用最佳性能参数重置 MLP。

-然后使用您之前保存的验证集上性能最佳的模型计算测试集的结果。

关于machine-learning - 何时停止训练 - LOOV MLP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37577891/

相关文章:

python - Python sklearn 中的训练集

machine-learning - xgboost 多类工作中 base_score 的用途是什么?

c# - 我如何智能地将整数行分组以进行分面搜索?

python - 我的置信区间是使用 z 分数还是 t 分数?

multithreading - 并行神经网络

machine-learning - 什么时候可以使用无标度神经网络?

python - 如何使输出图像的大小与原始图像的大小相同以计算CNN中的损失?

c# - .NET/c# 项目的开源/免费统计引擎?

tensorflow - 在 Keras 中,当我使用 N `LSTM` 创建有状态 `units` 层时,我到底在配置什么?

python - 哪种形状应该具有 LSTM NN 的输入和输出数据?