Почему не стоит бездумно доверять высокому Accuracy в рекламных постах?

Недавно прочитал очередную новость, что ребята обучили супер точную нейронку-классификатор с accuracy аж 0.997. Звучит эффектно, правда? Но насколько правдиво такое значение подтверждает, что нейронка «супер точная»? Сейчас расскажу. Постараюсь максимально простыми словами.

Если глянуть на формулу accuracy, то она очень похожа на формулу вероятности случайного события. Отсюда вся путаница.

Accuracy = Количество верно классифицированных образцов / Общее количество образцов

Ошибочно создается впечатление, что эта нейронка будет в проде делать классификацию с вероятностью 0.997. То есть это почти 100%! Но нет.

Accuracy, равное 0.997, говорит о том, что из 1000 образцов в тестовой выборке она сделала только 3 ошибки. Но что находится в тестовой выборке? Каков ее размер? Насколько актуален и разнообразен состав выборки? Это ключевые моменты! Когда выкладываешь такую нейронку в прод, она может делать и 100% ошибок. Грубо говоря, если в тестовой выборке из кошек и собак попались три собаки с рыжими хвостами и нейронка отнесла их к кошкам, то в выборке из 1000 собак с рыжими хвостами, она ошибется 1000 раз.

Если нейронка была обучена на полностью сбалансированном датасете из нескольких десятков миллионов изображений (как у нас ;) ), эти изображения были максимально разнообразными (или как будет в вашем проде), если ровно столько же разнообразия было в тестовой выборке... то совокупно с высоким accuracy это конечно может говорить о качестве, но не дает гарантий относительно кейса с «1000 собак с рыжими хвостами».

Так что, дорогие покупатели, будьте бдительны! В конечном итоге качественная нейронка должна решать именно вашу задачу. Не забывайте тестировать работу классификатора в жизни, а при обучении помним про сбалансрированность датасета и другие метрики типа Precision, Recall и F1-score.

P.S. Ну и совсем без accuracy все-равно не обойтись...

11
Начать дискуссию