Обзор: MobileNet, ShuffleNet, SqueezeNet и EfficientNet
В эпоху, когда искусственный интеллект переходит с облачных серверов на мобильные и периферийные устройства, потребовались новые, эффективные архитектуры нейронных сетей.
Такие модели, как MobileNet, ShuffleNet, SqueezeNet и EfficientNet, стали ответом на вызовы ограниченных вычислительных ресурсов, позволяя запускать сложные задачи компьютерного зрения на смартфонах, дронах и микроконтроллерах. В этой статье мы подробно разберем принципы работы, преимущества и области применения этих компактных архитектур.
Краткий обзор компактных архитектур
Следующая таблица представляет собой сводное сравнение четырех рассматриваемых архитектур по ключевым параметрам.
Архитектура | Ключевая инновация | Основное преимущество | Типичные области применения |
---|---|---|---|
MobileNet (V1/V2) | Depthwise Separable Convolutions (V1), Inverted Residuals и Linear Bottlenecks (V2). | Оптимальное соотношение точности и скорости, широкие возможности настройки. | Классификация изображений, обнаружение объектов (SSD), распознавание лиц, дополненная реальность. |
ShuffleNet (V1/V2) | Pointwise Group Convolutions и Channel Shuffle (V1), практические guidelines для эффективности (V2). | Высокая точность при очень малом количестве операций (MFLOPs), эффективность на мобильных устройствах. | Приложения для дронов и роботов, реальное время на маломощных устройствах. |
SqueezeNet | Замена фильтров 3x3 на 1x1 и уменьшение количества входных каналов для фильтров 3x3. | Экстремально малое количество параметров (0.5 млн против 60 млн у AlexNet) при сохранении точности. | Системы с ограниченным объемом памяти, передача обучения на устройствах. |
EfficientNet | Составное масштабирование (Compound Scaling) глубины, ширины и разрешения изображения. | Государственный-арт точность при значительно меньших вычислительных затратах. | Универсальное применение в компьютерном зрении, где требуется максимальная точность и эффективность. |
MobileNet
Эффективность через раздельные свертки
Архитектура MobileNet, разработанная Google, основана на глубинных разделяемых свертках (Depthwise Separable Convolutions). Эта операция разделяет стандартную свертку на два независимых этапа:
- Глубинная свертка: применяет один фильтр 3x3 к каждому входному каналу, обрабатывая пространственные характеристики.
- Поточечная свертка: использует фильтры 1x1 для комбинации выходных каналов предыдущего шага, что позволяет управлять глубиной выходного тензора.
Такой подход позволяет значительно сократить вычислительную сложность. Для свертки с ядром 3x3 глубинные разделяемые свертки требуют в 8-9 раз меньше операций по сравнению со стандартными.
MobileNetV2 представила две ключевые инновации:
- Инвертированные остаточные блоки: в отличие от классических остаточных блоков, которые сначала сжимают, а затем расширяют каналы, в MobileNetV2 блоки сначала расширяют каналы, затем применяют глубинную свертку и снова сжимают.
- Линейные узкие места: исключение нелинейной функции активации (например, ReLU) на этапе проекции помогает избежать потери информации в низкоразмерных пространствах.
ShuffleNet
Перемешивание каналов для эффективности
ShuffleNet, представленный исследователями из Megvii (Face++), создан для устройств с очень ограниченной вычислительной мощностью (10-150 MFLOPs). Его ключевые компоненты:
- Поточечные групповые свертки (Pointwise Group Convolutions) уменьшают вычислительную стоимость операций 1x1, разделяя входные каналы на группы и обрабатывая их независимо.
- Операция перемешивания каналов (Channel Shuffle) решает проблему "блокировки" информации внутри групп, обеспечивая перераспределение каналов между группами на следующем слое, что позволяет информации свободно течь across all channels.
ShuffleNet V2 пошел дальше, сформулировав практические принципы проектирования эффективных сетей, учитывающие не только FLOPs, но и стоимость доступа к памяти и степень параллелизма.
SqueezeNet
Максимальное сжатие без потери точности
Основная цель SqueezeNet — создание архитектуры с чрезвычайно малым количеством параметров, но с точностью, сопоставимой с AlexNet. Стратегия достигается с помощью блоков Fire:
- Слой "Squeeze": использует свертки 1x1 для уменьшения количества входных каналов ("сжатие").
- Слой "Expand": комбинирует свертки 1x1 и 3x3 для обработки "сжатых" карт признаков.
Такой дизайн позволяет SqueezeNet иметь в 50 раз меньше параметров, чем AlexNet, и модель занимает всего около 4.8 МБ, что упрощает ее развертывание на устройствах с ограниченной памятью.
EfficientNet
Системный подход к масштабированию
EfficientNet предлагает принципиально новый подход к созданию семейства моделей. Вместо произвольного масштабирования глубины, ширины или разрешения, вводится метод составного масштабирования (Compound Scaling). Формула масштабирования имеет вид:
Глубина × Ширина² × Разрешение² ≈ Constant
- Глубина: количество слоев в сети.
- Ширина: количество каналов в слоях.
- Разрешение: высота и ширина входного изображения.
Этот метод, основанный на строгой математической оптимизации, позволяет EfficientNet-B7 достичь высочайшей точности, будучи в 6.1 раз быстрее и в 8.4 раза меньше, чем предыдущие state-of-the-art модели. Архитектурной основой EfficientNet является MBConv-блок (мобильный инвертированный остаточный блок), заимствованный из MobileNetV2 и дополненный механизмом внимания "Squeeze-and-Excitation" для адаптивной перекалибровки каналов.
Сравнительный анализ и выбор архитектуры
Ключевые отличия и сильные стороны
Эффективность вычислений: В то время как MobileNet и ShuffleNet фокусируются на оптимизации типа сверток, а SqueezeNet — на минимизации параметров, EfficientNet предлагает системный подход, балансируя глубину, ширину и разрешение, что приводит к превосходному соотношению точности и вычислительной стоимости.
Универсальность: MobileNet предлагает простые гиперпараметры (множитель ширины и разрешения) для тонкой настройки под конкретные задачи. EfficientNet предоставляет готовое семейство моделей (B0-B7), покрывающее широкий спектр требований к производительности.
Производительность: Согласно исследованиям, ShuffleNet превосходит MobileNet по точности при одинаковой вычислительной сложности (например, на 6.7% для сетей ~40 MFLOPs). EfficientNet же устанавливает новые стандарты точности, значительно превосходя все основные архитектуры на наборе данных ImageNet.
Практические рекомендации по выбору
Для экстремально маломощных устройств (микроконтроллеры, носимые устройства) идеально подходят ShuffleNet (особенно v2) и SqueezeNet благодаря их минимальным требованиям к памяти и вычислениям.
Для сбалансированных мобильных решений (смартфоны, планшеты) оптимальным выбором является MobileNet (особенно V2), который предлагает хороший баланс между простотой использования, точностью и скоростью.
Для достижения максимальной точности при ограниченных вычислительных ресурсах (например, для серверных решений с высокой нагрузкой) семейство EfficientNet не имеет аналогов.
Для задач передачи обучения (Transfer Learning) при ограниченном объеме памяти хорошо зарекомендовал себя SqueezeNet, чей малый размер позволяет быстро дообучать модель даже на скромном оборудовании.
Заключение и перспективы
Эволюция компактных архитектур от точечных оптимизаций (SqueezeNet, MobileNet) к перекрестному обмену информацией (ShuffleNet) и системному масштабированию (EfficientNet) демонстрирует растущую зрелость подхода к проектированию нейронных сетей. Эти архитектуры заложили фундамент для нового этапа развития ИИ — повсеместного (Ubiquitous AI), когда интеллектуальные алгоритмы работают не в облаке, а непосредственно на устройствах, обеспечивая мгновенную реакцию, конфиденциальность данных и работу без подключения к сети.
Будущие разработки, вероятно, будут еще больше учитывать прямые метрики производительности (например, реальную скорость на целевом оборудовании), как это начато в ShuffleNet V2, а также активнее использовать методы нейроархитектурного поиска (NAS) для автоматического создания оптимальных моделей под конкретные аппаратные платформы и задачи.
Опубликовано: