Masked Autoencoders (MAE)
Maskeli otomatik kodlayıcılar, görüntü parçalarının çoğunu gizler ve eksik pikselleri yeniden oluşturması için bir ağı eğitir; böylece etiketler olmadan özellikler öğrenir. Maskeleme kodunu içerir.
Maskeli otomatik kodlayıcılar (MAE), görüntüler için bir öz denetimli öğrenme yöntemidir: Model, bir görüntünün rastgele seçilmiş büyük bir bölümünü (genellikle %75) gizler ve görünür kısımlardan eksik pikselleri yeniden oluşturmayı öğrenir. Kaiming He ve Meta AI'daki çalışma arkadaşları, yöntemi 2021 tarihli Maskeli Otomatik Kodlayıcılar Ölçeklenebilir Görsel Öğrenicilerdir makalesinde tanıttı ve BERT'in maskeli sözcük tahminini görsel Transformer'lara uyarladı. Kodlayıcı yalnızca görünür yamaları işlediği için MAE ön eğitimi, tüm yamaları işlemekten en az 3 kat daha hızlıydı. Bu yöntemle önceden eğitilmiş bir ViT-Huge modeli, ImageNet üzerinde %87.8 doğruluğa ulaşarak o dönemde yalnızca ImageNet-1K verisi kullanan yöntemler arasındaki en iyi sonucu elde etti. Önceden eğitilmiş kodlayıcı, sınıflandırma, tespit ve segmentasyon için bir omurga görevi görür.
Maskeli Otomatik Kodlayıcılar Nasıl Çalışır#
MAE, görüntüyü örtüşmeyen yamalardan oluşan bir ızgaraya böler; 224x224 boyutunda bir girdi için 16x16 piksellik 196 yama oluşturur ve bunların çoğunu rastgele gizler. Kodlayıcı ile çözücü, bilerek farklı tasarlanmıştır. Standart bir ViT olan kodlayıcı yalnızca görünür yamalar üzerinde çalışır; bu da işlem ve bellek kullanımını yaklaşık dörtte bire indirir. Hafif bir çözücü, varsayılan olarak 8 Transformer bloğuyla ve belirteç başına kodlayıcının hesaplama maliyetinin %10'undan azını kullanarak, kodlanmış görünür yamaları ve gizli her konum için ortak, öğrenilebilir bir maske belirtecini alır ve her gizli yamanın piksel değerlerini tahmin eder. Kayıp fonksiyonu yalnızca gizli yamalardaki ortalama karesel hatadır; hedef olarak yama başına normalize edilmiş piksellerin kullanılması, öğrenilen özellikleri daha da iyileştirmiştir. Ön eğitimden sonra çözücü atılır:
Görevi kullanışlı kılan, yüksek maskeleme oranıdır. Görüntüdeki komşu yamalar oldukça fazla tekrar içerir; bu nedenle yalnızca birkaç yama gizlendiğinde model, her boşluğu komşularından çıkarım yaparak doldurabilir. Yamaların %75'i gizlendiğinde model, parçalı bilgilerden bütün nesneleri ve sahneleri çıkarsamak zorunda kalır; bu da şekilleri, parçaları ve bağlamı öğrenmesini sağlar. Buna karşılık BERT, her sözcük zaten yoğun bir anlam taşıdığı için sözcüklerin yalnızca %15'ini maskeler.
MAE'nin temelindeki maskeleme adımı, dört görüntülük bir grup üzerinde PyTorch kullanılarak aşağıda gösterilmiştir:
import torch
torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224) # a batch of 4 RGB images
# Patchify: each 224x224 image becomes 196 patches of 16x16 pixels, flattened to 768 values
patches = images.unfold(2, 16, 16).unfold(3, 16, 16).permute(0, 2, 3, 1, 4, 5).reshape(4, 196, 768)
# Random masking as in the MAE reference code: rank patches by random noise and keep the first 25%
keep = int(196 * (1 - 0.75))
ids_keep = torch.argsort(torch.rand(4, 196), dim=1)[:, :keep]
visible = torch.gather(patches, 1, ids_keep.unsqueeze(-1).expand(-1, -1, 768))
# Mask of hidden patches (1 = hidden): the decoder predicts these, and the loss is averaged over them only
mask = torch.ones(4, 196).scatter(1, ids_keep, 0)
print(f"Encoder input: {visible.shape[1]} of {patches.shape[1]} patches per image")
print(f"Reconstruction targets: {int(mask[0].sum())} hidden patches per image")Encoder input: 49 of 196 patches per image ve Reconstruction targets: 147 hidden patches per image değerlerini yazdırır. Bu nedenle kodlayıcının Transformer katmanları, tam görüntü dizisinin dörtte biri uzunluğunda bir dizi işler. Dikkat mekanizması her belirteci diğer tüm belirteçlerle karşılaştırdığı için her dikkat puanı matrisi, 196 yamanın tamamı kullanıldığında olacağının on altıda biri boyutundadır.
Sonuçlar ve Varyantlar#
MAE özellikleri, ince ayar sonrasında en güçlü hâline gelir. Doğrusal yoklamada, MAE ile önceden eğitilmiş bir ViT-L kodlayıcı %73.5 ImageNet doğruluğuna ulaştı; bu, karşılaştırmalı öğrenme yöntemlerinin gerisindeydi. Ancak COCO nesne tespiti ve segmentasyona aktarılıp ince ayar yapıldığında MAE ön eğitimi, denetimli ön eğitimden daha iyi sonuç verdi. Yöntem, durağan görüntülerin çok ötesine uyarlandı: VideoMAE bir video klibindeki uzay-zaman yamalarının %90'ını veya daha fazlasını maskeler, SatMAE uydu görüntüleri üzerinde ön eğitim yapar ve ConvNeXt V2, seyrek evrişimlerle maskeli otomatik kodlamayı evrişimli ağlara taşır.
Maskeli ön eğitim, yaygın olarak kullanılan temel modellerin de temelinde yer alır. Ultralytics paketinde çalışan Meta'nın Segment Anything Model (SAM) modeli, görüntü kodlayıcısını MAE ile önceden eğitilmiş bir ViT üzerine kurar. ViT-B sürümü olan sam_b.pt, kutuları bir YOLO26 dedektöründen alıp segmentasyon etiketlerine dönüştüren Ultralytics auto_annotate içindeki varsayılan maske modelidir.
Maskeli Otomatik Kodlayıcılar ve İlgili Terimler#
- Otomatik kodlayıcı: Girdinin tamamını küçük bir koda sıkıştırır ve yeniden oluşturur. MAE ise eksik bir girdi görür ve hiç görmediği parçaları tahmin etmek zorundadır; kodlayıcısının çıktısında görünür her yama için bir vektör bulunur.
- Maskeli görüntü modelleme: MAE'nin ait olduğu daha geniş yöntem ailesidir. BEiT, maskeli yamalar için ayrık görsel belirteçleri tahmin eder; SimMIM ise maske belirteçlerini kodlayıcıdan geçirirken MAE pikselleri tahmin eder ve maske belirteçlerini kodlayıcının dışında tutar.
- Karşılaştırmalı öğrenme: Aynı görüntünün artırılmış görünümlerini eşleştirerek öğrenir ve çözücü gerektirmez. Dondurulmuş hâlde daha iyi çalışan özellikler üretirken MAE özellikleri ince ayarla daha fazla gelişir.
- Ortak Gömme Tahmin Mimarisi (JEPA): Görüntü bölgelerini de gizler, ancak pikselleri yerine bu bölgelerin gömmelerini tahmin eder; böylece modelin kapasitesini doku ayrıntılarına harcamasını önler.










