Последние достижения и идеи в области сжатия моделей нейронных сетей с помощью Pruning

Обрезка нейронной сети (NN) - это задача уменьшения размера нейронной сети путем удаления некоторых ее параметров / весов.

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

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

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

2020 год был отличным годом для исследований NN Pruning, и в этой статье обсуждаются шесть новых подходов / идей, опубликованных на ведущих рецензируемых конференциях ICLR, ICML и NeurIPS в 2020 году.

Предварительные сведения к исследованию обрезки NN

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

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

  1. Структурированная и неструктурированная обрезка

Если веса NN обрезаются индивидуально в процессе обрезки, это называется неструктурированным обрезанием.

Обнуление параметров случайным образом дает эффективность памяти (модель хранится в разреженных матрицах), но не всегда может дать лучшую вычислительную производительность, поскольку в конечном итоге мы выполняем то же количество умножений матриц, что и раньше. Поскольку размеры матрицы не изменились, они просто редкие. Хотя мы могли бы получить вычислительные преимущества, заменив умножение плотных матриц умножением разреженных матриц, ускорить разреженные операции на традиционных графических процессорах / TPU нетривиально.

В качестве альтернативы, в структурированном сокращении параметры удаляются структурированным образом, чтобы сократить общие требуемые вычисления. Например, некоторые каналы CNN или нейронов в слое прямого распространения удаляются, что напрямую сокращает объем вычислений.

2. Оценка параметров

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

3. Одноразовый против итеративного

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

4. Планирование обрезки и точной настройки

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

Структурированная обрезка нейронов с использованием регуляризатора поляризации (NeurIPS 2020)

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

А чтобы сократить модель, все фильтры / нейроны с коэффициентом масштабирования меньше порогового значения удаляются, тем самым выполняя структурированное сокращение.

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

Эта работа показывает, что регуляризатор L1 неэффективен в противопоставлении полезных и бесполезных фильтров / нейронов и пытается устранить эту неэффективность.

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

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

В частности, эта работа добавляет к регуляризатору L1 член, который является максимальным, когда все коэффициенты масштабирования близки друг к другу, сдвигая коэффициенты масштабирования к двум крайним значениям.

Результаты и выводы: Предлагаемый метод лучше, чем многие другие методы, за счет сокращения FLOP, необходимых для ResNet-50, на 54% с падением точности всего на 0,52. Авторы даже показывают, что они могут сократить и без того эффективный MobileNet V2 на 28% с уменьшением точности всего на 0,2.

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

Сравнение перемотки и точной настройки в сокращении нейронной сети (ICLR 2020)

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

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

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

Если оставшаяся сеть переобучается с весами при инициализации (путем перемотки), а не с обученными весами, это называется перемоткой. Обратите внимание, что во время перемотки, поскольку веса являются фактическими весами инициализации сети перед обучением, график скорости обучения запускается заново, как будто это начало обучения, только теперь с небольшой сокращенной сетью.

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

Результаты и заключение: Показано, что расписание скорости обучения и перемотка более эффективны, чем точная настройка на наборах данных CIFAR-10, ImageNet и WMT16 со стандартной архитектурой. Показано, что такое поведение является последовательным, независимо от того, является ли это структурированной или неструктурированной обрезкой, а также однократной или итеративной обрезкой.

Обрезка фильтра в фильтре (NeurIPS 2020)

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

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

Баланс между структурой и разреженностью используется не полностью. Эта работа показывает важность этого, замечая, что полезны только некоторые части конкретного фильтра. Авторы доказывают, что убирать фильтр целиком неэффективно.

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

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

Предлагаемый метод снижает требуемые FLOP для ResNet-18 в наборе данных ImageNet на 50,4%, увеличивая точность на 0,23%.

Удаление нейронных сетей без каких-либо данных путем итеративного сохранения синаптического потока (NeurIPS 2020)

Серьезная проблема: методы сокращения при инициализации без какого-либо обучения вообще неэффективны.

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

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

Результаты и заключение: Syn-Flow стабильно превосходит предыдущие методы обрезки при инициализации в 12 комбинациях наборов данных и моделей. См. Рисунок ниже.

Гипотеза лотерейных билетов для предварительно обученных сетей BERT (NeurIPS 2020)

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

Предлагаемое решение: авторы использовали итеративное отсечение величины (IMP) и попытались найти лотерейные билеты на основе предварительно обученной модели BERT.

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

Лотерейный билет здесь является подсетью исходной предварительно обученной модели BERT, которая показывает аналогичную производительность. Обратите внимание, что веса лотерейного билета и предварительно обученной модели BERT одинаковы, если лотерейный билет не сокращается из-за перемотки в IMP.

Результаты и заключение. Эта работа показывает, что гипотеза лотерейного билета верна и для предварительно обученных моделей BERT. Он также обнаружил, что подсети с разреженностью от 40% до 90% для ряда последующих задач.

В работе, аналогичной этой, показано, что лотерейные билеты существуют также для NLP и RL. См. Статью Игра в лотерею с призами и на нескольких языках: лотерейные билеты в РЛ и НЛП.

HYDRA: сокращение состязательных нейронных сетей (NeurIPS 2020)

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

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

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

Поиск оптимальной маски отсечения сформулирован как оптимизация на основе оценки важности, при которой значения оценок для различных весов могут иметь оценку важности с плавающей запятой от 0 до 1. После оптимизации веса с более низкими оценками важности удаляются.

Результаты и заключение: Предлагаемый метод обрезки сокращает сеть, демонстрируя меньшее снижение точности надежности по сравнению со специализированным методом обрезки LVM.

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

Этот метод демонстрирует современную производительность с ResNet50 в ImageNet с обучением противников.

Заключение и дальнейшая работа

Исследования Neural Network Pruning становятся все более научными и точными. Одна из причин, несомненно, заключается во взаимодействии между широким внедрением методов глубокого обучения в компьютерном зрении и НЛП и в других областях и растущим объемом памяти, энергии и вычислительных ресурсов, необходимых для современных методов.

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

И, как и в любой другой области, которая является научной и строгой, исследование Pruning готово стать более объективным / авторитетным (в отличие от очень ограниченного сравнительного анализа), с проверкой новых методов на различных наборах данных, архитектурах и доменах, а не только на них, как во многих случаях встречается набор данных ImageNet с вариантом ResNet. Это даст нам много информации о том, как работать с методами глубокого обучения для решения различных задач даже в средах с низким уровнем ресурсов.

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

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

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить модели машинного обучения.