Google Cloud ML 中的超参数指标应包含“val”前缀?

Hyperparameter metric in Google Cloud ML should contain the `val` prefix?

在为 Google Cloud ML 定义超参数指标时,我可以使用 mean_squared_error,但如果我希望它比较验证集的准确性,我应该使用 val_mean_squared_error 吗?还是它自己做的?

这是示例 hptuning 配置:

trainingInput:
  ...
  hyperparameters:
    goal: MINIMIZE
    hyperparameterMetricTag: ???mean_squared_error

这是合适的调用:

history = m.fit(train_x, train_y, epochs=epochs, batch_size=2048,
                         shuffle=False,
                         validation_data=(val_x, val_y),
                         verbose=verbose,
                         callbacks=callbacks)

由于我正在传递我的验证数据和Keras,我怀疑我是否应该使用val_mean_squared_error

答案是:如果您 (I) 希望 Google Cloud ML 超参数调优在使用 Keras 时使用验证指标而不是训练指标,则需要指定 val_mean_squared_error(或 val_accuracy等)。

如果您坚持 accuracymean_squared_error,您会将 Google Cloud ML 调整过程偏向 select 过度拟合模型。为避免在搜索参数时出现过度拟合,您应该创建自己的指标(如评论中所述)或使用带有验证集的 fit 方法并使用 val 指标。


我已更新问题以明确说明我正在使用 Keras,它会自动创建 val_mean_squared_error.

为了得到答案,我意识到我可以做一个简单的测试:同时使用 val_mean_squared_errormean_squared_error,同时使用 Keras 并使用验证参数集调用 fit 并比较作业结果与报告的指标。