MorphNet от Google: open source нейросеть для оптимизации нейросетей |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-04-23 17:07 Google AI представила модель MorphNet, которая берет на вход любую нейронную сеть и оптимизирует ее так, чтобы она имела большую скорость, меньший размер и лучшую производительность без потери качества модели в решении поставленной задачи. Принцип работы MorphNet оптимизирует нейронную сеть через цикл сокращающихся и расширяющихся фаз. В фазе сокращения MorphNet выявляет неэффективные нейроны и удаляет их из сети, применяя разрежающий регуляризатор так, чтобы полная функция потерь сети включала в себя потери с каждого нейрона. Вместо единого штрафа на нейроны, MorphNet рассчитывает штраф в зависимости от стоимости нейрона по отношению к целевому ресурсу. Так, по ходу обучения рассчитывается, какие нейроны являются ресурсоэффективными, а какие могут быть удалены. В качестве примера рассмотрим, как MorphNet вычисляет стоимость вычислений (например, FLOP ) нейронной сети. Для этого представим слой нейронной сети в виде матричного умножения. В этом случае слой имеет 2 входа ( xn ), 6 весов ( a , b , …, f ) и 3 выхода ( yn) — нейроны. Используя стандартный метод умножения строк и столбцов, вы можете определить, что для оценки этого слоя требуется 6 умножений. MorphNet считает это значение, как произведение количества входных данных на количество выходных. В примере слева показана разреженность весов, где 2 из 6 весов равны 0, в таком случае все равно необходимо выполнить все умножения, чтобы оценить этот слой. Средний пример показывает структурированную разреженность, где все веса в строке для нейрона yn равны 0. MorphNet распознает, что новый размер выхода равен 2, а число умножений уменьшилось с 6 до 4. Используя эту идею, MorphNet определяет стоимость каждого нейрона в сети, чтобы создать более эффективную модель (справа), где нейрон y3 был удален. На этапе расширения используется множитель ширины для равномерного расширения размеров всех слоев. Например, если произойдет расширение на 50%, то неэффективный слой, который начался со 100 нейронов и сократился до 10, расширится только до 15. В то же время время важный слой, который сократился только до 80 нейронов, расширится до 120 и будет иметь больше ресурсов для работы. Таким образом, происходит перераспределение вычислительных ресурсов из менее эффективных частей сети в более эффективные. Особенности MorphNet содержит четыре основных особенности:
Результаты В качестве демонстрации модель применили к Inception V2, обученной на ImageNet, выбрав в качестве целевого ресурса FLOP. Базовый подход заключается в использовании множителя ширины для компромисса между точностью и значением FLOP путем равномерного уменьшения количества выходов для каждой свертки (красный тренд на графике ниже). Подход MorphNet дает лучшую кривую компромисса при сжатии модели (синий тренд на графике ниже). В этом случае стоимость FLOP снижается с 11% до 15% с той же точностью по сравнению с baseline-моделью. Также тесты были проведены на других моделях. Результаты представлены в таблице ниже. Источник: neurohive.io Комментарии: |
|