Первый взгляд на BoTNet: трансформеры узкого места для визуального распознавания
разные разговоры
В последнее время мое мышление было немного негативным, я очень запутался в своем будущем, я не знаю, что делать, и я обеспокоен серьезной инволюцией в отрасли.Прочитав несколько статей, я не стал писать резюме статьи, из-за чего я иногда мало что делаю.Причина обновления. Отказывая себе, давая себе силы. Может быть, путь научного исследования состоит в том, чтобы двигаться вперед во тьме, нам нужно дать себе свет или быть самим себе солнцем. Когда у меня негатив, я обычно читаю книгу, сериал или фильм, иду на прогулку или занимаюсь спортом. Жизнь бесценна, и, возможно, есть вещи, которые мы не можем изменить. Но как улучшить себя, решать нам. В будущем вас ждет бесчисленное количество хороших вещей, ожидающих встречи с лучшим вами. Пожалуйста, верьте, что пролитый вами пот, прочитанные книги, пройденные вами дороги и горы, которые омолаживают вашу страну, в конце концов вернутся к вам.
предисловие
Bottleneck Transformers for Visual Recognition
BoTNet: простая, но мощная магистраль, эта архитектура включает самостоятельное внимание в различные задачи компьютерного зрения, включая классификацию изображений, обнаружение объектов и сегментацию экземпляров. Этот метод значительно улучшает базовые показатели сегментации экземпляров и обнаружения объектов, а также уменьшает параметры для минимизации задержки.
Инновации Слева — структура узкого места ResNet, а справа — узкое место, которое вводит многоголовое самовнимание, называемое BoT. Единственная разница между ними заключается в свёртке 3*3 и MHSA, а в остальных нет никакой разницы. Когда ResNet50 в Mask RCNN добавляется к BoT, а другие гиперпараметры остаются неизменными, AP маски пляжной метки сегментации экземпляра COCO увеличивается на 1,2%.
В статье модифицируется классическая сеть ResNet, заменяется свертка 3 * 3 в узком месте ResNet на Multi-Head Self-Attention, а остальные не модифицируются. Это простое изменение может повысить производительность.
BoTNet представляет собой гибридную модель (CNN + Transformer). Недавно Huawei Noah также предложила CMT с использованием этой гибридной модели.
CMT: Convolutional Neural Networks Meet Vision Transformers
DeiT напрямую разбивает входное изображение на неперекрывающиеся блоки изображения, а структурная информация блоков изображения слабо моделируется линейной проекцией. Используя базовую архитектуру, аналогичную ResNet, он состоит из трех сверток 3 * 3, но функция активации использует GELU вместо ReLU ResNet.
Подобно классической архитектуре CNN (например, ResNet), предлагаемый CMT содержит четыре этапа для создания многомасштабных функций (которые очень важны для задач плотного прогнозирования). Для создания иерархических представлений используются свертки, чтобы уменьшить разрешение признаков и увеличить размерность канала перед началом каждого этапа. На каждом этапе несколько модулей CMT объединяются для преобразования функций при сохранении неизменного разрешения функций, и каждый модуль CMT может одновременно фиксировать как локальные, так и долгосрочные зависимости. В конце модели мы используем GAP+FC для классификации.
В приведенной выше таблице показано сравнение производительности предлагаемого метода с другими CNN и трансформаторами, из которого мы можем видеть:
- Предлагаемый CMT обеспечивает лучшую точность с меньшим количеством параметров и меньшей вычислительной сложностью;
- Предложенный CMT-S обеспечивает максимальную точность 83,5% с 4,0 млрд FLOP, что на 3,7% выше, чем у DeiT-S, и на 2,0% выше, чем у CPVT;
- Предлагаемый CMT-S превосходит EfficientNet-B4 на 0,6% при меньшей вычислительной сложности.
Обзор ResNet
Приглашаем вас ознакомиться с компьютерным видением серии статей — ResNet
ResNet был предложен Microsoft Labs в 2015 году и в том же году занял первое место в задаче классификации и первое место в обнаружении целей в конкурсе ImageNet. Он занял первое место в обнаружении объектов и сегментации изображений в наборе данных COCO.
Примечание. Форма матрицы выходных признаков основной ветви и ярлыка должна быть одинаковой.
Структура сети уровня ResNet-34
Самое интересное из сети:
- Сверхглубокая сетевая структура (прорыв через 1000 слоев)
- Предложите остаточный модуль
- Ускорьте обучение с помощью пакетной нормализации (отсева)
Сеть не чем глубже, тем лучше.
причина:
- Градиент исчезает или градиент взрывается
- проблема деградации
Проблему исчезающих или взрывающихся градиентов можно решить путем нормализации данных, инициализации весов и обработки BN. Проблема деградации позволяет достичь лучших результатов за счет постоянного углубления сети через остаточную структуру.
Детальный ботнет
Левую сторону можно рассматривать как традиционную модель Трансформера, середина — главный герой этой статьи BoTNet, а правая картинка — блок BoT.
Узкое место ResNet со слоем MHSA можно рассматривать как блок Transformer с узким местом. , но есть некоторые тонкие различия, такие как остаточные соединения, выбор слоя нормализации и т. д.
Разница между MHSA в Transformer и MHSA в BoTNet:
1. Нормализация. Transformer использует нормализацию уровня, а BoTNet использует нормализацию партии.
2. Нелинейная активация, Transformer использует только одну нелинейную активацию. В блочном модуле FPN BoTNet использует 3 нелинейные активации.
3. Выходная проекция. MHSA в Transformer содержит выходную проекцию, а BoTNet — нет.
4. Оптимизатор, Transformer использует оптимизатор Adam для обучения, BoTNet использует импульс sgd+
Алгоритм оптимизации глубокого обучения прошел процесс разработки SGD -> SGDM -> NAG -> AdaGrad -> AdaDelta -> Adam -> Nadam.
Алгоритмы прекрасны, но данные — это основа.
Сначала используйте Адама для быстрого сброса, затем используйте SGD для настройки.
-
什么时候切换优化算法?——如果切换太晚,Adam可能已经跑到自己的盆地里去了,SGD再怎么好也跑不出来了。
-
切换算法以后用什么样的学习率?——Adam用的是自适应学习率,依赖的是二阶动量的累积,SGD接着训练的话,用什么样的学习率?
Некоторые хитрости по выбору и использованию алгоритмов оптимизации 1. Во-первых, нет вывода о том, какие алгоритмы лучше или хуже. Если вы только начинаете, отдайте приоритет SGD+Nesterov Momentum или Adam (Standford 231n: рекомендуется использовать два обновления: SGD+Nesterov Momentum или Adam);
2,Выберите алгоритм, с которым вы знакомы- Таким образом, вы можете использовать свой опыт для более искусной настройки параметров.
3.Полностью понять ваши данные- Если модель очень разреженная, отдайте предпочтение алгоритмам с адаптивной скоростью обучения.
4.Выберите в соответствии с вашими потребностями—— В процессе эксперимента по проектированию модели, чтобы быстро проверить влияние новой модели, Адам можно использовать для быстрой экспериментальной оптимизации; перед запуском модели или публикацией результатов можно использовать точно настроенный SGD для оптимизации. модель.
5. Сначала поэкспериментируйте с небольшим набором данных. Некоторые исследования показали, что скорость сходимости алгоритма стохастического градиентного спуска мало связана с размером набора данных. (Математика стохастического градиентного спуска поразительно не зависит от размера обучающей выборки. В частности, скорость асимптотической сходимости SGD не зависит от размера выборки. [2]) Таким образом, можно сначала поэкспериментировать с небольшим репрезентативным набором данных. лучший алгоритм оптимизации и найти оптимальные параметры обучения с помощью поиска параметров.
6.Рассмотрим комбинацию различных алгоритмов. Сначала используйте Adam для быстрого спуска, а затем переключитесь на SGD для полной настройки. Стратегия переключения может относиться к методу, представленному в этой статье.
7. Набор данных должен быть полностью перемешан. Таким образом, при использовании алгоритма адаптивной скорости обучения можно избежать появления определенных наборов функций, что иногда приводит к избыточному обучению, а иногда к недостаточному обучению, что приводит к отклонению в нисходящем направлении.
8, во время тренировкиНепрерывный мониторинг данных обучения и проверкиЗначение целевой функции и изменение точности или AUC и других показателей. Мониторинг обучающих данных заключается в том, чтобы убедиться, что модель полностью обучена — направление спуска правильное, а скорость обучения достаточно высока; мониторинг проверочных данных — во избежание переобучения.
9,Разработайте соответствующую стратегию снижения скорости обучения. Вы можете использовать стратегию периодического затухания, например затухание каждой эпохи, или использовать показатели производительности, такие как точность или AUC, для мониторинга и снижения скорости обучения, когда показатели на тестовом наборе остаются неизменными или падают.
На картинке выше показана разница между ResNet-50 и BoTNet-50, разница только в c5. При этом количество параметров BoTNe-50t всего в 0,82 раза больше, чем у ResNet-50, но время шага несколько увеличено.
Только остаточная структура в блоке c5 ResNet заменяется структурой MHSA.
Результаты экспериментов
BoTNet vs ResNetУстановите стратегию обучения: тренировочный цикл определяется как 12 эпох и так далее. Многомасштабный джиттер более полезен для BoTNet Это многомасштабное изменение разрешения. Из приведенного выше рисунка можно сделать вывод, что чем больше разрешение изображения, тем выше его производительность.
Присоединяйсяrelative position encodings, но и для дальнейшего повышения производительности!
Первая строка — это оригинальный ResNet без добавления R50 в ночное время; вторая строка добавляет только механизм самоконтроля, улучшенный на 0,6; третья строка добавляет только кодирование относительного положения. Кодирование относительного положения немного более освежает, чем механизм самоконтроля. В четвертой строке добавлены механизм внутреннего внимания и кодирование относительного положения, а производительность улучшена в 1,5 раза; пятая строка улучшена только на 0,4 при добавлении механизма внутреннего внимания и кодирования абсолютного положения.
Этот график представляет собой график сравнения производительности нескольких сетей. BoTNet — красная линия, SENet — черная линия, а EfficientNet — синяя линия. Производительность T3 и T4 немного хуже, чем у SENet, а на T5 производительность обоих одинакова. Это приводит к чистой сверточной модели, которая может достигать точности 83%. Точность Т7 достигает 84,7%, что сравнимо с точностью EfficientNet B7, а эффективность повышается в 1,64 раза, производительность BoTNet лучше, чем у DeiT-384.
BoTNet хочет заменить сверточный код 3*3 в ResNetЧасть кода MHSA
Суммировать
- Без каких-либо условий BoTNet достигает 44,4% MaskAP и 49,7% Box AP в эталонном тесте сегментации экземпляров COCO с использованием инфраструктуры Mask R-CNN;
- Сверточные и гибридные (сверточные и самостоятельные) модели по-прежнему являются сильными моделями;
- ImageNet Botnet вверх в топе-1 на 84,7% точности, производительность лучше, чем SENET, EFFECTIONNETNET и т. Д.
Есть статьи с идеями, похожими на эту статью, а также вариант ResNet с открытым исходным кодом CoTNet от JD AI — модуль визуального распознавания plug-and-play.
Исследование механизма внутреннего внимания командой Мэй Тао из Исследовательского института искусственного интеллекта Jingdong отличается от существующего механизма внимания, который использует только локальные или глобальные способы получения контекстной информации.Они творчески объединяют динамическую контекстную информацию механизма внутреннего внимания. в Transformer, Интегрированный со сверточной статической контекстуальной агрегацией информации, предлагается новый модуль CoT в стиле Transformer «включай и работай», который может напрямую заменить свертки в существующем узком месте архитектуры ResNet и добиться значительного повышения производительности. Будь то классификация ImageNet или обнаружение и сегментация COCO, предлагаемая архитектура CoTNet обеспечивает значительное повышение производительности и поддерживает тот же уровень параметров, что и FLOP. Например, по сравнению с 84,3% EfficientNet-B6, предлагаемый SE-CoTNetD-152 достигает 84,6% и имеет в 2,75 раза более высокую скорость вывода.
С «модулем CoT» он может напрямую заменить свертку в существующем узком месте архитектуры ResNet и добиться значительного повышения производительности. Будь то классификация ImageNet или обнаружение и сегментация COCO, предлагаемая архитектура CoTNet обеспечивает значительное повышение производительности и поддерживает тот же уровень параметров, что и FLOP. Например, по сравнению с 84,3% EfficientNet-B6, предлагаемый SE-CoTNetD-152 достигает 84,6% и имеет в 2,75 раза более высокую скорость вывода.
В частности, CoTNet-50 напрямую использует CoT для замены свертки в Bottlenck, аналогично, CoTNeXt-50 использует модуль CoT для замены соответствующей групповой свертки.Чтобы получить аналогичный объем вычислений, корректируется количество каналов и групп: CoTNeXt Количество параметров -50 в 1,2 раза больше, чем у ResNeXt-50, и в 1,01 раза больше, чем у FLOP.
можно увидеть:
- Предлагаемые CoTNet и CoTNeXt имеют лучшую производительность, чем другие улучшенные версии ResNet;
- По сравнению с ResNeSt-50 и ResNeSt-101 предложенные CoTNeXt-50 и CoTNeXt-101 достигли повышения производительности на 1,0% и 0,9% соответственно;
- По сравнению с BoTNet предлагаемый CoTNet также имеет лучшую производительность; даже SE-CoTNetD-152 (320) обеспечивает лучшую производительность, чем BoTNet-S1-128 (320) и EfficientNet-B7.