문서 주소: https://arxiv.org/abs/2307.09283
코드 주소: https://github.com/THU-MIG/RepViT
RepViT 모바일 측면 ViT 아키텍처의 탁월한 성능으로 상당한 이점을 보여줍니다. 다음으로, 본 연구의 기여를 살펴보겠습니다.
MSHA
) 표현. 그러나 경량 ViT와 경량 CNN 간의 아키텍처 차이점은 완전히 연구되지 않았습니다. MSHA
)可以让模型学习全局表示。然而,轻量级 ViTs 和轻量级 CNNs 之间的架构差异尚未得到充分研究。MobileNetV3
的移动友好性。这便衍生出一个新的纯轻量级 CNN 家族的诞生,即RepViT
。值得注意的是,尽管 RepViT 具有 MetaFormer 结构,但它完全由卷积组成。RepViT
超越了现有的最先进的轻量级 ViTs,并在各种视觉任务上显示出优于现有最先进轻量级ViTs的性能和效率,包括 ImageNet 分类、COCO-2017 上的目标检测和实例分割,以及 ADE20k 上的语义分割。特别地,在ImageNet
上,RepViT
在 iPhone 12
上达到了近乎 1ms 的延迟和超过 80% 的Top-1 准确率,这是轻量级模型的首次突破。好了,接下来大家应该关心的应该时“如何设计到如此低延迟但精度还很6的模型”出来呢?
再 ConvNeXt
中,作者们是基于 ResNet50
架构的基础上通过严谨的理论和实验分析,最终设计出一个非常优异的足以媲美 Swin-Transformer
的纯卷积神经网络架构。同样地,RepViT
也是主要通过将轻量级 ViTs 的架构设计逐步整合到标准轻量级 CNN,即MobileNetV3-L
이 연구에서 저자는 표준 경량 CNN(특히 MobileNetV3
의 모바일 친화성은 새로운 순수 경량 CNN 제품군의 탄생을 가져옵니다. 색상: rgb(231, 243, 237); 패딩: 1px 3px; border-radius: 4px; break-word; text-indent: 0px; 디스플레이: inline-block; RepViT는 MetaFormer 구조를 가지고 있지만 전체적으로 컨볼루션으로 구성되어 있다는 점은 주목할 가치가 있습니다.
RepViT
기존의 최첨단 경량 ViT를 능가하며 뛰어난 성능을 보여줍니다. ImageNet 분류, COCO-2017 객체 감지 및 인스턴스 분할, ADE20k의 의미론적 분할을 포함한 다양한 비전 작업에서 기존의 최첨단 경량 ViT에 비해 효율성이 높습니다. 특히 RepViT 코드> iPhone 12
는 거의 1ms에 달하는 지연 시간과 80% 이상의 Top-1 정확도를 달성했는데, 이는 경량 모델로서는 최초로 획기적인 성과입니다. 🎜자, 모두가 다음으로 고민해야 할 것은 "이렇게 낮은 지연 시간과 높은 정확도를 갖는 모델을 설계하는 방법"입니까? 🎜ConvNeXt
, 작성자는 ResNet50
엄격한 이론과 실험을 통해, 우리는 마침내 Swin-Transformer
의 순수 컨볼루션 신경망 아키텍처. 마찬가지로, RepViT
는 또한 경량 ViT의 아키텍처 설계를 표준 경량 CNN, 즉 MobileNetV3-L
, 대상 변환(마법 수정)을 수행합니다. 이 과정에서 저자는 다양한 수준의 세분성에서 디자인 요소를 고려하고 일련의 단계를 통해 최적화 목표를 달성했습니다. 🎜
문서에서는 모바일 장치의 대기 시간을 측정하고 훈련 전략이 현재 인기 있는 경량 ViT와 일치하는지 확인하기 위한 새로운 측정항목이 도입되었습니다. 이 이니셔티브의 목적은 지연 측정과 훈련 전략 조정이라는 두 가지 주요 개념을 포함하는 모델 훈련의 일관성을 보장하는 것입니다.
Latency Metric
실제 모바일 디바이스에서 모델의 성능을 보다 정확하게 측정하기 위해 저자는 디바이스에서 모델의 실제 레이턴시를 기준 메트릭으로 직접 측정하기로 결정했습니다. 이 측정 방법은 FLOP
또는 모델 크기와 같은 측정항목은 모델의 추론 속도를 최적화하며 이러한 측정항목은 항상 모바일 애플리케이션의 실제 대기 시간을 잘 반영하지 않습니다. FLOPs
或模型大小等指标优化模型的推理速度,这些指标并不总能很好地反映在移动应用中的实际延迟。
训练策略的对齐
这里,将 MobileNetV3-L 的训练策略调整以与其他轻量级 ViTs 模型对齐。这包括使用 AdamW
优化器【ViTs 模型必备的优化器】,进行 5 个 epoch 的预热训练,以及使用余弦退火学习率调度进行 300 个 epoch 的训练。尽管这种调整导致了模型准确率的略微下降,但可以保证公平性。
接下来,基于一致的训练设置,作者们探索了最优的块设计。块设计是 CNN 架构中的一个重要组成部分,优化块设计有助于提高网络的性能。
分离 Token 混合器和通道混合器
这块主要是对 MobileNetV3-L
훈련 전략 정렬
여기서 MobileNetV3-L의 훈련 전략은 다른 경량 ViTs 모델과 일치하도록 조정됩니다. 여기에는 AdamW
최적화 도구 [ViTs 모델의 필수 최적화 도구]는 5개의 에포크 워밍업 훈련을 수행하고 300개의 에포크 훈련에 대해 코사인 어닐링 학습 속도 스케줄링을 사용합니다. 이러한 조정으로 인해 모델 정확도가 약간 감소하지만 공정성은 보장됩니다.
별도의 토큰 믹서와 채널 믹서
이 부분은 주로MobileNetV3-L
의 블록 구조가 토큰 믹서와 채널 믹서를 분리하도록 개선되었습니다. 원래 MobileNetV3 블록 구조는 1x1 확장 컨볼루션, 깊이별 컨볼루션 및 1x1 프로젝션 레이어로 구성되며, 잔차 연결을 통해 입력과 출력을 연결합니다. 이를 기반으로 RepViT는 채널 믹서와 토큰 믹서가 분리될 수 있도록 깊이 컨볼루션을 진행합니다. 성능을 향상시키기 위해 훈련 중 심층 필터를 위한 다중 분기 토폴로지를 도입하는 구조적 재매개변수화도 도입되었습니다. 마지막으로 저자는 MobileNetV3 블록에서 토큰 믹서와 채널 믹서를 분리하는 데 성공하고 이러한 블록을 RepViT 블록으로 명명했습니다.
확장 비율을 줄이고 너비를 늘리세요🎜🎜🎜채널 믹서에서 원래 확장 비율은 4입니다. 이는 MLP 블록의 숨겨진 차원이 입력 차원의 4배가 되어 많은 컴퓨팅 리소스를 소비하고 추론 시간에 영향을 미치는 것은 큰 영향을 미칩니다. 이 문제를 완화하기 위해 확장 비율을 2로 줄여 매개변수 중복성과 대기 시간을 줄여 MobileNetV3-L의 대기 시간을 0.65ms로 낮출 수 있습니다. 그 후, 네트워크 폭을 늘림으로써, 즉 각 단계의 채널 수를 늘림으로써 Top-1 정확도는 73.5%로 증가한 반면 대기 시간은 0.89ms로 증가했습니다! 🎜🎜매크로 아키텍처 요소 최적화🎜🎜이 단계에서 이 기사에서는 주로 스템, 다운샘플링 레이어, 분류기 및 전체 스테이지 비율을 포함한 매크로 아키텍처 요소부터 시작하여 모바일 장치에서 MobileNetV3-L의 성능을 더욱 최적화합니다. 이러한 매크로 아키텍처 요소를 최적화하면 모델 성능이 크게 향상될 수 있습니다. 🎜🎜🎜컨벌루션 추출기를 사용한 얕은 네트워크🎜🎜🎜🎜🎜Image🎜🎜ViTs는 일반적으로 입력 이미지를 줄기처럼 겹치지 않는 패치로 분할하는 "패치화" 작업을 사용합니다. 그러나 이 접근 방식은 훈련 최적화와 훈련 레시피 민감도에 문제가 있습니다. 따라서 저자는 많은 경량 ViT에서 채택한 접근 방식인 초기 컨볼루션을 대신 채택했습니다. 이와 대조적으로 MobileNetV3-L은 4배 다운샘플링을 위해 더 복잡한 스템을 사용합니다. 그 결과, 초기 필터 수는 24개로 늘어났지만 전체 지연 시간은 0.86ms로 감소하고, 상위 1개 정확도는 73.9%로 증가했다.
ViT에서 공간 다운샘플링은 일반적으로 별도의 패치 병합 레이어를 통해 구현됩니다. 따라서 여기서는 네트워크 깊이를 늘리고 해상도 감소로 인한 정보 손실을 줄이기 위해 별도의 더 깊은 다운샘플링 레이어를 채택할 수 있습니다. 구체적으로, 저자는 먼저 1x1 컨볼루션을 사용하여 채널 크기를 조정한 다음 잔차를 통해 두 개의 1x1 컨볼루션의 입력과 출력을 연결하여 피드포워드 네트워크를 형성했습니다. 또한 다운샘플링 레이어를 더욱 심화시키기 위해 앞에 RepViT 블록을 추가했는데, 이는 0.96ms의 대기 시간으로 상위 1 정확도를 75.4%로 향상시키는 단계였습니다.
간단한 분류기
경량 ViT에서 분류기는 일반적으로 전역 평균 풀링 레이어와 선형 레이어로 구성됩니다. 이와 대조적으로 MobileNetV3-L은 더 복잡한 분류자를 사용합니다. 이제 최종 단계에 더 많은 채널이 있으므로 작성자는 이를 간단한 분류기, 전역 평균 풀링 레이어 및 선형 레이어로 대체했습니다. 이 단계는 상위 1위 정확도를 유지하면서 지연 시간을 0.77ms로 줄였습니다.
전체 스테이지 비율
스테이지 비율은 여러 스테이지의 블록 수 비율을 나타내며, 각 스테이지의 계산 분포를 나타냅니다. 논문에서는 보다 최적의 스테이지 비율인 1:1:7:1을 선택한 다음 네트워크 깊이를 2:2:14:2로 늘려 더 깊은 레이아웃을 구현합니다. 이 단계는 1.02ms의 대기 시간으로 상위 1 정확도를 76.9%로 증가시킵니다.
다음으로 RepViT는 적절한 컨볼루션 커널 크기 선택 및 SE(압착 및 자극) 레이어 위치 최적화를 포함하는 레이어별 마이크로 디자인을 통해 경량 CNN을 조정합니다. 두 방법 모두 모델 성능을 크게 향상시킵니다.
컨볼루션 커널 크기 선택
CNN의 성능과 지연 시간은 일반적으로 컨볼루션 커널의 크기에 영향을 받는 것으로 알려져 있습니다. 예를 들어 MHSA와 같은 장거리 컨텍스트 종속성을 모델링하기 위해 ConvNeXt는 대규모 컨벌루션 커널을 사용하여 성능을 크게 향상시킵니다. 그러나 대규모 컨볼루션 커널은 계산 복잡성과 메모리 액세스 비용으로 인해 모바일 친화적이지 않습니다. MobileNetV3-L은 주로 3x3 컨볼루션을 사용하며 일부 블록에서는 5x5 컨볼루션을 사용합니다. 저자는 이를 3x3 컨볼루션으로 대체하여 76.9%의 상위 1 정확도를 유지하면서 지연 시간을 1.00ms로 줄였습니다.
SE 레이어의 위치
컨볼루션에 비해 self-attention 모듈의 한 가지 장점은 입력에 따라 가중치를 조정할 수 있다는 것인데, 이를 데이터 기반 속성이라고 합니다. 채널 주의 모듈로서 SE 계층은 데이터 기반 속성이 부족한 컨볼루션의 한계를 보완하여 더 나은 성능을 제공할 수 있습니다. MobileNetV3-L은 일부 블록에 SE 레이어를 추가하며 주로 마지막 두 단계에 중점을 둡니다. 그러나 저해상도 단계는 고해상도 단계보다 SE에서 제공하는 전역 평균 풀링 작업에서 더 작은 정확도 이득을 얻습니다. 저자는 가장 작은 지연 증분으로 정확도 향상을 극대화하기 위해 모든 단계에서 교차 블록 방식으로 SE 레이어를 사용하는 전략을 설계했습니다. 이 단계에서는 지연이 0.87ms로 감소하면서 top-1 정확도가 77.4%로 향상되었습니다. [사실 바이두는 이 점에 대해 이미 오래 전부터 실험과 비교를 해왔고 이런 결론에 이르렀습니다. SE 레이어는 딥 레이어에 가깝게 위치할 때 더 효과적입니다.]
마지막으로 위의 개선 전략을 통합하여 모델RepViT
的整体架构,该模型有多个变种,例如RepViT-M1/M2/M3
을 얻습니다. 마찬가지로, 다양한 변형은 주로 스테이지당 채널 및 블록 수로 구별됩니다.
이 문서에서는 경량 ViT의 아키텍처 선택을 소개하여 경량 CNN의 효율적인 설계를 재검토합니다. 이로 인해 리소스가 제한된 모바일 장치를 위해 설계된 새로운 경량 CNN 제품군인 RepViT가 탄생했습니다. RepViT는 다양한 비전 작업에서 기존의 최첨단 경량 ViT 및 CNN보다 성능이 뛰어나며 뛰어난 성능과 대기 시간을 보여줍니다. 이는 모바일 장치를 위한 순수 경량 CNN의 잠재력을 강조합니다.
위 내용은 1.3ms는 1.3ms가 걸립니다! Tsinghua의 최신 오픈 소스 모바일 신경망 아키텍처 RepViT의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!