# Эндрю Ын о «грязных» данных: стоит ли исправлять ошибки в разметке?

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

---

В машинном обучении качество данных часто оказывается важнее архитектуры модели. Однако даже в самых выверенных датасетах встречаются ошибки: кошка может быть помечена как собака, а нечеткое изображение — получить неверный тег из-за невнимательности разметчика. Основатель DeepLearning.AI Эндрю Ын разбирает, в каких случаях стоит тратить часы на ручную «чистку» меток, а когда нейросеть способна справиться с шумом самостоятельно.

## 🛠 Ошибки в разметке: когда «грязный» датасет не является приговором
[[JUMP:0:00]]

В задачах обучения с учителем данные состоят из входных признаков ($X$) и выходных меток ($Y$). В процессе работы над проектом исследователь неизбежно сталкивается с ситуацией, когда часть меток $Y$ в обучающей или проверочной выборке оказывается неверной [0:00]. Например, в классификаторе «кошка/не кошка» изображение собаки может быть ошибочно помечено как кошка из-за человеческого фактора [1:07].

Эндрю Ын разделяет два понятия:

*   **Mislabeled examples (ошибочно предсказанные примеры):** ситуации, когда алгоритм выдает неверный результат.
*   **Incorrectly labeled examples (некорректно размеченные данные):** ситуации, когда сама метка в исходном датасете, поставленная человеком, является ошибочной [0:39].

По мнению лектора, современные алгоритмы глубокого обучения обладают высокой устойчивостью (robustness) к случайным ошибкам в обучающей выборке [1:21]. Если ошибки распределены хаотично (например, разметчик случайно нажал не ту клавишу), их можно игнорировать, если общий объем данных велик, а процент брака относительно низок [1:48].

Однако Эндрю Ын подчеркивает критическую угрозу: **систематические ошибки**. Если разметчик стабильно помечает всех белых собак как «кошек», классификатор неизбежно выучит это ложное правило [2:29]. В этом случае чистка данных становится обязательной.

## 📊 Анализ ошибок в проверочной выборке (Dev Set)
[[JUMP:2:55]]

Если вопрос с обучающей выборкой стоит не так остро, то ошибки в проверочной (dev) и тестовой (test) выборках могут серьезно исказить оценку прогресса. Чтобы понять масштаб проблемы, Эндрю Ын рекомендует добавить дополнительный столбец в таблицу анализа ошибок [3:09].

Процесс выглядит следующим образом:

1.  Берется выборка примеров (например, 100 штук), на которых алгоритм ошибся.
2.  Для каждого случая фиксируется причина: плохая освещенность, необычный ракурс, наличие текста на картинке и т.д.
3.  Добавляется отдельная категория — «Ошибка разметки» (Incorrect label) [4:16].

На конкретном примере лектор показывает, как это влияет на принятие решений. Если общая ошибка модели составляет 10%, а на некорректные метки в проверочной выборке приходится лишь 0,6%, то это лишь 6% от общего числа промахов [5:22]. В такой ситуации Эндрю считает, что тратить время на исправление меток нецелесообразно: оставшиеся 9,4% ошибок, вызванные другими причинами, заслуживают гораздо большего внимания [6:03].

## ⚖️ Когда исправление меток становится приоритетом
[[JUMP:6:28]]

Ситуация радикально меняется, когда качество модели растет. Если общая ошибка снизилась с 10% до 2%, но доля ошибок из-за разметки осталась на уровне 0,6%, это означает, что уже 30% всех промахов алгоритма вызваны «грязными» данными в проверочном наборе [6:41].

В этом случае Эндрю Ын выделяет две основные проблемы:

*   **Искажение оценки:** Вы больше не можете объективно судить, насколько хороша ваша модель.
*   **Трудности выбора:** Если классификатор А имеет ошибку 2,1%, а классификатор Б — 1,9%, но в данных 0,6% ошибок разметки, вы не можете быть уверены, какая модель на самом деле лучше [7:49].

Основная цель проверочной выборки — помогать выбирать между альтернативными алгоритмами. Если шум в разметке мешает этому выбору, Эндрю Ын настоятельно рекомендует инвестировать время в ручное исправление меток [8:03].

## 📋 Три золотых правила «чистки» данных
[[JUMP:8:18]]

Если вы решили заняться исправлением меток вручную, лектор предлагает придерживаться следующих принципов:

1.  **Синхронность Dev и Test сетов.** Любые изменения в процессе разметки должны применяться одновременно к проверочной и тестовой выборкам. Они должны исходить из одного распределения, чтобы ваши цели (dev) соответствовали итоговому экзамену (test) [8:57].
2.  **Проверка правильных ответов.** Это самый сложный, но важный пункт. Легко проверять только те примеры, где алгоритм ошибся. Однако ошибки в разметке могут быть и там, где алгоритм «угадал» неверную метку [9:23]. Если проверять только ошибки, оценка точности модели станет предвзятой и завышенной [9:36].
3.  **Приоритетность наборов.** Исправлять метки в обучающей выборке (Training set) гораздо менее важно, чем в Dev/Test. Если обучающий набор огромен, допустимо оставить его «как есть», исправив только проверочные данные, даже если это приведет к небольшому расхождению в распределениях [10:53].

## 🧠 Человеческий взгляд против «черного ящика»
[[JUMP:11:36]]

В завершение Эндрю Ын развеивает миф о том, что в эпоху глубокого обучения достаточно просто «скормить данные алгоритму». Несмотря на то что современные нейросети требуют меньше ручного проектирования признаков (hand-engineering), создание практических систем по-прежнему требует глубокого понимания данных человеком [11:49].

Эндрю признается, что сам до сих пор тратит часы на ручной просмотр сотен примеров, чтобы понять, какие ошибки совершает модель [12:17]. По его мнению, несколько часов такого анализа дают больше инсайтов для развития проекта, чем любая автоматическая диагностика, и позволяют правильно расставить приоритеты в работе инженера [12:43].