我目前正在对我的神经网络进行超参数优化。
我有训练、开发和测试文件,这些都是提供给我的。为了进行超参数优化,我使用训练集和开发集进行完整的训练。最后,我在给定参数组合下对训练的测试集进行评估。
我选择了在测试集上最大化得分的参数。我的问题是我觉得这样做是不对的,因为我某种程度上泄露了测试集的数据。
这种做法不好吗?我应该使用optunity在开发集上最大化准确率,最后在测试集上报告一个得分吗?
回答:
通常,验证(开发)集用于比较具有不同超参数的模型。一旦你选择并训练了你偏好的模型,你会在测试集上运行它来测量其性能。
你的直觉是正确的;使用测试集来选择模型参数在某种意义上是利用这些数据来辅助训练过程,这是不可取的。