# Эндрю Ын: «Высокая точность на перекошенных данных — это иллюзия»

Источник: https://www.youtube.com/watch?v=BlxnbyvHTyI
Канал: DeepLearning.AI
Опубликовано: 21.04.2022

---

В машинном обучении существует опасная ловушка: показатель точности (accuracy) может быть чрезвычайно высоким, в то время как сама модель остается абсолютно бесполезной. Эндрю Ын, один из ведущих экспертов в области ИИ и основатель DeepLearning.AI, подробно разбирает проблему «перекошенных» (skewed) наборов данных, где соотношение положительных и отрицательных примеров далеко от пропорции 50/50. В этом материале рассматриваются инструменты, позволяющие избежать ложных выводов о качестве работы алгоритма.

## 📉 Проблема перекошенных данных
[[JUMP:00:02]]

Когда один класс в данных встречается значительно чаще другого, стандартная метрика точности перестает отражать реальное положение дел [0:02]. Ын приводит пример из производственной сферы: если компания выпускает смартфоны и 99,7% из них не имеют дефектов, то простейший алгоритм, который всегда выдает ответ «брака нет», покажет впечатляющую точность в 99,7% [0:15]. Однако такая модель не имеет никакой практической ценности, так как она не способна обнаружить те самые 0,3% бракованных устройств.

Аналогичная ситуация наблюдается и в других областях:

*   **Медицинская диагностика:** Если 99% пациентов здоровы, алгоритм, предсказывающий отсутствие болезни у каждого встречного, будет прав в 99% случаев [0:41].
*   **Распознавание речи:** При разработке систем обнаружения триггер-слов (wake words), таких как «Alexa», «Окей, Google» или «Hey Siri», большую часть времени никто эти слова не произносит [1:07].

Эндрю Ын делится личным опытом разработки систем распознавания ключевых фраз: в наборах данных, которые он использовал, было 96,7% отрицательных примеров и лишь 3,3% положительных [1:21]. В таких условиях «сырая» точность — бесполезная метрика [1:33].

## 📊 Матрица ошибок (Confusion Matrix)
[[JUMP:01:47]]

Вместо того чтобы полагаться на общую точность, Ын рекомендует строить матрицу ошибок — таблицу, где одна ось представляет реальные метки (ground truth), а вторая — предсказания алгоритма [1:47].

Матрица разделяет все результаты на четыре категории:

1.  **True Negatives (Истинно отрицательные):** Реальная метка 0, и алгоритм предсказал 0 [2:41].
2.  **True Positives (Истинно положительные):** Реальная метка 1, и предсказание 1 [2:54].
3.  **False Negatives (Ложноотрицательные):** Алгоритм предсказал 0 (отсутствие события), но на самом деле там была 1 [3:08].
4.  **False Positives (Ложноположительные):** Алгоритм предсказал 1, но на самом деле там был 0 [3:20].

На примере набора из 1000 образцов (914 отрицательных и 86 положительных) Ын демонстрирует, как данные распределяются внутри матрицы, позволяя вычислить более глубокие метрики [3:46].

## 🎯 Точность vs Полнота: Precision и Recall
[[JUMP:04:13]]

Для оценки качества работы на специфических данных используются два ключевых показателя: Precision (Точность) и Recall (Полнота) [4:13].

**Precision (Точность)** отвечает на вопрос: «Из всех случаев, которые алгоритм пометил как положительные, какая часть оказалась верной?» [4:13]. Формула выглядит так:
`Precision = True Positives / (True Positives + False Positives)`
В примере Эндрю Ына этот показатель составил 88,3% [4:51].

**Recall (Полнота)** фокусируется на другом аспекте: «Какую долю из всех реально положительных случаев удалось поймать алгоритму?» [5:06]. Формула:
`Recall = True Positives / (True Positives + False Negatives)`
В рассматриваемом примере полнота составила 79,1% [5:20].

По словам Ына, эти метрики гораздо полезнее точности. Если мы возьмем «бесполезный» алгоритм, который всегда предсказывает 0, его Recall будет равен 0% [6:40]. Это сразу подсветит проблему: модель не находит ни одного полезного положительного примера [7:08].

## ⚖️ Как сравнить две модели: F1 Score
[[JUMP:07:35]]

Часто возникает ситуация, когда у одной модели выше Precision, а у другой — Recall. Чтобы выбрать лучшую, Эндрю Ын предлагает использовать **F1 Score** [7:35].

Основные характеристики F1 Score:

*   Это способ объединить точность и полноту в одно число [8:01].
*   Математически это среднее гармоническое между Precision и Recall [8:27].
*   Формула устроена так, что показатель будет низким, если хотя бы одна из составляющих (P или R) очень мала [8:14].

Использование F1 Score позволяет четко увидеть преимущество одной модели над другой. Однако Ын подчеркивает, что это не единственный путь: в зависимости от приложения вес точности и полноты может меняться [9:07].

## 📱 Применение в производстве и мультиклассовая классификация
[[JUMP:09:21]]

Методы оценки на перекошенных данных применимы не только в бинарной классификации, но и в задачах с несколькими классами. Например, при поиске дефектов в смартфонах [9:35].

Ын перечисляет типы редких дефектов, которые важно отслеживать:

*   Царапины (scratches);
*   Вмятины (dents);
*   Следы от ударов или проколов (pit marks), возникающие, например, при попадании отвертки в корпус [9:35];
*   Обесцвечивание LCD-экрана [9:49].

В заводских условиях приоритеты часто смещены. По мнению Ына, на многих фабриках важнее иметь **высокий Recall**, чтобы ни один бракованный телефон не попал к клиенту [10:29]. Если при этом Recall высок, а Precision чуть ниже — это допустимо, так как человек может перепроверить подозрительное устройство и подтвердить, что оно в порядке [10:42].

Комбинирование Precision и Recall через F1 Score для каждого типа дефектов в отдельности помогает инженерам приоритизировать работу [11:07]. Вместо того чтобы пытаться улучшить общую точность (которая и так будет высокой из-за редкости дефектов), команда может сосредоточиться на самом проблемном типе брака, где F1 Score минимален [11:20].

В завершение Эндрю Ын отмечает, что понимание этих метрик — критический шаг перед переходом к финальному этапу контроля качества, который он называет «аудитом производительности» (performance auditing) [11:48].