Unsupervised Domain Adaptation (UDA)
Gözetimsiz alan uyarlaması, etiketli kaynak verilerle eğitilmiş bir modeli yalnızca etiketsiz verileri bulunan yeni bir hedef alana uyarlar ve alan farkını kapatır.
Denetimsiz alan uyarlaması (UDA), etiketli verilerle bir ayar olan kaynak alanda eğitilmiş bir modeli, yalnızca etiketsiz verilerin bulunduğu farklı bir ayar olan hedef alanda çalışacak şekilde uyarlar. İki alan aynı görevi ve sınıfları paylaşır, ancak girdileri farklı görünür: sentetik oluşturmalar ile gerçek fotoğraflar, farklı hastanelerin tarayıcıları, gündüz ve gece caddeleri ya da farklı kamera modelleri. Yalnızca kaynak alanda eğitilen modeller hedef alanda çoğu zaman doğruluklarının büyük bölümünü kaybeder; UDA ise yeni alanda veri etiketleme maliyetine katlanmadan bu doğruluğu geri kazandırır. Bu yöntem aktarımı öğrenmenin bir dalıdır; “denetimsiz” ifadesi yalnızca hedef etiketlerin bulunmamasına işaret eder.
Alan Kayması Neden Sorun Yaratır#
Shai Ben-David ve çalışma arkadaşları, 2010'da sorunun standart kuramsal çerçevesini ortaya koydu. Bir sınıflandırıcının hedef alandaki hatası üç terimle sınırlanır: kaynak alandaki hatası, iki alanın sınıflandırıcı ailesine ne kadar farklı göründüğünü ölçen bir değer ve her iki alan için en iyi tek sınıflandırıcının hatası. İlk terim, kaynak etiketleriyle yapılan olağan eğitimle azaltılır. Çoğu UDA yöntemi, kaynak ve hedef girdilerin birbirine benzemesini sağlayan özellikleri öğrenerek ikinci terime müdahale eder; üçüncü terim ise etiketlerin arasındaki ilişkinin alanlar arasında değiştiği durumlarda uyarlamanın başarısız olacağını hatırlatır.
Başlıca Yaklaşımlar#
- İstatistik eşleştirme: Kaynak ve hedef özelliklerin basit istatistiklerini hizalar. Özellik kovaryanslarını eşleştiren maksimum ortalama farkı ve CORAL, eğitim kaybına bir ceza terimi ekler. Yanghao Li ve çalışma arkadaşlarının 2016'da önerdiği AdaBN ise her bir toplu normalleştirme katmanının ortalamasını ve varyansını hedef verilerle yeniden hesaplar.
- Düşmanca hizalama: Yaroslav Ganin ve Victor Lempitsky'nin 2015'te tanıttığı alan-düşmanca sinir ağları (DANN), kaynak özelliklerle hedef özellikleri ayırt etmek için bir alan sınıflandırıcısı eğitir; gradyan tersine çevirme katmanı da özellik çıkarıcının bu sınıflandırıcıyı yanıltmasını sağlar.
- Görüntü çevirme: CycleGAN gibi üretici modeller, etiketli eğitim görüntülerinin dağıtım ortamına benzemesi için kaynak görüntüleri hedef alanın stiline dönüştürür; sürüş sahneleri için CyCADA bu yaklaşıma örnektir.
- Kendi kendine eğitim: Kaynak model hedef görüntüleri etiketler, kendinden emin tahminleri sözde etiketlere dönüşür ve model bu etiketlerle yeniden eğitilir. Etiketleri kararlı tutmak için çoğu zaman yavaş güncellenen bir öğretmen model kullanılır.
- Kaynak içermeyen uyarlama ve test zamanı uyarlaması: SHOT, kaynak verilere erişmeden eğitilmiş bir modeli uyarlar; TENT ise çıkarım sırasında yalnızca toplu normalleştirme parametrelerini güncelleyerek test gruplarındaki tahminleri daha güvenilir hâle getirir.
AdaBN, alan farkının ne kadarının toplu normalleştirme katmanlarının istatistiklerinde bulunabileceğini gösterir. Bu PyTorch örneği, küçük bir ağı 1.000 el yazısı rakam üzerinde eğitir ve kalan rakamları, daha düşük kontrastlı ve daha yüksek parlaklıklı soluk bir görüntü yakalayan kameranın üreteceği biçimde dönüştürerek test eder:
import torch
from sklearn.datasets import load_digits
from torch import nn
torch.manual_seed(0)
X, y = load_digits(return_X_y=True)
X, y = torch.tensor(X / 16, dtype=torch.float32), torch.tensor(y)
target_x = 0.3 * X[1000:] + 0.6 # target domain: the last 797 digits as a washed-out camera would capture them
# Train on the labeled source domain, the first 1,000 digits
model = nn.Sequential(nn.Linear(64, 64), nn.BatchNorm1d(64), nn.ReLU(), nn.Linear(64, 10))
optimizer = torch.optim.Adam(model.parameters(), lr=1e-2)
for _ in range(200):
optimizer.zero_grad()
nn.functional.cross_entropy(model(X[:1000]), y[:1000]).backward()
optimizer.step()
model.eval()
print(f"Target accuracy before adaptation: {(model(target_x).argmax(1) == y[1000:]).float().mean():.3f}")
# AdaBN: replace the source BatchNorm statistics with those of the unlabeled target images
model[1].reset_running_stats()
model[1].momentum = None # use a plain average over the target batch
model.train()
with torch.no_grad():
model(target_x)
model.eval()
print(f"Target accuracy after adaptation: {(model(target_x).argmax(1) == y[1000:]).float().mean():.3f}")Kayma uygulanan rakamlardaki doğruluk, tek bir hedef etiketi bile kullanmadan 0,290'dan 0,940'a yükselir; bu, aynı modelin kayma öncesinde bu rakamlarda aldığı %94'e yakındır. Kazancın bu kadar büyük olmasının nedeni, kontrast ve parlaklık değişikliğinin ilk doğrusal katmandan sonra her özellikte kayma ve ölçek değişimine dönüşmesi ve yeniden normalleştirmenin tam olarak bunu gidermesidir; şekil veya içerik kaymaları yukarıdaki daha güçlü yöntemleri gerektirir.
Kıyaslamalar ve Uygulamalar#
Kate Saenko ve çalışma arkadaşlarının 2010'da yayımladığı Office-31, üç alandan gelen 31 ofis nesnesinin 4.110 görüntüsünü içerir: Amazon ürün fotoğrafları, web kamerası görüntüleri ve DSLR fotoğrafları. VisDA-2017, 12 nesne kategorisinin sentetik 3D oluşturmalarıyla eğitilen modellerin gerçek fotoğrafları sınıflandırmasını ister; GTA5-to-Cityscapes ise anlamsal segmentasyon modelini bir video oyunundan alınan 24.966 kareyle eğitir ve gerçek şehir caddelerinde test eder.
Pratik kullanım alanlarında da aynı örüntü görülür. Otonom araçlar, gerçek sürüş görüntülerini sentetik veriler ve simülatör çıktılarıyla destekler; tıbbi görüntü analizi modelleri farklı tarayıcı ve hastanelerde çalışmalıdır; tarım modelleri ise yeni tarlalar, ürün çeşitleri ve mevsimlerle karşılaşır. Tespit modelleri çoğu zaman kendi kendine eğitimle uyarlanır: Ultralytics Python paketindeki auto_annotate işlevi, YOLO26 tespit modelini etiketsiz görüntü klasöründe çalıştırır, algılanan her kutuyu Meta'nın Segment Anything Model (SAM) modeliyle işler ve YOLO biçiminde segmentasyon etiketleri yazar; böylece kaynak alanda eğitilmiş bir tespit modeli, hedef görüntüleri inceleme ve ince ayar için sözde etiketleyebilir.
UDA ve İlgili Ayarlar#
Denetimli ince ayar, hedef alandan etiketler gerektirir; yarı denetimli öğrenme ise etiketli ve etiketsiz verilerin aynı dağılımdan geldiğini varsayar. Alan genellemesinde hiç hedef verisi yoktur; bunun yerine veri artırma ve alan rastgeleleştirme ile görülmemiş alanlara karşı sağlamlık eğitilir. Dağılımsal açıdan sağlam optimizasyon, olası kaymaların tamamına hazırlık sağlarken UDA, görüntülerini daha önce gördüğü tek bir hedef alana uyum sağlar. Veri kaymasını izleme ise dağıtılmış bir modelin uyarlama gerektiren yeni bir alana ne zaman geçtiğini gösterir.










