• Этот блог в основном основан на моих выводах из статьи: Knowledge Distilling: A Survey, и я пытаюсь представить свое резюме, которое, надеюсь, будет легче понять.

Проблема

Огромные модели глубокого обучения с миллиардами параметров очень сложно развернуть на устройствах с ограниченными ресурсами, таких как телефоны и встроенные устройства, или использовать для логического вывода или обслуживания в реальном времени, где типичные требования к задержке составляют миллисекунды (≤500 мс).

Решение

  • Одним из популярных методов сжатия и ускорения модели является метод дистилляции знаний (KD), при котором мы переносим знания из большой модели в маленькую модель.
  • Система KD состоит из 3 ключевых компонентов: знания, алгоритм дистилляции, архитектура учитель-ученик

Знание

Различные виды знаний могут быть

  • Знания, основанные на ответах: эти знания имитируют окончательный прогноз модели учителя.

  • Знания, основанные на функциях: хорошо известно, как глубокие нейронные сети используют различные уровни для различных видов представления функций. В то же время как выходные данные последнего слоя (знания, основанные на ответах), так и выходные данные промежуточных слоев используются в качестве знаний для контроля за обучением модели учащегося.

  • Знания, основанные на отношениях (также называемые знаниями общего представления): эти знания исследуют отношения между промежуточными уровнями, например, используя внутренний продукт между функциями из 2 разных слоев в качестве знаний. Более конкретно, знания учителя о взаимосвязи между различными входными примерами переносятся в модель ученика:

Схемы перегонки

3 основные категории в зависимости от того, обновляются ли модели учителя и ученика одновременно или нет:

  • Автономная дистилляция: ее проще всего реализовать. Сначала модель учителя предварительно обучается на обучающем наборе данных, а знания из модели учителя передаются для обучения модели ученика.
  • Онлайн-дистилляция: модели учителя и ученика обновляются одновременно в одном и том же учебном процессе. Здесь мы можем распараллелить обучение, используя несколько стратегий распределения (данные и/или модель), что сделает этот процесс эффективным.
  • Самоанализ: модели учителя и ученика имеют одинаковый размер и одинаковую архитектуру. Это может быть либо одна модель, представляющая учителя и ученика, либо у нас может быть два экземпляра одной и той же модели: один учитель и еще один ученик. Основная идея здесь заключается в том, что знания из более глубоких слоев могут быть использованы для обучения мелких слоев. Этот процесс обычно делает модель ученика более надежной и точной.

Архитектура «учитель-ученик»:

Наиболее распространенные студенческие архитектуры:

  • квантованная версия модели учителя
  • уменьшенная версия модели учителя с несколькими слоями и меньшим количеством нейронов на слой
  • та же модель, что и учитель

Алгоритмы дистилляции

  • Состязательная дистилляция:используется концепция генеративно-состязательных сетей (GAN), где модель генератора задает несколько сложных вопросов модели учителя, а модель ученика учится отвечать на эти вопросы от учителя.
  • Дистилляция нескольких учителей: несколько моделей учителей используются для предоставления различных видов знаний модели ученика.
  • Кросс-модальная (междисциплинарная) дистилляция: модель учителя, которая обучается в одной модальности (например, в области зрения), используется для обучения модели ученика в другой модальности (например, в текстовой области). Пример приложения: визуальный вопрос-ответ
  • Дистилляция на основе графа²: информация о процедуре встраивания сети учителя преобразуется в граф, который, в свою очередь, используется для обучения модели ученика.
  • Дистилляция на основе внимания: здесь карты внимания используются для передачи знаний о встраивании функций в модель учащегося.
  • Дистилляция без данных: при отсутствии обучающего набора данных (из-за проблем с конфиденциальностью, безопасностью и т. д.) синтетические данные генерируются на основе модели учителя или используются GAN.
  • Квантовая перегонка: передача знаний от высокоточной модели учителя (скажем, 32-разрядной) к модели ученика с низкой точностью (скажем, 8-разрядной).
  • Дистилляция на протяжении всей жизни:непрерывно приобретаемые знания модели учителя переносятся на модель ученика (видео ссылка на Youtube)
  • Дистилляция на основе поиска нейронной архитектуры (NAS).Используйте AutoML для автоматического определения подходящей модели ученика с точки зрения определения подходящего разрыва в емкости между моделями учителя и ученика.

Аспекты производительности и выводы

  • автономная дистилляция выполняет передачу знаний на основе функций
  • онлайн-дистилляция осуществляет передачу знаний на основе ответов
  • производительность моделей учащихся может быть улучшена за счет передачи знаний от моделей учителей (высокопроизводительных)

Приложения КД

  • KD нашел применение в визуальном распознавании, НЛП, распознавании речи и многих других приложениях.

Проблемы

  • Сложно измерить качество знаний или качество архитектуры «ученик-учитель».

Будущие направления

  • Было бы полезно интегрировать KD с другими схемами обучения, такими как обучение с подкреплением, состязательное обучение и т. д.

Использованная литература:

  1. Извлечение знаний: опрос
  2. Извлечение знаний на основе графов с помощью многоголовой сети внимания