Эндрю Ын: «Обучение одной сети нескольким задачам дает лучший результат в компьютерном зрении»

DeepLearning.AI 81,7 тыс. 12 мин 4 мин 25.08.2017
Главное

В современном машинном обучении часто возникает необходимость решать не одну, а сразу несколько смежных задач. В рамках курса DeepLearning.AI Эндрю Ын (Andrew Ng) подробно разбирает концепцию многозадачного обучения (Multitask Learning), которая позволяет одной нейросети одновременно осваивать несколько навыков, используя общие признаки данных.

🔄 Параллелизм против последовательности: суть Multitask Learning 0:00

В отличие от переноса обучения (Transfer Learning), который представляет собой последовательный процесс (сначала обучение задаче A, затем перенос знаний в задачу B), многозадачное обучение запускает процесс тренировки одновременно . Цель такого подхода — заставить одну нейронную сеть выполнять несколько действий сразу, при этом каждая задача в идеале должна помогать всем остальным за счёт выявления общих закономерностей .

Эндрю Ын приводит в пример систему для беспилотного автомобиля. Такой машине необходимо одновременно распознавать :

В этом сценарии на вход подаётся изображение, а на выходе формируется не одно число, а целый вектор меток . Например, если на фото есть автомобиль и знак «Стоп», но нет пешеходов и светофоров, вектор будет выглядеть как [0, 1, 1, 0] .

📊 Математическая модель и архитектура сети 1:18

Для реализации многозадачного обучения структура выходного слоя нейросети меняется. Вместо одного узла в выходном слое создается столько нейронов, сколько задач должна решать сеть . В примере с беспилотником выход $Y$ становится вектором размерности 4x1, а вся обучающая выборка (матрица меток) превращается в матрицу размерности 4xM, где M — количество примеров .

Ключевые отличия MTL от классических подходов:

Функция потерь (Loss function) в данном случае рассчитывается как среднее арифметическое потерь по всем задачам. Для каждой из четырех задач вычисляется стандартная логистическая функция потерь, после чего они суммируются для каждого примера в обучающей выборке .

🛠 Работа с неполными данными: «вопросительные знаки» в разметке 5:30

Одной из практических сложностей MTL является неполнота данных. По мнению Эндрю Ына, многозадачное обучение сохраняет эффективность даже в тех случаях, когда часть меток в датасете отсутствует .

На практике разметчик может отметить наличие автомобиля, но проигнорировать наличие светофора на том же кадре. В таких случаях в матрице меток появляются «вопросительные знаки» или пропуски. Эндрю Ын объясняет, что алгоритм можно настроить так, чтобы при расчёте функции потерь суммировались только те компоненты, для которых есть реальные метки (0 или 1) . Пустые значения просто игнорируются в процессе обучения, не ломая общую логику обновления весов .

💡 Когда стоит использовать многозадачное обучение 6:59

Эндрю Ын выделяет три основных критерия, при которых использование MTL становится целесообразным:

  1. Наличие общих низкоуровневых признаков. Задачи должны быть достаточно похожи, чтобы обучение одной помогало другой . Например, признаки, необходимые для распознавания стоп-сигналов, будут полезны и для детекции пешеходов, так как всё это элементы дорожной инфраструктуры .
  2. Схожий объем данных для разных задач. Хотя это и не жесткое правило, MTL особенно эффективно, когда у вас есть, например, 100 разных задач, и для каждой — небольшое количество данных (допустим, по 1000 примеров). В совокупности они дают 100 000 примеров, что значительно усиливает обучение каждой отдельной ветки .
  3. Достаточный размер нейросети. Эндрю Ын ссылается на результаты исследователя Рича Каруаны (Rich Caruana), который много лет назад установил: многозадачное обучение может снизить производительность только в том случае, если нейросеть слишком мала . Если же сеть достаточно велика, MTL как минимум не ухудшит результат, а скорее всего — значительно его улучшит .

⚖️ Сравнение MTL и Transfer Learning в реальной практике 10:38

Несмотря на мощь MTL, Эндрю Ын признает, что на сегодняшний день оно используется гораздо реже, чем перенос обучения (Transfer Learning) . Основная причина заключается в том, что зачастую трудно найти или сформулировать такое количество взаимосвязанных задач, которые имело бы смысл обучать одновременно в одной сети .

По словам лектора, главным исключением является компьютерное зрение и детекция объектов . Именно там MTL демонстрирует лучшие результаты, позволяя одной сети обнаруживать десятки и сотни различных типов объектов эффективнее, чем если бы для каждого объекта обучалась отдельная модель .

В большинстве других сфер разработчики предпочитают Transfer Learning, так как он проще в настройке, когда данных для конкретной задачи мало, но есть доступ к предобученной модели на огромном массиве похожих данных . Тем не менее, Ын подчеркивает, что оба метода являются критически важными инструментами в арсенале специалиста по Deep Learning .

💬 Цитаты

«В многозадачном обучении вы одновременно заставляете одну нейросеть делать несколько вещей сразу.»

Эндрю Ын 0:05

«Единственный случай, когда многозадачность вредит производительности — если ваша нейросеть недостаточно велика.»

«На практике я вижу, что Transfer Learning используется гораздо чаще, чем Multitask Learning.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Multitask Learning (Многозадачное обучение)
Подход в машинном обучении, при котором одна модель обучается решать несколько задач одновременно.
Transfer Learning (Перенос обучения)
Метод, при котором знания, полученные при решении одной задачи, применяются к другой, родственной задаче.
Softmax regression
Алгоритм классификации, который назначает объекту только один наиболее вероятный класс из нескольких возможных.
Логистическая функция потерь
Функция, используемая для оценки качества предсказаний в задачах бинарной классификации.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Эндрю Ын Multitask Learning DeepLearning.AI Компьютерное зрение Нейронные сети