Swin Transformer
Swin Transformer mimarisinin verimli bilgisayarlı görü için kaydırmalı pencereleri nasıl kullandığını keşfet ve Ultralytics Platformu üzerindeki iş akışlarını incele.
Microsoft araştırmacıları tarafından 2021 tarihli dönüm noktası niteliğindeki "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows" makalesinde tanıtılan bu derin öğrenme (DL) mimarisi, dikkat mekanizmasını yüksek çözünürlüklü görsel verilerin karmaşıklıklarıyla başa çıkabilecek şekilde uyarlar. Eşit uzunluktaki metin token'larını işleyen doğal dil işleme modellerinin aksine, bu mimari görsel öğelerin ölçek bakımından büyük ölçüde farklılık gösterdiğini kabul eder. Hiyerarşik bir temsil oluşturarak ve benzersiz bir pencereleme tekniğinden yararlanarak, görüntü boyutuna göre doğrusal hesaplama karmaşıklığı elde eder ve bu da onu çeşitli bilgisayarla görü (CV) görevleri için son derece verimli bir omurga haline getirir.
Kaydırılmış Pencereler ve Hiyerarşik Tasarım Nasıl Çalışır?#
Birincil yenilik, modelin özellik çıkarımını nasıl yapılandırdığında yatar. Girdi görüntüsünü küçük, üst üste bkmeyen parçalara bölerek başlar. Ancak, önceki modellerin aksine, daha derin katmanlarda bu komşu parçaları kademeli olarak daha büyük bölgeler halinde birleştirir. Bu hiyerarşik yaklaşım, ağın küçük görsel detaylardan büyük nesnelere kadar çeşitli ölçeklerde küresel bağlamı temsil eden zengin özellik haritaları çıkarmasına olanak tanır.
Hesaplama verimliliğini korumak için, öz-dikkat tüm görüntü genelinde değil, yalnızca yerel, izole pencereler içinde hesaplanır. Bilginin bu sınırlar boyunca akmasını sağlamak için pencereler ardışık katmanlar arasında "kaydırılır". Bu kaydırılmış pencere düzeni, bağımsız alanları etkili bir şekilde birbirine bağlayarak, küresel dikkatle ilişkili ağır hesaplama yükü olmadan kapsamlı çok ölçekli uzamsal hiyerarşiler sağlar.
Swin Transformer ve Vision Transformer (ViT) Karşılaştırması#
Modern mimarileri karşılaştırırken, bu modeli standart Vision Transformer (ViT) modelinden ayırmak önemlidir. Orijinal ViT, görüntüleri sabit boyutlu parçalardan oluşan bir dizi olarak ele alır ve bunların tümü üzerinde aynı anda küresel dikkat hesaplar. Bu son derece doğru sonuçlar verse de kuadratik hesaplama karmaşıklığına yol açar; yani görüntü çözünürlüğü arttıkça işlem süresi ve bellek gereksinimleri katlanarak artar.
Buna karşılık, Swin mimarisinin hiyerarşik ve pencere tabanlı tasarımı karmaşıklığı doğrusal tutar. Bu, yüksek çözünürlüklü girdiler ve çıktılar gerektiren yoğun tahmin görevleri için onu çok daha pratik hale getirir. Sonuç olarak, çok ölçekli nesne tespiti için COCO test-dev veri kümesi ve hassas görüntü segmentasyonu için ADE20K anlamsal segmentasyon veri kümesi gibi kıyaslamalarda en son teknoloji sonuçlarına ulaşır.
Modern Yapay Zekada Gerçek Dünya Uygulamaları#
Esnekliği ve verimliliği nedeniyle, resmi Microsoft Research GitHub deposu uygulaması karmaşık, yüksek riskli endüstrilere uyarlanmıştır.
- Tıbbi Görüntü Analizi: Klinik ortamlarda, Swin-Unet gibi ağlar, hacimsel 3B MR taramaları ve yüksek çözünürlüklü histopatoloji analizi için bu mimariden yararlanır. Modelin yoğun uzamsal hiyerarşileri koruma yeteneği, erken evre tümörler gibi küçük anomalilerin tanımlanmasına yardımcı olur. Tıbbi görüntüleme araştırmalarındaki son gelişmeler hakkında daha fazla bilgi okuyabilirsin.
- Uydu Görüntü Analizi: Çevresel izleme ve uzaktan algılama için büyük ölçekli coğrafi bağlamı yakalamak çok önemlidir. Hiyerarşik yapı, ormansızlaşma takibi, kentsel planlama ve mahsul sağlığı takibi için devasa hava veri kümelerini verimli bir şekilde işler.
PyTorch ve Ultralytics ile Entegrasyon#
Özel sinir ağları oluşturan geliştiriciler için bu mimariyi uygulamak resmi PyTorch belgeleri kullanılarak basittir. torchvision kütüphanesi, ImageNet üzerinde optimize edilmiş hafif Tiny varyantı gibi önceden eğitilmiş sürümleri içerir.
import torch
from torchvision.models import Swin_T_Weights, swin_t
# Load a pre-trained Tiny variant with ImageNet weights
weights = Swin_T_Weights.IMAGENET1K_V1
model = swin_t(weights=weights)
model.eval()
# Run a single batch containing a 3-channel, 224x224 dummy image tensor
dummy_image = torch.randn(1, 3, 224, 224)
output = model(dummy_image)
# The output shape is [1, 1000], representing the 1000 ImageNet classes
print(f"Prediction tensor shape: {output.shape}")Transformer tabanlı omurgalar mükemmel çok ölçekli temsil sunarken, modern uygulamalar genellikle uç yapay zeka cihazları için tamamen uçtan uca optimizasyonlar gerektirir. Örneğin, Ultralytics YOLO26 kutudan çıktığı gibi daha küçük, daha hızlı ve son derece doğru olan, gerçek zamanlı uç ortamlarda üstün performans gösteren yerel olarak uçtan uca bir mimari sağlar. İster transformer ağırlıklı mimariler ister hızlı evrişimli modeller kullanılsın, geliştiriciler veri etiketlemeden eğitime kadar tüm iş akışlarını Ultralytics Platform aracılığıyla yönetebilirler. Bu kapsamlı bulut araç zinciri, model dağıtımını ve sürekli model izlemeyi basit ve verimli hale getirir.






