Contrastive Learning (Karşıtlıklı Öğrenme)

Karşıtlıklı Öğrenme, benzer örnekleri yakın ve farklı örnekleri uzak temsil ederek etiketsiz veriden özellik öğrenen öz-denetimli bir makine öğrenimi yöntemidir.

Karşıtlıklı öğrenme, bir modelin benzer örnekleri birbirine yakın, farklı örnekleri ise birbirinden uzak temsil etmeyi öğrendiği bir öz-denetimli makine öğrenimi paradigmasıdır. Temel fikir, aynı verinin farklı görünümlerini (augmentasyonlarını) pozitif çift olarak, rastgele seçilen farklı örnekleri ise negatif çift olarak kullanmaktır. Model, pozitif çiftlerin gömme vektörlerini uzayda birbirine yaklaştırırken negatif çiftleri uzaklaştıracak şekilde eğitilir. Bu yöntem, etiketli veriye olan bağımlılığı azaltarak büyük miktarda etiketsiz veriden anlamlı özellikler öğrenmeyi mümkün kılar. SimCLR, MoCo, BYOL ve CLIP gibi modern karşıtlıklı öğrenme çerçeveleri, görüntü tanıma, doğal dil işleme ve çok modlu görevlerde son derece başarılı sonuçlar üretmiştir. Karşıtlıklı öğrenmede kayıp fonksiyonu genellikle InfoNCE veya NT-Xent gibi formüller kullanır. Bu formüller, pozitif çiftin benzerliğini maksimize ederken negatif çiftlerin benzerliğini minimize eder. Sıcaklık (temperature) parametresi, öğrenmenin ne kadar sert veya yumuşak olacağını kontrol eder. Uygulama alanları son derece geniştir: tıbbi görüntü analizi, ses tanıma, moleküler biyoloji, öneri sistemleri ve hatta grafik verileri üzerinde çalışan modeller karşıtlıklı öğrenme tekniklerinden yararlanmaktadır. Özellikle CLIP modeli, görüntü ve metin çiftlerini karşıtlıklı öğrenme ile eğiterek sıfır-atımlı sınıflandırma ve görüntü-metin eşleştirme görevlerinde devrim yaratmıştır. Bu yöntemin gücü, modelin veri içindeki yapıyı ve anlam ilişkilerini insan etiketlemesi gerektirmeden keşfedebilmesinden kaynaklanır. Karşıtlıklı öğrenme aynı zamanda büyük dil modellerinin ve görüntü-dil modellerinin ön-eğitiminde kritik bir rol oynamaktadır.

Karşıtlıklı Öğrenme Nasıl Çalışır?

Karşıtlıklı öğrenme, bir veri noktasının iki farklı dönüşümünü (kırpma, renk değiştirme, bulanıklaştırma gibi augmentasyon teknikleri ile üretilen) pozitif çift olarak alır. Model, bu iki görünümün gömme vektörlerini birbirine yaklaştıracak şekilde eğitilir. Aynı zamanda, mini-batch içindeki diğer tüm örnekler negatif çift olarak kabul edilir ve bunların gömme vektörleri uzaklaştırılır. Bu süreç, modelin veri içindeki değişmez özellikleri — yani hangi dönüşümler yapılsa da değişmeyen semantik bilgiyi — öğrenmesini sağlar. Kayıp fonksiyonu olarak çoğunlukla InfoNCE kullanılır: bu fonksiyon, pozitif çiftin dot-product benzerliğini tüm negatiflerle karşılaştıran bir softmax cross-entropy kaybıdır.

Temel Çerçeveler ve Mimariler

SimCLR

Google Brain'in geliştirdiği basit ama güçlü çerçeve. Büyük batch boyutu ve projeksiyon başlığı ile yüksek performans elde eder.

MoCo

Facebook AI'ın momentum kontrast yöntemi. Hafıza kuyruğu (memory queue) sayesinde daha küçük batch boyutlarıyla çalışır.

BYOL

Bootstrap Your Own Latent — negatif örneklere gerek duymadan çalışan yenilikçi çerçeve. Online ve target ağ mimarisi kullanır.

CLIP

OpenAI'ın görüntü-metin çiftleriyle eğittiği model. Sıfır-atımlı transfer öğrenmede çığır açtı.

Uygulama Alanları

  • check_circle Görüntü sınıflandırma ve nesne tanıma ön-eğitimi:
  • check_circle Metin ve cümle benzerliği (semantic textual similarity):
  • check_circle Çok modlu öğrenme: görüntü-metin, ses-metin eşleştirme
  • check_circle Tıbbi görüntüleme: az etiketli veriyle hastalık tespiti
  • check_circle Öneri sistemleri: kullanıcı-ürün gömme öğrenimi
  • check_circle Grafik verileri üzerinde düğüm sınıflandırma:

Sıkça Sorulan Sorular

  • check_circle Karşıtlıklı öğrenme ile denetimli öğrenme arasındaki temel fark nedir?: Denetimli öğrenme etiketli veriye ihtiyaç duyarken, karşıtlıklı öğrenme etiketsiz veriden kendi kendine eğitim sinyali üretir. Model, veri augmentasyonları aracılığıyla pozitif ve negatif çiftler oluşturur.
  • check_circle Negatif çift sayısı neden önemlidir?: Daha fazla negatif çift, modelin daha ayırt edici özellikler öğrenmesini sağlar. SimCLR'de büyük batch boyutu, MoCo'da ise memory queue bu ihtiyacı karşılar.
  • check_circle BYOL neden negatif örnek kullanmadan çalışır?: BYOL, online ve target olmak üzere iki ağ kullanır. Target ağ momentum ile güncellenir ve collapse riski batch normalization ve predictor başlığı sayesinde önlenir.
  • check_circle Karşıtlıklı öğrenme hangi veri tiplerinde kullanılabilir?: Görüntü, metin, ses, zaman serisi ve grafik verileri dahil hemen hemen her veri tipinde uygulanabilir. Veri tipine özgü augmentasyon stratejileri gerektirir.