Функция потери гипераса при регрессии
Я построил модель с использованием Keras для решения проблемы регрессии. Я хочу выполнить оптимизацию гиперпараметра на этой модели. В качестве метрики я использовал val_mean_absolute_error
, В этом примере рассматривается только проблема классификации (доступно на https://github.com/maxpumperla/hyperas).
validation_acc = np.amax(result.history['val_acc'])
print('Best validation acc of epoch:', validation_acc)
return {'loss': -validation_acc, 'status': STATUS_OK, 'model': model}
Как адаптировать этот код для задачи регрессии (для использования val_mean_absolute_error
как метрика)?
1 ответ
Для проблем регрессии мы обычно не определяем отдельную метрику, используя саму потерю для оценки производительности модели (чем ниже, тем лучше); Итак, если вы используете mae
как ваша потеря, и вы собрали свою модель как
model.compile(loss='mae', optimizer={{choice(['rmsprop', 'adam', 'sgd'])}})
вот как вы должны изменить код из связанного примера:
#get the lowest validation loss of the training epochs
validation_loss = np.amin(result.history['val_loss'])
print('Best validation loss of epoch:', validation_loss)
return {'loss': validation_loss, 'status': STATUS_OK, 'model': model}
Это правда, что некоторые люди добавляют аргумент компиляции для metrics=['mae']
в подобных случаях, но это не нужно.