В современном машинном обучении часто возникает необходимость решать не одну, а сразу несколько смежных задач. В рамках курса DeepLearning.AI Эндрю Ын (Andrew Ng) подробно разбирает концепцию многозадачного обучения (Multitask Learning), которая позволяет одной нейросети одновременно осваивать несколько навыков, используя общие признаки данных.
🔄 Параллелизм против последовательности: суть Multitask Learning 0:00
В отличие от переноса обучения (Transfer Learning), который представляет собой последовательный процесс (сначала обучение задаче A, затем перенос знаний в задачу B), многозадачное обучение запускает процесс тренировки одновременно . Цель такого подхода — заставить одну нейронную сеть выполнять несколько действий сразу, при этом каждая задача в идеале должна помогать всем остальным за счёт выявления общих закономерностей .
Эндрю Ын приводит в пример систему для беспилотного автомобиля. Такой машине необходимо одновременно распознавать :
- Пешеходов;
- Другие автомобили;
- Дорожные знаки (например, Stop);
- Сигналы светофора.
В этом сценарии на вход подаётся изображение, а на выходе формируется не одно число, а целый вектор меток . Например, если на фото есть автомобиль и знак «Стоп», но нет пешеходов и светофоров, вектор будет выглядеть как [0, 1, 1, 0] .
📊 Математическая модель и архитектура сети 1:18
Для реализации многозадачного обучения структура выходного слоя нейросети меняется. Вместо одного узла в выходном слое создается столько нейронов, сколько задач должна решать сеть . В примере с беспилотником выход $Y$ становится вектором размерности 4x1, а вся обучающая выборка (матрица меток) превращается в матрицу размерности 4xM, где M — количество примеров .
Ключевые отличия MTL от классических подходов:
- Отличие от бинарной классификации: Сеть предсказывает сразу несколько независимых характеристик объекта .
- Отличие от Softmax-регрессии: В Softmax изображение относится строго к одному классу из множества. В MTL одно изображение может содержать сразу несколько объектов разных классов (и машину, и знак одновременно) .
Функция потерь (Loss function) в данном случае рассчитывается как среднее арифметическое потерь по всем задачам. Для каждой из четырех задач вычисляется стандартная логистическая функция потерь, после чего они суммируются для каждого примера в обучающей выборке .
🛠 Работа с неполными данными: «вопросительные знаки» в разметке 5:30
Одной из практических сложностей MTL является неполнота данных. По мнению Эндрю Ына, многозадачное обучение сохраняет эффективность даже в тех случаях, когда часть меток в датасете отсутствует .
На практике разметчик может отметить наличие автомобиля, но проигнорировать наличие светофора на том же кадре. В таких случаях в матрице меток появляются «вопросительные знаки» или пропуски. Эндрю Ын объясняет, что алгоритм можно настроить так, чтобы при расчёте функции потерь суммировались только те компоненты, для которых есть реальные метки (0 или 1) . Пустые значения просто игнорируются в процессе обучения, не ломая общую логику обновления весов .
💡 Когда стоит использовать многозадачное обучение 6:59
Эндрю Ын выделяет три основных критерия, при которых использование MTL становится целесообразным:
- Наличие общих низкоуровневых признаков. Задачи должны быть достаточно похожи, чтобы обучение одной помогало другой . Например, признаки, необходимые для распознавания стоп-сигналов, будут полезны и для детекции пешеходов, так как всё это элементы дорожной инфраструктуры .
- Схожий объем данных для разных задач. Хотя это и не жесткое правило, MTL особенно эффективно, когда у вас есть, например, 100 разных задач, и для каждой — небольшое количество данных (допустим, по 1000 примеров). В совокупности они дают 100 000 примеров, что значительно усиливает обучение каждой отдельной ветки .
- Достаточный размер нейросети. Эндрю Ын ссылается на результаты исследователя Рича Каруаны (Rich Caruana), который много лет назад установил: многозадачное обучение может снизить производительность только в том случае, если нейросеть слишком мала . Если же сеть достаточно велика, MTL как минимум не ухудшит результат, а скорее всего — значительно его улучшит .
⚖️ Сравнение MTL и Transfer Learning в реальной практике 10:38
Несмотря на мощь MTL, Эндрю Ын признает, что на сегодняшний день оно используется гораздо реже, чем перенос обучения (Transfer Learning) . Основная причина заключается в том, что зачастую трудно найти или сформулировать такое количество взаимосвязанных задач, которые имело бы смысл обучать одновременно в одной сети .
По словам лектора, главным исключением является компьютерное зрение и детекция объектов . Именно там MTL демонстрирует лучшие результаты, позволяя одной сети обнаруживать десятки и сотни различных типов объектов эффективнее, чем если бы для каждого объекта обучалась отдельная модель .
В большинстве других сфер разработчики предпочитают Transfer Learning, так как он проще в настройке, когда данных для конкретной задачи мало, но есть доступ к предобученной модели на огромном массиве похожих данных . Тем не менее, Ын подчеркивает, что оба метода являются критически важными инструментами в арсенале специалиста по Deep Learning .