Swin Transformer
يُعد Swin Transformer محوّل رؤية هرميًا يحسب الانتباه الذاتي ضمن نوافذ محلية متزاحة، لذا تزداد تكلفته خطيًا مع حجم الصورة.
Swin Transformer، اختصارًا لـShifted Window Transformer، هو محوّل رؤية هرمي يحسب الانتباه الذاتي ضمن نوافذ محلية صغيرة، ثم يزيح تلك النوافذ بين الطبقات المتعاقبة. قدّمه زي ليو وزملاؤه في Microsoft Research Asia في ورقة عام 2021 بعنوان Swin Transformer: محوّل رؤية هرمي باستخدام النوافذ المزاحة، التي فازت بجائزة Marr لأفضل ورقة في ICCV 2021. تجعل النوافذ المحلية كلفة الانتباه تزداد خطيًا مع عدد البكسلات بدلًا من تربيعيًا، وينتج عن دمج الرقع مرحلةً تلو أخرى خرائط ميزات متعددة المقاييس شبيهة بتلك التي تنتجها الشبكة العصبية الالتفافية. وقد جعل ذلك المحوّلات ركائز أساسية متعددة الأغراض عمليةً لـاكتشاف الأجسام والتجزئة في الصور عالية الدقة، متجاوزةً بذلك التصنيف.
آلية عمل النوافذ المزاحة#
يقسّم Swin الصورة أولًا إلى رقع بحجم 4×4 بكسل، ويسقط كل رقعة إلى تضمين رمز، لذا تصبح صورة 224×224 شبكة رموز بحجم 56×56، مع 96 قناة في نموذج Tiny. تقارن آلية الانتباه الشاملة كل رمز من الرموز البالغ عددها 3,136 بجميع الرموز الأخرى؛ أما Swin فيقسّم الشبكة إلى نوافذ غير متداخلة من 7×7 رموز، ويحسب الانتباه ضمن كل نافذة فقط. تعرض الورقة كلفة الانتباه الشامل على أنها 4hwC² + 2(hw)²C لشبكة أبعادها h×w وقنواتها C، مقارنةً بـ4hwC² + 2M²hwC للنوافذ التي تحتوي كل منها M×M رمزًا، وهي كلفة خطية في hw.
لن تتبادل النوافذ وحدها المعلومات مطلقًا، لذلك يزيح كل كتلة ثانية شبكة النوافذ بمقدار نصف نافذة، أي 3 رموز، فتتجاوز النوافذ الجديدة الحدود القديمة. ولإبقاء عدد النوافذ ثابتًا، تدوّر عملية التنفيذ خريطة الميزات دوريًا، وتحجب الانتباه بين الرموز التي لم تكن متجاورة في الصورة الأصلية. وتضيف كل كتلة أيضًا انحيازًا موضعيًا نسبيًا متعلّمًا إلى درجات الانتباه.
بين المراحل، تدمج طبقة دمج الرقع كل مجموعة 2×2 من الرموز المتجاورة وتُسقطها خطيًا، ما يخفض الدقة إلى النصف ويضاعف عدد القنوات. تنتج المراحل الأربع خرائط ميزات بدقات تبلغ 1/4 و1/8 و1/16 و1/32 من دقة الإدخال، وهي الخطوات نفسها في ResNet، لذا يمكن إدراج Swin مباشرةً في رؤوس الكشف والتجزئة الموجودة، مثل شبكة هرم الميزات. ويعرض تنفيذ torchvision الآليتين معًا:
import torch
from torchvision.models import swin_t
# Swin-T architecture; random weights are enough to inspect its structure
model = swin_t().eval()
# Each pair of blocks uses 7x7 windows, the second shifted by 3 patches
regular, shifted = model.features[1]
print(f"Window {regular.attn.window_size}, shift {regular.attn.shift_size} then {shifted.attn.shift_size}")
# features alternates stages with patch merging; stage outputs are (batch, height, width, channels)
x = torch.randn(1, 3, 224, 224)
with torch.no_grad():
for i, layer in enumerate(model.features):
x = layer(x)
if i % 2 == 1:
print(f"Stage {i // 2 + 1}: {tuple(x.shape)}")يطبع Window [7, 7], shift [0, 0] then [3, 3]، تليه مخرجات المراحل بالأبعاد (1, 56, 56, 96) و(1, 28, 28, 192) و(1, 14, 14, 384) و(1, 7, 7, 768): تقلّص كل مرحلة حجم الشبكة إلى النصف وتضاعف القنوات، لتنتج الهرم الذي تتوقعه رؤوس التنبؤ الكثيف.
Swin Transformer مقارنةً بـViT والشبكات الالتفافية#
يقطّع ViT الأصلي الصور إلى رقع بحجم 16×16، ويحافظ على دقة واحدة عبر جميع الطبقات، ويطبق الانتباه الشامل، ما يلائم تصنيف الصور لكنه يصبح مكلفًا مع مدخلات الدقة العالية الخاصة بالكشف والتجزئة. يعيد Swin سمتين من الشبكات الالتفافية، هما المحلية والتدرج الهرمي للميزات، مع الإبقاء على الأوزان المعتمدة على الإدخال في آلية الانتباه. وتختلف نوافذه المحلية عن انتباه النافذة المنزلقة، حيث ينتبه كل رمز إلى جواره الخاص، لأن نوافذ Swin تقسيمات ثابتة تتشاركها الرموز، ما يتيح تنفيذها بكفاءة عبر عمليات ضرب المصفوفات على GPU.
عند إصدار النموذج، حقق أكبر نموذج، Swin-L المدرّب مسبقًا على ImageNet-22K، دقة top-1 تبلغ 87.3% على ImageNet-1K، و58.7 box AP و51.1 mask AP على COCO test-dev، و53.5 mIoU على ADE20K، وهي أفضل النتائج المنشورة على معياري الكشف والتجزئة الدلالية هذين. كما دفع نجاحه أبحاث الشبكات الالتفافية إلى الأمام: فقد حدّثت ConvNeXt من Meta (2022) تصميم ResNet بخيارات تصميم مستمدة من Swin، وحققت دقة مماثلة أو أعلى.
يمكن استخدام Swin ركيزةً أساسية لنموذج Ultralytics مخصص: إذ تحمّل الوحدة TorchVision في ملف YAML للنموذج swin_t من torchvision بأوزان ImageNet المدرّبة مسبقًا، ويتدرّب رأس اكتشاف YOLO على خريطة الميزات الوحيدة ذات الخطوة 32 التي يعيدها.
المتغيرات والتطبيقات#
- Swin Transformer V2: وسّع التصميم إلى 3 مليارات معامل وصور تصل إلى 1,536×1,536 بكسل في عام 2022، باستخدام انتباه جيب التمام ذي المقياس وانحياز موضعي مستمر موزع لوغاريتميًا للحفاظ على استقرار التدريب.
- التعرّف على الأفعال في الفيديو: يوسّع Video Swin Transformer النوافذ إلى ثلاثة أبعاد، عبر المكان والزمان، لتصنيف الأفعال في مقاطع الفيديو.
- الدقة الفائقة والترميم: يستخدم SwinIR كتل Swin لرفع دقة الصور وإزالة الضجيج وآثار JPEG.
- تحليل الصور الطبية: يجمع Swin-Unet وSwin UNETR بين مشفّرات Swin ومفكّكات على نمط U-Net، ويجزّئ Swin UNETR أورام الدماغ في أحجام MRI ثلاثية الأبعاد.










