Adresse papier : https://arxiv.org/abs/2307.09283
Adresse code : https://github.com/THU-MIG/RepViT
RepViT sur le mobile côté Excellentes performances dans l'architecture ViT, montrant des avantages significatifs. Ensuite, nous explorons les contributions de cette étude.
MSHA
) permet au modèle d'apprendreGlobal. représentation. Cependant, les différences architecturales entre les ViT légers et les CNN légers n'ont pas été entièrement étudiées. 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
Dans cette étude, les auteurs ont progressivement amélioré le CNN léger standard (en particulier MobileNetV3
. Cela en découle La naissance d'une nouvelle famille CNN pure et légère, à savoir RepViT
. Il est à noter que bien que RepViT ait une structure MetaFormer, elle est entièrement composée de convolutions.
RepViT
Surpasse les ViT légers de pointe existants et affiche des performances supérieures et efficacité par rapport aux ViT légers de pointe existants sur diverses tâches de vision, notamment la classification ImageNet, la détection d'objets COCO-2017 et la segmentation d'instances, ainsi que la segmentation sémantique sur ADE20k, en particulier dans ImageNet
, RepViT code> dans <code style="background-color: rgb(231, 243, 237); padding: 1px 3px; border-radius: 4px; overflow-wrap: break-word; text-indent: 0px; display: inline- block;">iPhone 12
a atteint une latence de près de 1 ms et une précision Top-1 de plus de 80 %, ce qui constitue la première avancée pour les modèles légers. 🎜D'accord, ce qui devrait préoccuper tout le monde ensuite, c'est "Comment concevoir un modèle avec une latence aussi faible mais une précision élevée" ? 🎜ConvNeXt
, les auteurs sont basés sur ResNet50
grâce à une théorie et une expérience rigoureuses. nous en avons finalement conçu un très excellent, comparable à L'architecture de réseau neuronal convolutif pur de Swin-Transformer
. De même, RepViT
consiste également principalement à intégrer progressivement la conception architecturale des ViT légers dans un CNN léger standard, c'est-à-dire MobileNetV3-L
pour effectuer une transformation ciblée (modification magique) ). Au cours de ce processus, les auteurs ont examiné les éléments de conception à différents niveaux de granularité et ont atteint leurs objectifs d'optimisation grâce à une série d'étapes. 🎜
Dans le document, une nouvelle métrique est introduite pour mesurer la latence sur les appareils mobiles et garantit que la stratégie de formation est cohérente avec les ViT légers actuellement populaires. Le but de cette initiative est d'assurer la cohérence de la formation sur modèle, ce qui implique deux concepts clés que sont la mesure des délais et l'ajustement de la stratégie de formation.
Metrique de latence
Afin de mesurer plus précisément les performances du modèle sur de vrais appareils mobiles, l'auteur a choisi de mesurer directement la latence réelle du modèle sur l'appareil comme mesure de base. Cette méthode de mesure est différente des études précédentes, qui ont principalement réussi FLOPs
ou la taille du modèle optimisent la vitesse d'inférence du modèle, et ces métriques ne reflètent pas toujours bien la latence réelle dans les applications mobiles. FLOPs
或模型大小等指标优化模型的推理速度,这些指标并不总能很好地反映在移动应用中的实际延迟。
训练策略的对齐
这里,将 MobileNetV3-L 的训练策略调整以与其他轻量级 ViTs 模型对齐。这包括使用 AdamW
优化器【ViTs 模型必备的优化器】,进行 5 个 epoch 的预热训练,以及使用余弦退火学习率调度进行 300 个 epoch 的训练。尽管这种调整导致了模型准确率的略微下降,但可以保证公平性。
接下来,基于一致的训练设置,作者们探索了最优的块设计。块设计是 CNN 架构中的一个重要组成部分,优化块设计有助于提高网络的性能。
分离 Token 混合器和通道混合器
这块主要是对 MobileNetV3-L
Alignement de la stratégie de formation
Ici, la stratégie de formation de MobileNetV3-L est ajustée pour s'aligner sur d'autres modèles ViT légers. Cela inclut l'utilisation de AdamW
[optimiseur essentiel pour le modèle ViTs], effectue 5 époques d'entraînement d'échauffement et utilise la planification du taux d'apprentissage par recuit cosinus pour 300 époques d'entraînement. Bien que cet ajustement entraîne une légère diminution de la précision du modèle, l’équité est garantie.
Mélangeur de jetons séparé et mélangeur de canaux
Cette pièce est principalement destinée àMobileNetV3-L
a été améliorée pour séparer le mélangeur de jetons et le mélangeur de canaux. La structure de bloc MobileNetV3 originale se compose d'une convolution dilatée 1x1, suivie d'une convolution en profondeur et d'une couche de projection 1x1, puis connecte l'entrée et la sortie via des connexions résiduelles. Sur cette base, RepViT fait progresser la convolution en profondeur afin que le mélangeur de canaux et le mélangeur de jetons puissent être séparés. Pour améliorer les performances, un reparamétrage structurel est également introduit pour introduire une topologie multi-branches pour les filtres profonds pendant la formation. Enfin, les auteurs ont réussi à séparer le mélangeur de jetons et le mélangeur de canaux dans le bloc MobileNetV3 et ont nommé ce bloc le bloc RepViT.
Réduisez le taux d'expansion et augmentez la largeur🎜🎜🎜Dans le mélangeur de canaux, le taux d'expansion d'origine est de 4, ce qui signifie que la dimension cachée du bloc MLP est quatre fois la dimension d'entrée, consommant beaucoup de ressources informatiques et affectant le temps d'inférence Avoir un grand impact. Pour atténuer ce problème, nous pouvons réduire le taux de dilatation à 2, réduisant ainsi la redondance et la latence des paramètres, réduisant ainsi la latence de MobileNetV3-L à 0,65 ms. Par la suite, en augmentant la largeur du réseau, c'est-à-dire en augmentant le nombre de canaux à chaque étage, la précision du Top-1 est passée à 73,5%, tandis que la latence n'a augmenté qu'à 0,89 ms ! 🎜🎜Optimisation des éléments macro-architecturaux🎜🎜Dans cette étape, cet article optimise davantage les performances de MobileNetV3-L sur les appareils mobiles, principalement à partir des éléments macro-architecturaux, y compris la tige, la couche de sous-échantillonnage, le classificateur et le rapport d'étape global. En optimisant ces éléments macro-architecturaux, les performances du modèle peuvent être considérablement améliorées. 🎜🎜🎜Réseau peu profond utilisant un extracteur convolutif🎜🎜🎜🎜🎜Image🎜🎜Les ViT utilisent généralement une opération "patchify" qui divise l'image d'entrée en patchs qui ne se chevauchent pas comme tige. Cependant, cette approche pose des problèmes d’optimisation de la formation et de sensibilité aux recettes de formation. Par conséquent, les auteurs ont plutôt adopté une convolution précoce, une approche qui a été adoptée par de nombreux ViT légers. En revanche, MobileNetV3-L utilise une tige plus complexe pour un sous-échantillonnage 4x. De cette façon, bien que le nombre initial de filtres soit porté à 24, la latence totale est réduite à 0,86 ms, tandis que la précision du top 1 augmente à 73,9 %.
Dans les ViT, le sous-échantillonnage spatial est généralement implémenté via une couche de fusion de correctifs distincte. Nous pouvons donc ici adopter une couche de sous-échantillonnage distincte et plus profonde pour augmenter la profondeur du réseau et réduire la perte d'informations due à la réduction de la résolution. Plus précisément, les auteurs ont d'abord utilisé une convolution 1x1 pour ajuster la dimension du canal, puis ont connecté l'entrée et la sortie de deux convolutions 1x1 via le résidu pour former un réseau à action directe. De plus, ils ont ajouté un bloc RepViT devant pour approfondir davantage la couche de sous-échantillonnage, une étape qui a amélioré la précision du top 1 à 75,4 % avec une latence de 0,96 ms.
Classificateur plus simple
Dans les ViT légers, le classificateur se compose généralement d'une couche de regroupement moyenne globale suivie d'une couche linéaire. En revanche, MobileNetV3-L utilise un classificateur plus complexe. Étant donné que l'étape finale comporte désormais plus de canaux, les auteurs l'ont remplacée par un simple classificateur, une couche de pooling moyenne globale et une couche linéaire. Cette étape a réduit la latence à 0,77 ms tout en étant précise. Le taux est de 74,8 %.
Le rapport global des étapes
Le rapport des étapes représente le rapport du nombre de blocs dans les différentes étapes, indiquant ainsi la répartition des calculs dans chaque étape. Le document choisit un rapport d'étape plus optimal de 1:1:7:1, puis augmente la profondeur du réseau à 2:2:14:2, obtenant ainsi une mise en page plus profonde. Cette étape augmente la précision du top 1 à 76,9 % avec une latence de 1,02 ms.
Ensuite, RepViT ajuste le CNN léger grâce à une micro-conception couche par couche, qui comprend la sélection de la taille de noyau de convolution appropriée et l'optimisation de la position de la couche de compression et d'excitation (SE). Les deux méthodes améliorent considérablement les performances du modèle.
Sélection de la taille du noyau de convolution
On sait que les performances et la latence des CNN sont généralement affectées par la taille du noyau de convolution. Par exemple, pour modéliser les dépendances de contexte à longue portée comme MHSA, ConvNeXt utilise de grands noyaux convolutifs, ce qui entraîne des améliorations significatives des performances. Cependant, les grands noyaux de convolution ne sont pas adaptés aux appareils mobiles en raison de leur complexité de calcul et de leur coût d'accès à la mémoire. MobileNetV3-L utilise principalement des convolutions 3x3, et des convolutions 5x5 sont utilisées dans certains blocs. Les auteurs les ont remplacés par des convolutions 3x3, ce qui a permis de réduire la latence à 1,00 ms tout en conservant une précision top-1 de 76,9 %.
Position de la couche SE
L'un des avantages du module d'auto-attention par rapport à la convolution est la possibilité d'ajuster les poids en fonction de l'entrée, ce que l'on appelle une propriété basée sur les données. En tant que module d'attention de canal, la couche SE peut compenser les limitations de convolution liées au manque de propriétés basées sur les données, conduisant ainsi à de meilleures performances. MobileNetV3-L ajoute des couches SE dans certains blocs, en se concentrant principalement sur les deux dernières étapes. Cependant, l'étage à basse résolution obtient des gains de précision moindres grâce à l'opération de mise en commun moyenne globale fournie par SE que l'étage à haute résolution. Les auteurs ont conçu une stratégie pour utiliser la couche SE de manière croisée à toutes les étapes afin de maximiser l'amélioration de la précision avec le plus petit incrément de retard. Cette étape a amélioré la précision du top 1 à 77,4 % tout en réduisant le retard à 0,87 ms. [En fait, Baidu a déjà fait des expériences et des comparaisons sur ce point et est arrivé à cette conclusion il y a longtemps. La couche SE est plus efficace lorsqu'elle est placée à proximité de la couche profonde]
.Enfin, en intégrant les stratégies d'amélioration ci-dessus, nous obtenons le modèleRepViT
的整体架构,该模型有多个变种,例如RepViT-M1/M2/M3
. De même, les différentes variantes se distinguent principalement par le nombre de canaux et de blocs par étage.
Cet article revisite la conception efficace des CNN légers en introduisant le choix architectural du ViT léger. Cela a conduit à l'émergence de RepViT, une nouvelle famille de CNN légers conçus pour les appareils mobiles aux ressources limitées. RepViT surpasse les ViT et CNN légers de pointe existants sur diverses tâches de vision, affichant des performances et une latence supérieures. Cela met en évidence le potentiel des CNN purement légers pour les appareils mobiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!