Функция потери гипераса при регрессии - PullRequest
0 голосов
/ 02 марта 2019

Я построил модель с использованием 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 Ответ

0 голосов
/ 02 марта 2019

Для задач регрессии мы обычно не определяем отдельную метрику, используя саму потерю для оценки производительности модели (чем ниже, тем лучше);Итак, при условии, что вы используете 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'] в подобных случаях, но это не нужно.

...