В рамках ICML 2019 была опубликована работа, в которой исследователи предлагают метод для оптимизации сверточных нейросетей. Предыдущие методы произвольно масштабировали размерность нейросети (например, количество слоев и параметров). Предложенный метод равномерно масштабирует части нейросети с фиксированными коэффициентами масштабирования. Оптимизированные сети (EfficientNets) обходят state-of-the-art подходы по точности при увеличении эффективности в 10 раз (меньше и быстрее).
Оптимизации сверточных сетей
Чтобы понять, как влияет на точность и скорость модели масштабирование отдельных частей, исследователи с помощью grid search меняли параметры начальной сети с фиксированным ограничением по количеству операций с плавающей запятой в секунду. Эти ограничения определяли коэффициенты масштабирования для оптимизации размера нейросети до определенного размера.
Предложенный метод (compound scaling) улучшал точность модели и ее эффективность на +1.4% для MobileNet на датасете ImageNet и на +0.7% для ResNet в сравнении с другими методами масштабирования.
Архитектура EfficientNet
Эффективность масштабирования нейросети зависит от ее начальной архитектуры. Чтобы улучшить работу нейросети, исследователи выбирали начальную архитектуру автоматически с помощью AutoML фреймворка — MNAS. MNAS при выборе устройства нейросети оптимизирует и точность модели, и ее размер одновременно (FLOPS). В итоге начальная модель использовала архитектуру MBConv, схожую с MobileNetV2 и MnasNet. Начальная модель затем масштабировалась и породила класс EfficientNets моделей.
Сравнительные эксперименты
Исследователи сравнили работу существующих сверточных архитектур на ImageNet. EfficientNet модели значительно превосходят конкурирующие архитектуры. EfficientNet-B7 обогнала рассмотренные сверточные архитектуры и стала топ-1 по точности для задачи. EfficientNet-B1 в 7.6x меньше и в 5.7x быстрее ResNet-152.