Если я правильно понял, вы задаетесь вопросом: зачем оптимизировать «потери», когда мы можем оптимизировать «точность».
короткий ответ:
Конечно, вы можете !! (будет ли это хорошо для конвергенции - другая проблема). Видите ли, и потеря (MSE в вашем случае) и точность являются по существу обычными функциями или точными уравнениями, и вы можете выбрать любое уравнение в качестве целевой функции .
возможно, эта путаница возникает из-за использования таких слов, как: "mse" и еще более запутанно: "acc"
.
отметьте этот файл, чтобы получить более четкое представление о том, что происходит, когда вы пишете "mse"
"acc"
немного немного немного более запутанно. Видите ли, когда вы пишете «acc», это имеет несколько значений для Keras. Следовательно, в зависимости от того, какую функцию потерь вы используете, Keras затем решит, какая функция «акк» вам подойдет. Проверьте этот файл, чтобы увидеть, что происходит, когда вы пишете "acc"
Наконец, отвечая на ваш вопрос: shouldn't the focus of the model during it's training to maximize acc (or minimize 1/acc) instead of minimizing MSE?
Ну, керасам, MSE
и acc
- не что иное, как функции. Keras оптимизирует вашу модель на основе обратной связи от функции, определенной в:
model.compile(loss=<function_to_take_feedback_from>, optimizer=<also_another_function>, metrics=<function_to_just_evaluate_and_print_result_hoping_this_printed_value_means_something_to_you_the_user>)
подведение:
для attribute: loss
передать функцию. Если вы не хотите этого делать, просто напишите "mse"
, и keras передаст вам необходимую функцию.
для attribute: metrics
передать список функций. Если вы такой же ленивый, как я, просто попросите keras сделать это, написав "acc"
Длинный ответ:
какую функцию / уравнение следует использовать в качестве целевой функции?
это на другой день:)