Hire-MLP: Vision MLP via Hierarchical Rearrangement
Оригинальный документ:у-у-у. yuque.com/pulllingheads/papers…
Эта статья очень хорошая прочитанная, никаких сложных слов и предложений, от начала до конца очень гладко. Очень нравится стиль письма.
Понимание статей из тезисов
This paper presents Hire-MLP, a simple yet competitive vision MLP architecture via hierarchical rearrangement.
проблема:
- что это? Упрощенная стратегия обработки для пространственного MLP.
- Зачем? Разделяй и властвуй, упрощай обработку.
- Как сделать? Исходное недифференцированное глобальное пространство MLP заменяется локальной обработкой перед ассоциированием каждой области.
Previous vision MLPs like MLP-Mixer are not flexible for various image sizes and are inefficient to capture spatial information by flattening the tokens.
Цель этой статьи:
- Убрать зависимость предыдущего метода MLP от размера входных данных
- Более эффективный способ захвата пространственной информации
Hire-MLP innovates the existing MLP-based models by proposing the idea of hierarchical rearrangement to aggregate the local and global spatial information while being versatile for downstream tasks.
Интеграция локальной и глобальной пространственной информации: Local может полагаться на операции свертки; в контексте MLP, как следует обрабатывать глобальную пространственную информацию, если пространственный MLP не используется? Может быть, это операция по объединению? ——С тыльной стороны это на самом деле больше похоже на метод обработки SwinTransformer, который плотно связан в локальной области, а затем связан с каждой областью. Он более общий для последующих задач (обнаружение сегментации и т. д.), что показывает, что метод в этой статье будет иметь многомасштабную структуру. Так как же здесь обрабатывается субдискретизация функций? Объединение? шагала свертка? Или патч фьюжн? - Из бумаги используется шаговая свертка.
Specifically, the inner-region rearrangement is designed to capture local information inside a spatial region. Moreover, to enable information communication between different regions and capture global context, the cross-region rearrangement is proposed to circularly shift all tokens along spatial directions.
Это похоже на обработку SwinTransformer.После локальной обработки выполняется глобальное смещение, чтобы связать каждую область.
The proposed HireMLP architecture is built with simple channel-mixing MLPs and rearrangement operations, thus enjoys high flexibility and inference speed.
Обработка здесь, по-видимому, не затрагивает пространственный MLP, так как же он обрабатывается внутри локальной области?
Experiments show that our Hire-MLP achieves state-of-the-art performance on the ImageNet-1K benchmark. In particular, Hire-MLP achieves an 83.4% top-1 accuracy on ImageNet, which surpasses previous Transformer-based and MLP-based models with better trade-off for accuracy and throughput.
основное содержание
Видно, что основное изменение заключается в том, что исходный пространственный MLP заменяется модулем Hire.
Hierarchical Rearrangement
Здесь обработка основана на площади, поэтому блок необходимо разделить по оси H и оси W в модуле.
Операция перестановки здесь разнесена по двум измерениям, одно по высоте, другое по ширине.
Inner-region Rearrangement
Как видно из рисунка, перестановка в области высокого направления состоит в том, чтобы сложить соседние слои (локальные стержневые области) по оси H с размером канала C, а обработка в направлении ширины аналогична. Путем наложения на канал обработку объектов локальной области можно реализовать непосредственно с помощью MLP канала.
Идея здесь интересная.
Но если хорошенько подумать, то на самом деле это можно рассматривать как декомпозицию свертки. В pytorch используйтеnn.UnfoldПроцесс реализации операции свертки на самом деле аналогичен. Это эквивалентно операции свертки более крупного ядра путем укладки данных локального окна в размерность канала, а затем использования полносвязного уровня для их обработки.
И здесь это можно рассматривать как обработку вырезания окна без нахлеста. Возможно, в этой последующей работе будет предпринята попытка использовать перекрывающиеся формы.
Однако этот метод больше похож на свертку.
>>> # Convolution is equivalent with Unfold + Matrix Multiplication + Fold (or view to output shape)
>>> inp = torch.randn(1, 3, 10, 12)
>>> w = torch.randn(2, 3, 4, 5)
>>> inp_unf = torch.nn.functional.unfold(inp, (4, 5))
>>> out_unf = inp_unf.transpose(1, 2).matmul(w.view(w.size(0), -1).t()).transpose(1, 2)
>>> out = torch.nn.functional.fold(out_unf, (7, 8), (1, 1))
>>> # or equivalently (and avoiding a copy),
>>> # out = out_unf.view(1, 2, 7, 8)
>>> (torch.nn.functional.conv2d(inp, w) - out).abs().max()
tensor(1.9073e-06)
Другой момент заключается в том, что обработка локального квадратного окна разбивается на одномерные полосовые окна в двух разных направлениях, H и W. То есть разбить kxk на 1xk и kx1.
Кажется, что различные конструкции модели свертки почти исчерпали базовые единицы структуры модели (^__^).
Cross-region Rearrangement
При межрегиональной перестановке объект смещается целиком по оси H или W (torch.roll
) обрабатывать. Самостоятельно использовать эту операцию кажется бесполезным, но если переставить обработку в ранее спроектированной области, то как раз и реализуется поперечное окно локальной области.
Однако здесь следует отметить одну проблему: видно, что обработка локальной области здесь включена только после смещения элемента окна и не учитывает локальную обработку признаков до смещения. Более разумной формой будет窗口内部处理->窗口特征偏移->窗口内部处理->偏移的窗口特征位置恢复->窗口内部处理(可选)
, такая перекрестная обработка, по-видимому, способна лучше охватывать более широкий диапазон пространства,В отличие от настоящего времени, оконные обработки всегда соответствуют фиксированным областям..
Результаты экспериментов
В экспериментах по абляции в основном обсуждаются следующие моменты:
- Количество разделенных окон: по умолчанию ширина окон, разделенных по осям H и W, одинакова. Меньшее окно будет уделять больше внимания местной информации. И в эксперименте мы эмпирически используем большую ширину окна в более мелком слое, чтобы получить большее рецептивное поле.
Видно, что при постепенном увеличении ширины окна производительность будет снижаться. Авторы предполагают, что по мере увеличения размера области в структуре узкого места может происходить некоторая потеря информации.
- Обсуждение размера шага s для смещения по окнам.
Видно, что большее смещение мелкого окна будет работать лучше. Возможно, потому, что увеличение рецептивного поля неглубоких черт может принести определенную пользу.
- Обсуждение различных форм заполнения. Это связано с тем, что для ввода 224 размер элемента stage4 составляет 7x7, что не может обеспечить равномерное разделение окон, поэтому в этой статье необходимо добавить отступы при настройке неперекрывающихся окон. Здесь обсуждаются несколько стратегий.
- Важность различных веток в модуле Hire.
Как видите, обработка этой части внутри области очень важна. На самом деле это понятно. Если нет такой локальной операции. Тогда простое смещение по смещению окна не имеет смысла для канала MLP. Потому что это была точечная операция.
- Различные формы межоконной связи.
Здесь мы сравниваем смещение (которое может сохранять определенное соседнее отношение, то есть информацию об относительном положении) и перетасовку между группами, такую как shufflenet. Можно видеть, что информация об относительном положении еще более важна.
Ссылка на сайт
- Hire-MLP: Vision MLP via Hierarchical Rearrangement: АР Вест V.org/PDF/2108.13…