fbpx
  • MorphNet от Google: open source нейросеть для оптимизации нейросетей

    morphnet

    Google AI представила модель MorphNet, которая берет на вход любую нейронную сеть и оптимизирует ее так, чтобы она имела большую скорость, меньший размер и лучшую производительность без потери качества модели в решении поставленной задачи.

    Принцип работы

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

    В качестве примера рассмотрим, как MorphNet вычисляет стоимость вычислений (например, FLOP ) нейронной сети. Для этого представим слой нейронной сети в виде матричного умножения. В этом случае слой имеет 2 входа ( xn ), 6 весов ( a , b , …, f ) и 3 выхода ( yn) — нейроны. Используя стандартный метод умножения строк и столбцов, вы можете определить, что для оценки этого слоя требуется 6 умножений. MorphNet считает это значение, как произведение количества входных данных на количество выходных.

    Вычисление стоимости нейронов в MorphNet
    Вычисление стоимости нейронов

    В примере слева показана разреженность весов, где 2 из 6 весов равны 0, в таком случае все равно необходимо выполнить все умножения, чтобы оценить этот слой. Средний пример показывает структурированную разреженность, где все веса в строке для нейрона yn равны 0. MorphNet распознает, что новый размер выхода равен 2, а число умножений уменьшилось с 6 до 4. Используя эту идею, MorphNet определяет стоимость каждого нейрона в сети, чтобы создать более эффективную модель (справа), где нейрон y3 был удален. 

    На этапе расширения используется множитель ширины для равномерного расширения размеров всех слоев. Например, если произойдет расширение на 50%, то неэффективный слой, который начался со 100 нейронов и сократился до 10, расширится только до 15. В то же время время важный слой, который сократился только до 80 нейронов, расширится до 120 и будет иметь больше ресурсов для работы. Таким образом, происходит перераспределение вычислительных ресурсов из менее эффективных частей сети в более эффективные.

    Особенности

    MorphNet содержит четыре основных особенности:

    • Целевая регуляризация. Подход MorphNet нацелен на сокращение конкретного ресурса (например, FLOP на выходе или размер модели).
    Целевая регуляризация MorphNet
    Целевая регуляризация MorphNet. Слева: базовая сеть, используемая в качестве входных данных для MorphNet, в центре: вывод с применением регулятора FLOP, справа: вывод с применением регулятора размера модели.
    • Масштабируемость. MorphNet изучает новую структуру за один проход обучения и работает как с маленькими так и с очень большими сетями.
    • Переносимость. MorphNet создает сети, которые являются «переносимыми» в том смысле, что они предназначены для повторного обучения с нуля, а веса не привязаны к процедуре обучения архитектуры. Вам не нужно беспокоиться о копировании контрольных точек или следовании специальным рецептам обучения. Просто тренируйте свою новую сеть, как обычно!
    • Изменение топологии. Удаление ненужных нейронов.
    Слева: MorphNet может удалять остаточные соединения (residual connections) в сетях в стиле ResNet, справа: он также может удалять параллельные башни в сетях в стиле Inception.

    Результаты

    В качестве демонстрации модель применили к Inception V2, обученной на ImageNet, выбрав в качестве целевого ресурса FLOP. Базовый подход заключается в использовании множителя ширины для компромисса между точностью и значением FLOP путем равномерного уменьшения количества выходов для каждой свертки (красный тренд на графике ниже). Подход MorphNet дает лучшую кривую компромисса при сжатии модели (синий тренд на графике ниже). В этом случае стоимость FLOP снижается с 11% до 15% с той же точностью по сравнению с baseline-моделью.

    MorphNet в применении к Inception V2 на ImageNet
    MorphNet в применении к Inception V2 на ImageNet. Применение только регуляризатора FLOP (синего цвета) повышает производительность относительно baseline-модели (красного цвета) на 11-15%. Полный цикл, включающий в себя как регуляризатор, так и множитель ширины, приводит к увеличению точности при той же стоимости модели («x1»; фиолетовый) и с постоянным улучшением со второго цикла («x2»; голубой).

    Также тесты были проведены на других моделях. Результаты представлены в таблице ниже.

    Результат применения MorphNet для различных датасетов и архитектур моделей при сохранении стоимости FLOP.
    Результат применения MorphNet для различных датасетов и архитектур моделей при сохранении стоимости FLOP.