Что такое дистилляция наборов данных? Краткий обзор
Узнай, как дистилляция наборов данных (dataset distillation) ускоряет обучение моделей и снижает вычислительные затраты, заменяя большие наборы данных маленьким, оптимизированным набором синтетических образцов.

Обучение моделей может казаться самой трудоемкой частью работы дата-сайентиста. Но большая часть времени, часто от 60% до 80%, на самом деле уходит на подготовку данных: их сбор, очистку и организацию для моделирования. По мере роста наборов данных увеличивается и время на их подготовку, что замедляет эксперименты и усложняет итерации.
Чтобы справиться с этим, исследователи годами искали способы оптимизации обучения. Такие подходы, как синтетические данные, сжатие наборов данных и более эффективные методы оптимизации, направлены на снижение затрат и упрощение работы с масштабными наборами данных, а также на ускорение рабочих процессов машинного обучения.
Ключевой вопрос, который при этом возникает: можно ли радикально уменьшить набор данных, сохранив при этом такую же производительность, как при обучении модели на полном объеме данных? Дистилляция наборов данных — один из перспективных ответов.
Оно создает компактную версию большого обучающего набора данных, сохраняя при этом основные паттерны, которые необходимы модели для эффективного обучения. Это открывает путь к более быстрому обучению, меньшим требованиям к вычислительным ресурсам и более эффективным экспериментам. Ты можешь представить это как шпаргалку для модели — небольшой набор примеров синтетических данных, созданный для того, чтобы обучать тем же ключевым паттернам, что и полный набор данных.
В этой статье мы рассмотрим, как работает дистилляция наборов данных и как она поддерживает масштабируемое машинное обучение и глубокое обучение в реальных приложениях. Давай начнем!
Понимание дистилляции наборов данных#
Дистилляция наборов данных — это процесс, при котором большой обучающий набор данных сжимается до гораздо меньшего набора, который все еще передает модели почти ту же информацию, что и исходный. Многие исследователи также называют этот процесс конденсацией наборов данных, поскольку цель состоит в том, чтобы уловить основные паттерны, присутствующие во всем наборе данных.
Дистиллированный набор данных отличается от случайно сгенерированных синтетических данных или просто выбора меньшего подмножества реальных изображений. Это не случайный фейковый набор данных и не обрезанная копия исходного.
Вместо этого он намеренно оптимизируется для захвата наиболее важных паттернов. В ходе этого процесса каждый пиксель и признак корректируется и оптимизируется так, чтобы нейронная сеть, обученная на дистиллированных данных, училась почти так же, как если бы она была обучена на всем наборе данных.
This idea first appeared in a 2018 arXiv paper by Tongzhou Wang, Jun-Yan Zhu, Antonio Torralba, and Alexei A. Efros. Early tests used simple datasets like MNIST and CIFAR-10, which made it easy to show that a few distilled samples could stand in for thousands of real images.

Рис. 1. Использование дистилляции наборов данных для данных изображений (Источник)
С тех пор последующие работы продвинули дистилляцию наборов данных дальше, включая методы, опубликованные на ICML и ICLR, которые делают конденсацию более эффективной и масштабируемой.
Значимость дистилляции наборов данных#
Дистилляция наборов данных повышает эффективность обучения и ускоряет циклы разработки. Сокращая объем данных, на которых необходимо учиться модели, она снижает вычислительные требования.
Это особенно полезно для непрерывного обучения, где модели обновляются со временем, нейронного архитектурного поиска, где тестируется множество моделей, и обучения на периферийных устройствах, где модели работают на небольших устройствах с ограниченной памятью и мощностью. В целом эти преимущества делают дистилляцию наборов данных отличным вариантом для быстрой инициализации, оперативной донастройки и создания ранних прототипов во многих рабочих процессах машинного обучения.
Обзор того, как работает дистилляция наборов данных#
Дистилляция наборов данных создает синтетические, или искусственно сгенерированные, обучающие образцы. Эти образцы помогают модели учиться способом, который очень похож на обучение на реальных данных. Это работает за счет отслеживания трех ключевых факторов во время обычного обучения.
Первый — это функция потерь, которая представляет собой оценку ошибки модели, показывающую, насколько неверны ее предсказания. Второй — параметры модели, которые являются внутренними весами сети, обновляемыми в процессе обучения.
Третий — траектория обучения, которая описывает, как ошибка и веса меняются шаг за шагом во времени. Синтетические образцы затем оптимизируются так, чтобы при обучении модели на них ее ошибка падала, а веса обновлялись так же, как при использовании полного набора данных.
Пошаговый взгляд на дистилляцию наборов данных#
Давай подробнее рассмотрим, как работает процесс дистилляции наборов данных:
- Шаг 1. Инициализация синтетических пикселей: Процесс начинается с синтетических изображений, которые выступают в роли обучаемых входов. Сначала эти изображения почти не имеют структуры и выглядят как чистый лист. Со временем они оптимизируются в информативные примеры.
- Шаг 2 - Оптимизация с помощью сопоставления градиентов и обратного распространения ошибки: По мере того как модель обучается на этих синтетических изображениях, она генерирует градиенты, указывающие на то, как каждый пиксель должен измениться, чтобы лучше соответствовать поведению обучения на реальных данных. Обратное распространение ошибки — это метод, который сеть использует для обучения на ошибках. Она отправляет ошибку назад через модель, чтобы выяснить, какие пиксели и веса стали причиной, а затем немного их обновляет. Используя эти градиенты, обратное распространение ошибки пошагово корректирует синтетические изображения, чтобы они стали более информативными для обучения.
- Шаг 3 - Сопоставление поведения на разных шагах обучения: Метод также сопоставляет траектории обучения, то есть пошаговые изменения, через которые проходит модель в процессе обучения. Это гарантирует, что дистиллированный набор данных направляет модель по пути обучения, похожему на тот, которому она следовала бы с полным набором данных.
- Шаг 4 - Валидация и обобщение: Наконец, дистиллированный набор данных оценивается на реальных валидационных данных, чтобы увидеть, насколько хорошо обученная модель работает на новых примерах. Это позволяет убедиться, что синтетические данные обучают широким, функциональным паттернам, а не заставляют модель запоминать конкретные образцы.

Рис. 2. Обзор дистилляции наборов данных (Источник)
Ключевые методологии дистилляции наборов данных#
Все методы дистилляции наборов данных построены на одной и той же основной идее, даже если они используют разные алгоритмы для ее реализации. Большинство подходов делятся на три категории: сопоставление производительности, сопоставление распределений и сопоставление параметров.
Далее давай рассмотрим каждый из них и то, как он работает.
Сопоставление производительности#
Сопоставление производительности в дистилляции наборов данных фокусируется на создании крошечного оптимизированного обучающего набора, который позволяет модели достичь почти той же точности, как если бы она обучалась на полном исходном наборе данных. Вместо выбора случайного подмножества дистиллированные образцы оптимизируются так, чтобы модель, обученная на них, в итоге выдавала схожие предсказания, демонстрировала похожее поведение функции потерь во время обучения или имела такую же финальную точность, как модель, обученная на исходном наборе данных.
Метаобучение — это распространенный метод, используемый для улучшения этого процесса. Дистиллированный набор данных обновляется посредством повторяющихся эпизодов обучения, благодаря чему он становится эффективным в самых разных возможных ситуациях.
Во время этих эпизодов метод моделирует, как модель-студент учится на текущих дистиллированных образцах, проверяет, насколько хорошо этот студент работает на реальных данных, а затем корректирует дистиллированные образцы, чтобы они стали лучшими учителями. Со временем дистиллированный набор учится поддерживать быстрое обучение и сильную обобщающую способность, даже если модель-студент начинает с других начальных весов или использует другую архитектуру. Это делает дистиллированный набор данных более надежным и не привязанным к одному запуску обучения.

Рис. 3. Процесс метаобучения (Источник)
Методы сопоставления распределений#
Тем временем, сопоставление распределений генерирует синтетические данные, которые соответствуют статистическим паттернам реального набора данных. Вместо фокусировки только на финальной точности модели этот подход концентрируется на внутренних признаках, которые нейронная сеть генерирует во время обучения.
Далее давай рассмотрим два метода, которые лежат в основе сопоставления распределений.
Сопоставление распределений на одном слое#
Сопоставление распределений на одном слое концентрируется на одном слое нейронной сети и сравнивает признаки, которые он производит для реальных и синтетических данных. Эти признаки, также называемые активациями, отражают то, чему модель научилась в этой точке сети.
Заставляя синтетические данные производить схожие активации, этот метод поощряет дистиллированный набор данных отражать те же важные закономерности, что и исходный набор. На практике синтетические образцы многократно обновляются до тех пор, пока активации на выбранном слое не станут близкими к активациям от реальных изображений.
Этот подход относительно прост, так как он выравнивает только один уровень представления за раз. Он может особенно хорошо работать на небольших наборах данных или задачах, где не требуется сопоставление глубоких, многоступенчатых иерархий признаков. Четко выравнивая одно пространство признаков, однослойное сопоставление обеспечивает стабильный и значимый сигнал для обучения с использованием дистиллированного набора данных.
Многослойное сопоставление распределений#
Многослойное сопоставление распределений опирается на идею сравнения реальных и синтетических данных путем выполнения этого процесса на нескольких слоях нейронной сети вместо одного. Разные слои фиксируют разные виды информации: от простых краев и текстур на ранних слоях до фигур и более сложных паттернов на более глубоких.
Сопоставляя признаки на этих слоях, дистиллированный набор данных побуждается отражать то, чему модель учится на разных уровнях. Поскольку он выравнивает признаки по всей сети, этот подход помогает синтетическим данным сохранять более богатые сигналы, на которые полагается модель, чтобы различать классы.
Это особенно полезно в компьютерном зрении (то есть в задачах, где модели учатся понимать изображения и видео), поскольку полезные паттерны распределены по многим слоям. Когда распределения признаков хорошо совпадают на нескольких глубинах, дистиллированный набор данных служит более сильной и надежной заменой исходных обучающих данных.
Методы сопоставления параметров#
Еще одна ключевая категория в дистилляции наборов данных — это сопоставление параметров. Вместо соответствия точности или распределениям признаков, он сопоставляет то, как меняются веса модели в процессе обучения. Заставляя обучение на дистиллированном наборе данных производить схожие обновления параметров с обучением на реальных данных, модель следует почти идентичному пути обучения.
Далее мы разберем два основных метода сопоставления параметров.
Одношаговое сопоставление#
Одношаговое сопоставление сравнивает, что происходит с весами модели после всего одного шага обучения на реальных данных. Дистиллированный набор данных затем настраивается так, чтобы модель, обученная на нем в течение одного шага, производила очень похожее обновление весов. Поскольку он фокусируется только на этом одном обновлении, метод прост и быстр в выполнении.
Минусом является то, что один шаг не отражает весь процесс обучения, особенно для более сложных задач, где модели нужно множество обновлений для создания более богатых признаков. Из-за этого одношаговое сопоставление лучше всего работает на более простых проблемах или небольших наборах данных, где полезные паттерны можно уловить быстро.
Многошаговое сопоставление параметров#
В отличие от этого, многошаговое сопоставление параметров смотрит на то, как веса модели меняются в течение нескольких шагов обучения, а не только одного. Эта последовательность обновлений — траектория обучения модели.
Дистиллированный набор данных строится так, чтобы при обучении модели на синтетических образцах ее траектория тесно следовала той, которую она выбрала бы на реальных данных. Сопоставляя более длинный отрезок обучения, дистиллированный набор захватывает больше структуры исходного процесса обучения.
Поскольку он отражает, как обучение разворачивается во времени, многошаговое сопоставление обычно лучше работает для больших или более сложных наборов данных, где моделям нужно много обновлений, чтобы уловить полезные закономерности. Это требует больше вычислений, так как приходится отслеживать множество шагов, но часто позволяет создавать дистиллированные наборы данных, которые лучше обобщают и обеспечивают более высокую производительность, чем одношаговое сопоставление.
Как работают генерация и оптимизация синтетических наборов данных#
Лучше понимая основные подходы к дистилляции, теперь мы можем рассмотреть, как создаются синтетические данные. В дистилляции наборов данных синтетические образцы оптимизируются для фиксации самого важного сигнала обучения, поэтому маленький набор может заменить гораздо более крупный.
Далее мы увидим, как эти дистиллированные данные генерируются и оцениваются.
Создание и оценка дистиллированных изображений#
Во время дистилляции наборов данных синтетические пиксели обновляются на протяжении многих шагов обучения. Нейронная сеть учится на текущих синтетических изображениях и отправляет обратную связь на основе градиентов, которая показывает, как каждый пиксель должен измениться, чтобы лучше соответствовать паттернам в реальном наборе данных.
Это работает, потому что процесс дифференцируем (что означает, что каждый шаг гладкий и имеет четко определенные градиенты, поэтому малые изменения пикселей приводят к предсказуемым изменениям функции потерь), что позволяет модели плавно корректировать синтетические данные во время градиентного спуска.
По мере продолжения оптимизации синтетические изображения начинают приобретать осмысленную структуру, включая формы и текстуры, которые распознает модель. Эти уточненные синтетические изображения часто используются для задач классификации изображений, поскольку они улавливают ключевые визуальные сигналы, необходимые классификатору для обучения.
Дистиллированные наборы данных оцениваются путем обучения на них моделей и сравнения результатов с моделями, обученными на реальных данных. Исследователи измеряют точность валидации и проверяют, сохраняет ли синтетический набор дискриминативные признаки (паттерны или сигналы, на которые полагается модель для различения классов), необходимые для разделения классов. Они также тестируют стабильность и обобщение при разных запусках или настройках моделей, чтобы убедиться, что дистиллированные данные не приводят к переобучению.
Реальные применения дистилляции данных#
Далее мы подробнее рассмотрим примеры, показывающие, как дистиллированные наборы данных ускоряют обучение и снижают вычислительные затраты, сохраняя при этом высокую производительность, даже когда данных мало или они узкоспециализированы.
Использование дистилляции наборов данных для приложений компьютерного зрения#
Когда дело касается компьютерного зрения, цель состоит в обучении моделей пониманию визуальных данных, таких как изображения и видео. Эти модели изучают паттерны, такие как края, текстуры, формы и объекты, а затем используют их для таких задач, как классификация изображений, обнаружение объектов или сегментация. Поскольку проблемы зрения часто характеризуются огромными различиями в освещении, фоне и точках обзора, системы компьютерного зрения обычно требуют больших наборов данных для хорошего обобщения, что делает обучение дорогим и медленным.

Рис. 4. Пример дистилляции наборов данных (Источник)
Когда речь идет о сценариях использования классификации изображений, таких как медицинские снимки, мониторинг дикой природы или обнаружение дефектов на производстве, модели часто сталкиваются с жестким компромиссом между точностью и стоимостью обучения. Эти задачи обычно включают массивные наборы данных.
Дистилляция наборов данных позволяет сжать исходный обучающий набор в небольшое количество синтетических изображений, которые все еще содержат самые важные визуальные сигналы для классификатора. На крупных бенчмарках, таких как ImageNet, дистиллированные наборы, использующие лишь около 4,2% исходных изображений, демонстрируют сохранение высокой точности классификации. Это означает, что крошечный синтетический прокси может заменить миллионы реальных примеров с гораздо меньшими затратами вычислительных ресурсов.
Нейронный архитектурный поиск#
Нейронный архитектурный поиск, или NAS, — это метод, который автоматически исследует множество возможных дизайнов нейронных сетей, чтобы найти тот, который лучше всего подходит для задачи. Поскольку NAS должен обучать и оценивать большое количество моделей-кандидатов, запуск его на полных наборах данных может быть медленным и крайне вычислительно затратным.
Дистилляция наборов данных помогает, создавая крошечный синтетический обучающий набор, который все еще содержит основной сигнал обучения исходных данных, поэтому каждая архитектура-кандидат может быть протестирована гораздо быстрее. Это позволяет NAS эффективно сравнивать дизайны, сохраняя при этом относительную надежность рейтинга хороших и плохих архитектур, что снижает стоимость поиска без существенной потери качества финальной модели.
Непрерывное обучение и развертывание на периферии#
Системам непрерывного обучения (то есть моделям, которые продолжают обновляться по мере поступления новых данных, а не обучаются один раз) требуются быстрые и эффективные по памяти обновления. Периферийные устройства, такие как камеры, телефоны и датчики, сталкиваются с аналогичными ограничениями из-за жестких лимитов на вычислительные мощности и объем памяти.
Дистилляция наборов данных помогает в обоих случаях, сжимая большой обучающий набор в крошечный синтетический, поэтому модели могут адаптироваться или переобучаться, используя небольшой набор для повторного воспроизведения, а не весь набор данных целиком. Например, работы по метаобучению на основе ядер показали, что всего 10 дистиллированных примеров могут обеспечить точность более 64% на CIFAR-10 — стандартном бенчмарке классификации изображений. Поскольку набор для повторного воспроизведения очень компактен, обновления становятся намного быстрее и практичнее, особенно когда моделям требуется частое обновление.
Дистилляция наборов данных также может работать вместе с дистилляцией знаний для больших языковых моделей. Небольшой дистиллированный набор данных может хранить самые важные сигналы задачи от модели-учителя, поэтому сжатая модель-студент может быть обучена или обновлена эффективнее без значительной потери производительности. Поскольку эти наборы данных крошечные, они особенно полезны для использования на периферийных или встроенных устройствах, где хранилище и вычисления ограничены, но ты все равно хочешь, чтобы модель оставалась точной после обновлений.
Плюсы и минусы дистилляции данных#
Вот некоторые преимущества использования дистилляции наборов данных:
- Отлично подходит для быстрых экспериментов. Ты можешь тестировать новые архитектуры, функции потерь или гиперпараметры, не переобучая модель на огромном наборе данных каждый раз.
- Потенциальное преимущество для конфиденциальности. Обмен дистиллированными синтетическими образцами может быть безопаснее, чем обмен реальными пользовательскими данными, поскольку необработанные примеры не раскрываются напрямую.
- Часто эффективнее простого выбора подмножества. Вместо того чтобы просто отбирать примеры, дистилляция активно оптимизирует их, чтобы они были максимально информативными.
Хотя дистилляция наборов данных предлагает несколько преимуществ, вот некоторые ограничения, которые стоит учитывать:
- Переобучение: Дистиллированные данные часто лучше всего работают для архитектуры, использовавшейся при дистилляции, и могут плохо переноситься на совершенно другие модели.
- Чувствительность к гиперпараметрам. Результаты могут сильно зависеть от таких факторов, как скорость обучения, инициализация или количество шагов дистилляции.
- Труднее масштабировать до сложности реального мира. Методы, которые хорошо работают на бенчмарках, могут терять точность на больших, неструктурированных или высокоразрешенных наборах данных.
Основные выводы#
Дистилляция наборов данных позволяет небольшому набору синтетических образцов обучать модель почти так же эффективно, как и полный набор данных. Это делает машинное обучение быстрее, эффективнее и легче в масштабировании. По мере того как модели растут и требуют больше данных, дистиллированные наборы предлагают практичный способ снижения вычислительных затрат без жертв в точности.
Присоединяйся к нашему сообществу и загляни в наш репозиторий на GitHub, чтобы узнать больше об искусственном интеллекте. Если ты хочешь создать собственный проект в области визуального ИИ, ознакомься с нашими вариантами лицензирования. Узнай больше о таких приложениях, как ИИ в здравоохранении и визуальный ИИ в ритейле, посетив страницы наших решений.






