Contrastive Learning: Etiket Olmadan Temsil Öğrenme

Etiketli veri pahalı, etiketlenmemiş veri bol. Contrastive learning bu asimetriyi kullanarak, bir örneğin hangi sınıfa ait olduğunu sormak yerine daha basit ama çok güçlü bir soruyu soruyor: hangi örnekler birbirine yakın olmalı, hangileri uzak?

Eğer bu ilişkileri kendim kurduğum çiftlerle cevapleyebilirsem, hiç görmediğim görevlere bile aktarılabilen bir temsil ağı eğitebilirim. SimCLR, MoCo, CLIP ve modern self-supervised learning'in çoğu bu fikre dayanıyor.

Sistem basit: bir encoder'a (sinir ağı) giriş x veriyorum, o bana bir vektör z = f(x) döndürüyor. Contrastive learning, z'nin ne olması gerektiğini söylemiyor, sadece ilişkilerden bahsediyor. Bazı giriş çiftleri benzer, bazıları farklı. Ağ, bu ilişkileri öğrenerek veri içindeki anlamlı yapıyı keşfediyor.

Pratik olarak, bir resmin iki farklı augmentasyonunu (döndürme, kesme, renk değişimi) aynı örneğin "pozitif çifti" olarak işaretliyorum. Diğer resimleri negatif yapıyorum. Ağ, pozitif çiftleri yaklaştırmaya, negatifleri uzaklaştırmaya çalışırken, resimler hakkında anlamlı özellikler öğreniyor, hiç sınıf etiketi olmadan.

Bu yaklaşımın gücü, eğitim sırasında görmediği veri üzerinde de işe yaraması. Öğrenilen temsiller, sınıflandırma, nesne tespiti, hatta farklı alanlara aktarılabiliyor. Ama dikkat: yanlış negatif seçimi, zayıf augmentasyon ya da küçük batch size bu yöntemi bozabilir.

Contrastive learning hakkında detaylı açıklama için bu kaynağı oku.

Son olarak: contrastive learning, etiketleme maliyetini düşürmek isteyen projeler için oyun değiştirici değil, ama gerçek bir seçenek. Eğer yüksek kaliteli etiketli veri sağlamakta zorlanıyorsan, buna bakmalısın.

konu hakkında tepkinizi verebilirsiniz