Линьсяо Янг, Ру-Юань Чжан, Лида Ли, Сяочжао Цзиэ
В данной работе мы предлагаем концептуально простой, но очень эффективный модуль внимания для свёрточных нейронных сетей (CNN). В отличие от существующих модулей внимания канального и пространственного уровней, наш модуль вычисляет 3-D веса внимания для карты признаков в слое, не добавляя параметров к исходной сети. Конкретнее, мы основываемся на некоторых хорошо известных теориях нейробиологии и предлагаем оптимизировать функцию энергии для нахождения важности каждого нейрона. Мы также выводим быстрое аналитическое решение для этой функции энергии и показываем, что это решение можно реализовать менее чем за десять строк кода. Другим преимуществом нашего модуля является то, что большинство операторов выбраны на основе решения определённой функции энергии, что позволяет избежать чрезмерных усилий для настройки архитектуры. Квантификационные оценки на различных визуальных задачах демонстрируют гибкость и эффективность предложенного модуля для улучшения способности представления многих CNN. Наш код доступен по адресу Pytorch-SimAM.
Наша цель — вывести 3-D веса внимания (рисунок (c)), используя данную карту признаков, что значительно отличается от предыдущих работ, как показано на рисунке (a) и (b).
SimAM (реализация на PyTorch). Подробности реализации, включая модуль и сеть, можно найти в папке networks
этого репозитория.
class SimAM(nn.Module):
# X: входные данные [N, C, H, W]
# lambda: коэффициент λ в уравнении (5)
def forward(self, X, lambda):
# размер пространства
n = X.shape[2] * X.shape[3] - 1
# квадрат (t - u)
d = (X - X.mean(dim=[2,3])).pow(2)
# d.sum() / n — это вариация канала
v = d.sum(dim=[2,3]) / n
# E_inv группирует все важности X
E_inv = d / (4 * (v + lambda)) + 0.5
# вернуть обработанные признаки
return X * torch.sigmoid(E_inv)
Далее приведены команды для обучения моделей на ImageNet с нуля с использованием 4 GPU.
# Обучение с нуля
python main_imagenet.py {путь до ImageNet} --gpu 0,1,2,3 --epochs 100 -j 20 -a resnet18
python main_imagenet.py {путь до ImageNet} --gpu 0,1,2,3 --epochs 100 -j 20 -a resnet18
--attention_type simam --attention_param 0.1
python main_imagenet.py {путь до ImageNet} --gpu 0,1,2,3 --epochs 150 -j 20 -a mobilenet_v2
--attention_type simam --attention_param 0.1 --lr .05 --cos_lr --wd 4e-5
# Оценка обученной модели
python main_imagenet.py {путь до ImageNet} --gpu 0,1,2,3 -j 20 -a resnet18 -e
--resume {путь до предобученного .pth}
Все следующие модели могут быть скачаны с BaiduYunPan (код для распаковки: 25tp) и Google Drive.
Модель | Параметры | FLOPs | Top-1(%) | Top-5(%) |
---|---|---|---|---|
SimAM-R18 | 11.69 М | 1.82 Г | 71.31 | 89.88 |
SimAM-R34 | 21.80 М | 3.67 Г | 74.49 | 92.02 |
SimAM-R50 | 25.56 М | 4.11 Г | 77.45 | 93.66 |
SimAM-R101 | 44.55 М | 7.83 Г | 78.65 | 94.11 |
SimAM-RX50 (32x4d) | 25.03 М | 4.26 Г | 78.00 | 93.93 |
SimAM-MV2 | 3.50 М | 0.31 Г | 72.36 | 90.74 |
Мы используем mmdetection для обучения Faster RCNN и Mask RCNN для детекции объектов и сегментации экземпляров. Если вы хотите запустить следующие модели, пожалуйста, установите mmdetection
согласно руководству. И затем поместите все .py
из mmdetection данного репозитория в соответствующие папки. Все следующие модели могут быть скачаны с BaiduYunPan (код для распаковки: ysrz) и Google Drive.
Модель | AP | AP_50 | AP_75 | AP_S | AP_M | AP_L |
---|---|---|---|---|---|---|
FR-SimAM-R50 | 39.2 | 60.7 | 40.8 | 22.8 | 43.0 | 50.6 |
FR-SimAM-R101 | 41.2 | 62.4 | 45.0 | 24.0 | 45.6 | 52.8 |
MR-SimAM-R50 | 39.8 | 61.0 | 43.4 | 23.1 | 43.7 | 51.4 |
MR-SimAM-R101 | 41.8 | 62.8 | 46.0 | 24.8 | 46.2 | 53.9 |
Модель | AP | AP_50 | AP_75 | AP_S | AP_M | AP_L |
---|---|---|---|---|---|---|
MR-SimAM-R50 | 36.0 | 57.9 | 38.2 | 19.1 | 39.7 | 48.6 |
MR-SimAM-R101 | 37.6 | 59.5 | 40.1 | 20.5 | 41.5 | 50.8 |
Если вам полезна модель SimAM в вашем исследовании, пожалуйста, рассмотрите возможность цитирования:
@InProceedings{pmlr-v139-yang21o,
title = {SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks},
author = {Yang, Lingxiao and Zhang, Ru-Yuan and Li, Lida and Xie, Xiaohua},
booktitle = {Proceedings of the 38th International Conference on Machine Learning},
pages = {11863--11874},
year = {2021},
editor = {Meila, Marina and Zhang, Tong},
volume = {139},
series = {Proceedings of Machine Learning Research},
month = {18--24 Jul},
publisher = {PMLR},
pdf = {http://proceedings.mlr.press/v139/yang21o/yang21o.pdf},
url = {http://proceedings.mlr.press/v139/yang21o.html}
}
Если у вас есть предложения или вопросы, вы можете связаться с нами по адресу: lingxiao.yang717@gmail.com. Благодарим за внимание!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )