Действительно ли нам нужно сжатие модели?

компьютерное зрение

Эта статья переведена из блога:

"Do We Really Need Model Compression?

Автор: Митчелл А. Гордон.

Предисловие:

Сжатие модели — это метод сжатия обученной нейронной сети. Сжатая модель обычно работает аналогично исходной модели, используя небольшое количество вычислительных ресурсов. Однако во многих приложениях узким местом оказывается обучение исходной большой нейронной сети перед сжатием. Например, модели на основе BERT можно обучать на недорогих графических процессорах (12 ГБ памяти), но BERT-большой требует обучения на Google TPU (64 ГБ памяти), что не позволяет многим людям пробовать предварительно обученные языковые модели.

Результаты в области сжатия моделей говорят нам о том, что наши конвергентные решения обычно имеют меньше параметров, чем изначально обученная модель. Так что же мешает нам экономить память GPU, обучая маленькие модели с нуля?

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

Appropriately-Parameterized Models

Модель с правильным количеством параметров — модель, которая не является ни чрезмерно параметризованной, ни недопараметризованной, но модель, которая имеет правильное количество параметров, чтобы представить идеальное решение задачи.

Обычно мы не обучаем модели со скромными параметрами в парадигме глубокого обучения. Это связано с тем, что для данного набора данных часто неизвестно, сколько параметров подходит для использования. Даже если решение известно, очень сложно обучить модель с нужным количеством параметров с помощью градиентного спуска.

Вместо этого процедура обучения обычно выглядит так:

图片

  1. Мы будем обучать сверхпараметризованную модель. Эти модели обычно имеют больше параметров, чем количество обучающих выборок.
  2. Различные методы регуляризации (неявные или иные) используются для оптимизации с ограничениями, чтобы отдать предпочтение «простым решениям», а не переоснащению.
  3. Сжатие модели извлекает «простые» модели, встроенные в более крупные модели, удаляя избыточность, приближая эффективность использования памяти и времени к идеальной модели с нужным количеством параметров.

Экстремальная чрезмерная параметризация упрощает обучение. Однако, поскольку модели чрезмерно параметризованы, поэтому они могут хранить данные, а не изучать полезные закономерности в данных, требуется регуляризация. Затем сжатие модели использует эту простоту, чтобы сохранить только те параметры, которые действительно нужны решению.

Поскольку наша цель — использовать меньше памяти графического процессора для обучения нейронных сетей, мы можем задать несколько очевидных вопросов:

  1. Зачем нужна сверхпараметризация? Насколько необходима избыточная параметризация?
  2. Можем ли мы уменьшить чрезмерную параметризацию, используя более разумные методы оптимизации?

В следующих двух разделах эти вопросы будут рассмотрены по очереди.

Over-parameterization Bounds

Зачем нужны сверхпараметры? С достаточно перепараметризованной нейронной сетью мы можем эффективно увеличить оптимизированный ландшафт. Du и др. (2019), Haeffele and Vidal (2017) математически доказывают это в некоторых простых случаях, давая необходимый объем избыточной параметризации для достижения нулевых потерь при обучении за полиномиальное время. По сути, чрезмерная параметризация жертвует простотой вычислений ради увеличения использования памяти.

Эти границы обычно считаются свободными. Это означает, что, хотя мы можем предсказать достаточное количество параметров для идеального соответствия некоторым данным, мы все еще не знаем минимальное количество параметров, необходимых для идеального соответствия данным. Строгие ограничения могут зависеть от всего, от процесса оптимизации (SGD против GD, Адам против других) до архитектуры. Вычисление строгих границ еще более сложно с вычислительной точки зрения, чем обучение всех возможных сетей-кандидатов.

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

Вышеупомянутое упускает из виду, что разные архитектуры могут иметь разные диапазоны чрезмерной параметризации. Таким образом, разумным подходом является использование другой архитектуры с меньшим диапазоном чрезмерной параметризации. Некоторые интересные «трансформеры» включают Reformer, ALBERT, Sparse Transformers и SRU.

Better Optimization Techniques

Эмпирически сложно обучить модель с правильными параметрами. Обучение модели правильного размера с градиентным спуском обычно терпит неудачу. Модель не сможет сойтись, чтобы соответствовать обучающим данным, не говоря уже об обобщении. Отчасти это объясняется невыпуклостью/недружественностью среды оптимизации нейронных сетей, но точная характеристика вычислительной сложности обучения умеренно параметризованных моделей еще не завершена.

Методы сжатия модели дают нам подсказки о том, как обучать правильно параметризованную модель, уточняя типы решений, к которым склонна сходиться сверхпараметризованная модель. Существует много типов сжатия моделей, каждый из которых использует свой тип «простоты», который часто встречается в хорошо обученных нейронных сетях:

  • Многие веса близки к нулю (обрезка)

  • Весовая матрица низкого ранга (весовая декомпозиция)

  • Веса представлены всего несколькими битами (квантованными)

  • Несушки обычно изучают схожие функции (распределение веса).

Каждая из этих «простостей» связана с регуляризацией во время обучения (неявным или иным образом) или качеством обучающих данных. Когда мы знаем, что ищем решения с этими свойствами, это открывает новые захватывающие направления для улучшения наших методов оптимизации.

Sparse Networks from Scratch

Сокращение веса, вероятно, является наиболее успешным примером метода сжатия, который можно превратить в метод оптимизации. Обученная нейронная сеть обычно имеет много весов (30-95%), близких к 0. Эти веса можно удалить, не влияя на выходные данные нейронной сети.

图片

Можем ли мы уменьшить использование графического процессора, обучая разреженную нейронную сеть с самого начала, а не сокращая ее впоследствии? Какое-то время мы думали, что ответ отрицательный. Разреженные сети трудно обучаемы, среда оптимизации очень невыпуклая и недружественная.

Однако Frankel and Carbin (2018) сделали первый шаг в этом направлении. Они обнаружили, что могут переобучить обрезанную сеть с нуля, но только в том случае, если она будет повторно инициализирована до той же инициализации, которая использовалась во время плотного обучения. Их объяснением этого является гипотеза лотерейного билета: плотная сеть на самом деле представляет собой параллельную случайную комбинацию инициализации многих умеренно параметризованных разреженных моделей. Довелось получить удачную инициализацию и сошлись на решении.

图片

Совсем недавно Деттмерс и Зеттлемойер (2019), Мостафа (2019) и Эвси и др. (2019) показали, что правильно параметризованные разреженные сети можно обучать с нуля, тем самым значительно уменьшая объем памяти графического процессора, необходимый для обучения нейронных сетей. Важна не инициализация, а возможность исследовать разреженное подпространство модели. В аналогичной работе Ли и др. (2018) делается попытка быстро найти подходящую разреженную архитектуру, выполняя один проход по данным.

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

  1. Методы сжатия моделей выявляют некоторые общие избыточности в обученных нейронных сетях.
  2. Индуктивное смещение/регуляризация, вызывающая эту избыточность, исследуется.
  3. С самого начала обучения создается умный алгоритм оптимизации для обучения сети без этой избыточности.

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

图片

Future Directions

Действительно ли нам нужно сжатие модели? Название этого поста провокационно, но идея не такова: сужая границы чрезмерной параметризации и улучшая наш метод оптимизации, мы можем уменьшить или устранить необходимость в сжатии модели постфактум. Очевидно, что есть еще много открытых вопросов, на которые необходимо ответить, прежде чем мы получим окончательный ответ. Вот некоторые из вещей, которые я надеюсь осуществить в ближайшие годы.

Над параметрами

  • Можем ли мы получить более узкие границы, взглянув на качество данных (используя вычисления с низким уровнем ресурсов)?

  • Как изменится граница гиперпараметризации, если мы используем хитрые приемы оптимизации, такие как Rigged Lottery13?

  • Можем ли мы получить чрезмерно параметризованные границы для сред обучения с подкреплением?

  • Можем ли мы расширить эти диапазоны для других широко используемых архитектур (RNN, Transformers)?

оптимизация

  • Есть ли другие избыточности в обученной нейронной сети, которые мы не используем?

  • Сделайте это возможным:

    Обучите квантованную нейронную сеть с нуля.

    Обучите нейронную сеть с нуля, используя матрицы низкого ранга.

  • Выясните, почему дистилляция знаний может улучшить оптимизацию. Если возможно, используйте аналогичные идеи для оптимизации, используя меньше памяти графического процессора.

аспект регуляризации

  • Какие типы регуляризации приводят к каким типам избыточности модели?

  • Как обрезка и переобучение связаны с регуляризацией L0? Какие неявные регуляризации приводят к сокращению?

  • Какие виды регуляризации можно количественно оценить?

Оригинальная ссылка:

Митч Гордон: Это /машина/?

Эта статья взята из серии публикаций в Техническом руководстве CV для общедоступных аккаунтов.

Добро пожаловать в техническое руководство CV для общедоступной учетной записи, в котором основное внимание уделяется техническому обзору компьютерного зрения, отслеживанию новейших технологий и интерпретации классических статей.

Ответьте на ключевое слово «Техническое резюме» в официальном аккаунте, чтобы получить резюме следующих статей в формате pdf.

Другие статьи

Четкое обнаружение границ с использованием Dice loss

PVT — многофункциональная основа для плотного прогнозирования без свертки

CVPR2021 | Обнаружение объектов в открытом мире

Siamese networkСводка

Визуальное обнаружение и распознавание объектов Прошлое, настоящее и возможное

Какие концепции или методы вы освоили за свою карьеру инженера-алгоритма, которые заставляют вас чувствовать, что вы выросли как на дрожжах?

Краткое изложение терминологии компьютерного зрения (1) Создание системы знаний для компьютерного зрения

Краткое изложение методов недообучения и переобучения

Резюме методов нормализации

Краткое изложение общих идей бумажных инноваций

Резюме методов эффективного чтения англоязычной литературы по направлению CV

Обзор непродолжительного обучения компьютерному зрению

Краткий обзор дистилляции знаний

Оптимизировать скорость чтения видео OpenCV

Сводка NMS

Краткое изложение методов функции потерь

Техническое резюме механизма внимания

Краткое изложение технологии пирамиды функций

Краткое изложение технологии объединения

Краткое изложение методов увеличения данных

Резюме эволюции структуры CNN (1) Классическая модель

Резюме эволюции структуры CNN (2) Облегченная модель

Резюме эволюции структуры CNN (3) Принципы проектирования

Как увидеть будущее направление компьютерного зрения

Краткое изложение технологии визуализации CNN (1) Визуализация карты объектов

Краткое описание технологии визуализации CNN (2) Визуализация ядра свертки

Краткое изложение технологии визуализации CNN (три) визуализации

Краткое описание технологии визуализации CNN (4) инструменты и проекты визуализации