Метрика гиперпараметров в Google Cloud ML должна содержать префикс `val`?

При определении метрики гиперпараметров для 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.


person Guilherme Silveira    schedule 24.09.2018    source источник
comment
val_mean_squared_error не является встроенной метрикой TF. Он должен работать, если вы определяете свою собственную метрику, которая оценивается только при наборе для проверки. Вот инструкция (cloud.google.com/ml -engine / docs / tensorflow /), чтобы использовать индивидуальную метрику с настройкой гиперпараметров.   -  person lwz1992    schedule 24.09.2018


Ответы (1)


Ответ: если вы (я) хотите, чтобы при настройке гиперпараметров Google Cloud ML использовалась метрика VALIDATION вместо метрики обучения при использовании Keras, вам необходимо указать val_mean_squared_error (или val_accuracy и т. Д.).

Если вы будете придерживаться accuracy или mean_squared_error, вы измените процесс настройки Google Cloud ML, чтобы выбрать модели переобучения. Чтобы избежать переобучения при поиске параметров, вы должны либо создать свою собственную метрику (как указано в комментарии), либо использовать метод fit с набором проверки и использовать метрики val.


Я обновил вопрос, чтобы явно указать, что я использую Keras, который автоматически создает файл val_mean_squared_error.

Чтобы получить ответ, я понял, что могу провести простой тест: как с val_mean_squared_error, так и с mean_squared_error при использовании Keras и при вызове fit с набором параметров проверки и сравнить результаты задания с указанными показателями.

person Guilherme Silveira    schedule 24.09.2018
comment
Спасибо! И вы можете проверить это, запустив код на своем локальном компьютере и посмотреть, записано ли val_mean_squared_error в окончательные сводки TF. Если есть, то он должен работать только на CloudML Engine. - person lwz1992; 25.09.2018
comment
Да. Keras автоматически включает val_ для функции потерь и каждую метрику в сводку (и историю), если вы передаете параметр набора проверки (или процента проверки). - person Guilherme Silveira; 25.09.2018