Saliency Maps
Belirginlik haritaları, her pikselin modelin tahminini ne kadar etkilediğini puanlayan ısı haritalarıdır. Gradyan, CAM ve bozma yöntemleri; sınırlamaları ve kullanım alanları.
Belirginlik haritası, girdi görüntüsünün her pikselinin bir sinir ağının çıktısını, genellikle tahmin edilen tek bir sınıfın skorunu, ne ölçüde etkilediğini gösteren bir ısı haritasıdır. Bilgisayarlı görü alanındaki açıklanabilir yapay zekânın (XAI) en yaygın araçlarından biridir: nesnenin üzerinde aydınlanan bir harita tahmini desteklerken filigran, arka plan veya görüntü kenarında aydınlanan bir harita kestirme yolu açığa çıkarır. Belirginlik haritası çıktıyı girdi pikselleriyle ilişkilendirir; bu yönüyle ağın içindeki özellik haritalarından ve bir katmanın bilgiyi nereden topladığını gösteren görü Transformer'ının dikkat ağırlıklarından ayrılır. Algı araştırmaları bu terimi, görsel dikkat üzerine Itti-Koch modeli örneğinde olduğu gibi, insan gözlerinin bir sahnede yöneldiği yerleri gösteren harita anlamında da kullanır.
Gradyan Belirginliği Nasıl Çalışır#
Simonyan, Vedaldi ve Zisserman'ın (2013) gradyan belirginlik haritası, model ağırlıkları yerine bir sınıf skorunun girdi görüntüsüne göre gradyanını hesaplamak için geri yayılımı kullanır. Bir pikseldeki gradyan büyüklüğü, oradaki küçük bir değişikliğin skoru ne ölçüde değiştireceğini gösterir; üç renk kanalındaki en büyük mutlak değer, piksel başına tek bir değer verir. Bir ImageNet sınıflandırıcısı için bu işlem PyTorch ile bir ileri ve bir geri geçiş maliyetindedir:
import urllib.request
from PIL import Image
from torchvision.models import ResNet50_Weights, resnet50
from torchvision.utils import save_image
# Load an ImageNet classifier and track gradients on the input pixels
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg"))
x = weights.transforms()(image).unsqueeze(0).requires_grad_()
# Backpropagate the top class score to the pixels
scores = model(x)
top = scores.argmax().item()
scores[0, top].backward()
# Saliency: largest absolute gradient across the color channels, scaled for display
saliency = x.grad.abs().amax(dim=1)
save_image((saliency / saliency.quantile(0.99)).clamp(max=1), "saliency.png")
print(f"Explained class: {weights.meta['categories'][top]}")Explained class: minibus çıktısını yazdırır ve sınıflandırıcının gördüğü merkez kırpımın grenli, 224 × 224 boyutlu bir haritasını kaydeder: ham gradyanlar pikselden piksele gürültülüdür; sonraki yöntemler bu gürültüyü ortalama alarak veya özellik haritaları üzerinde çalışarak azaltır.
Belirginlik Yöntemleri#
- SmoothGrad: Gürültü eklenmiş görüntü kopyalarının belirginlik haritalarındaki gradyanların ortalamasını almak, beneklerin çoğunu ortadan kaldırır.
- Bütünleşik gradyanlar: Siyah bir görüntü gibi temel bir görüntüden girdiye uzanan yol boyunca gradyanları biriktirmek, piksel skorlarının iki sınıf skoru arasındaki farka eşit olmasını sağlar.
- Grad-CAM: Son evrişim katmanının özellik haritalarını ortalama gradyanlarıyla ağırlıklandırıp sonucu büyütmek, kaba ancak sınıfa özgü bölgeler verir. LayerCAM (2021) her konumu ayrı ayrı ağırlıklandırdığından, daha erken ve daha yüksek çözünürlüklü katmanlar da kullanılabilir haritalar üretir.
- Örtme ve diğer bozulma yöntemleri: Görüntü parçalarını gizleyip skorun ne kadar düştüğünü ölçmek gradyan gerektirmez; ancak her parça için bir ileri geçiş gerekir.
Ultralytics YOLO, nesne algılama ve diğer görevler için LayerCAM haritaları hesaplar: tahmin modunda visualize=True ile algılama başlığına giren özellik haritalarının her konumunu, güvenilir her tahminin sınıf skoruna yönelik pozitif gradyanıyla ağırlıklandırır ve her görüntü için tek bir birleşik ısı haritası kaydeder.
from ultralytics import YOLO
# YOLO26 algılamalarının ardındaki kanıtı gösteren bir LayerCAM ısı haritası kaydet
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg", visualize=True)Çalıştırmanın kayıt dizinine bus_cam.jpg yazar, NMS yinelenenleri kaldırmadan önce en güçlü ham YOLO26 tahminlerinden güven eşiğini aşan en fazla 16 tanesini açıklar ve classes=[0] eklendiğinde yalnızca kişileri eşler.
Belirginlik Haritalarının Sınırları#
Belirginlik haritası, modelin nasıl akıl yürüttüğünü değil, çıktının hangi bölgelere duyarlı olduğunu gösterir; modelin nasıl akıl yürüttüğünü anlamak mekanistik yorumlanabilirliğin hedefidir. Adebayo ve çalışma arkadaşlarının 2018 tarihli sağlamlık kontrolleri, güdümlü geri yayılım gibi bazı popüler yöntemlerin model ağırlıkları rastgeleleştirildikten sonra neredeyse aynı haritayı ürettiğini ortaya koydu; dolayısıyla bu haritalar eğitilmiş modelden çok görüntü kenarlarını yansıtır. Tahmini değiştirmeyen küçük girdi bozulmaları da haritaları keskin biçimde değiştirebilir.
Gerçek Dünya Uygulamaları#
- Kestirme yolları bulma: Isı haritaları, PASCAL VOC veri kümesi üzerinde eğitilen bir sınıflandırıcının atları kısmen birçok at fotoğrafında bulunan bir telif hakkı etiketi sayesinde tanıdığını gösterdi. Bu, doğruluk ölçümünde görünmeyen bir "Clever Hans" davranışıydı.
- Tıbbi görüntüleme: Göğüs röntgeni sınıflandırıcıları geliştirenler, kanıtın tarayıcı metni veya göğüs drenleri gibi tedavi araçlarında değil akciğerlerde bulunduğunu denetler; pnömotoraks sınıflandırıcılarının bu tür araçlara dayandığı gösterilmiştir.
- Görüntü kırpma: Twitter, görüntü önizlemelerini insan dikkatini modelleyen bir belirginlik modelinin izleyicilerin önce bakacağını öngördüğü noktanın çevresinden kırpıyordu. Şirket araştırmacılarının 2021'de yaptığı bir denetim, bu kırpmaların bazı insan gruplarını sistematik olarak diğerlerine tercih ettiğini ortaya koydu.










