# Эндрю Ын: «Не перемешивайте данные из разных источников в одну кучу»

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

---

В эпоху глубокого обучения алгоритмы демонстрируют огромный «голод» до обучающих данных. Чтобы добиться максимальной производительности, разработчики зачастую объединяют все доступные массивы информации в одну обучающую выборку, даже если эти данные получены из разных источников и не совсем соответствуют тому, с чем нейросеть столкнется в реальности.

В этом материале на основе лекции DeepLearning.AI основатель платформы Эндрю Ын объясняет, почему классический подход к разделению данных на обучающую и проверочную выборки требует пересмотра и как правильно работать с несовпадающими распределениями.

## 🐱 Дилемма «кошачьего» приложения: профессиональное фото против любительского
[[JUMP:00:00]]

Разработка мобильного приложения для распознавания кошек на фотографиях пользователей — классический пример проблемы разных распределений [0:37]. У разработчика есть два основных источника данных:

1.  **Данные из веба:** Около 200 000 изображений высокого разрешения, сделанных профессионалами, с отличным освещением и композицией [1:26].
2.  **Данные из мобильного приложения:** Всего 10 000 изображений, загруженных пользователями. Они часто бывают размытыми, плохо кадрированными и сняты на камеры смартфонов с низким разрешением [1:01].

Конечная цель проекта — чтобы система хорошо работала именно с фотографиями из приложения [1:53]. Однако 10 000 примеров — это слишком мало для качественного обучения современной нейросети. С другой стороны, использование 200 000 изображений из интернета кажется полезным, но они имеют совершенно иное распределение (внешний вид и качество), чем те, с которыми столкнется конечный пользователь [2:20].

## ❌ Ошибка случайного перемешивания (Option 1)
[[JUMP:02:46]]

Первый интуитивный вариант, который часто выбирают команды, — это объединить все 210 000 изображений в один общий массив, перемешать их и разделить на обучающую (Train), проверочную (Dev) и тестовую (Test) выборки [2:46]. Например, если выделить по 2 500 примеров на проверочный и тестовый наборы, в обучающей выборке останется 205 000 картинок [3:13].

По мнению Эндрю Ына, у этого метода есть один критический недостаток:

*   **Преимущество:** Все три выборки (Train, Dev, Test) будут принадлежать к одному ительному распределению, что упрощает управление процессом обучения [3:27].
*   **Главный минус:** Математическое ожидание показывает, что в проверочной выборке из 2 500 примеров подавляющее большинство (около 2 381) составят профессиональные фотографии из интернета [3:54]. На снимки из мобильного приложения придется в среднем лишь 119 штук [4:20].

Эндрю Ын настоятельно не рекомендует использовать этот подход [4:47]. Проверочная выборка (Dev set) должна указывать команде «на цель», а в данном случае она заставляет оптимизировать алгоритм под интернет-фотографии, которые не являются приоритетом для бизнеса.

## ✅ Рекомендуемый подход: точное попадание в цель (Option 2)
[[JUMP:05:00]]

Вместо перемешивания Эндрю Ын предлагает стратегию, при которой проверочная и тестовая выборки формируются **только** из данных целевого распределения [5:00].

Рекомендуемая структура данных:

*   **Обучающая выборка (Train):** Все 200 000 изображений из интернета плюс 5 000 изображений из мобильного приложения [5:13].
*   **Проверочная выборка (Dev):** 2 500 изображений исключительно из мобильного приложения [5:39].
*   **Тестовая выборка (Test):** 2 500 изображений исключительно из мобильного приложения [5:39].

Такое разделение ставит перед командой правильную задачу: построить систему, которая работает на данных из мобильного приложения [6:09]. Несмотря на то, что распределение обучающей выборки теперь отличается от проверочной и тестовой, в долгосрочной перспективе это обеспечит гораздо более высокую производительность системы в реальных условиях [6:23].

## 🚗 Пример со смарт-зеркалом: навигация в условиях шума
[[JUMP:06:48]]

Другой пример касается разработки системы распознавания речи для автомобильного зеркала заднего вида с голосовым управлением [6:48]. Это реальный продукт, популярный в Китае и выходящий на мировые рынки [7:02].

Для обучения такой системы можно использовать:

*   **Общие данные:** Около 500 000 аудиозаписей из различных источников — купленные базы данных, записи со смарт-колонок, голосовых клавиатур и т.д. [8:23].
*   **Целевые данные:** Небольшое количество записей (например, 20 000), сделанных непосредственно в автомобиле, где пользователи произносят адреса и навигационные запросы на фоне дорожного шума [8:37].

Распределение этих данных сильно различается: в автомобильных записях гораздо больше названий улиц и номеров домов [8:51]. Эндрю Ын утверждает, что проверочную и тестовую выборки нужно формировать именно из этих 20 000 «автомобильных» записей [9:03].

Вариант распределения может быть следующим:

1.  500 000 общих записей и 10 000 записей из автомобиля уходят в **Train** [9:44].
2.  По 5 000 записей из автомобиля выделяются для **Dev** и **Test** выборок [9:58].

## 💡 Итог: всегда ли нужно использовать все данные?
[[JUMP:10:24]]

Использование данных из разных распределений позволяет значительно увеличить объем обучающей выборки, что критически важно для глубокого обучения [10:37]. В большинстве случаев это приводит к улучшению работы алгоритма.

Однако Эндрю Ын отмечает, что ответ на вопрос «всегда ли стоит использовать все доступные данные» не является однозначно положительным. Существуют нюансы и контрпримеры, которые требуют отдельного рассмотрения для понимания границ применимости этого метода [10:49].