One-Shot Learning
AI'da Tek Çekimlik Öğrenmeyi keşfet. Verimli bilgisayarlı görü için Ultralytics YOLO26 ve Siyam ağlarını kullanarak tek bir görüntüden nesneleri nasıl sınıflandıracağını öğren.
One-Shot Learning, nesne kategorileri hakkında tek bir eğitim örneğinden bilgi öğrenmek için tasarlanmış, machine learning (ML) alanında uzmanlaşmış bir sınıflandırma tekniğidir. Etkili bir şekilde genelleme yapmak için binlerce etiketli görsel içeren devasa datasets gerektiren geleneksel deep learning (DL) algoritmalarının aksine One-Shot Learning, insanın yeni bir kavramı anında kavrama bilişsel yeteneğini taklit eder. Örneğin bir kişi genellikle belirli bir egzotik kuşu yalnızca bir kez gördükten sonra tanıyabilir; bu metodoloji, artificial intelligence (AI) sistemlerinde bu verimliliği kopyalamaya çalışır. data labeling işlemlerinin pahalı olduğu, verinin kıt olduğu veya tüm modeli yeniden eğitmeden dinamik olarak yeni kategorilerin eklenmesi gereken senaryolarda özellikle değerlidir.
Kavramın Arkasındaki Mekanizmalar#
One-Shot Learning'in temel prensibi, hedefi standart sınıflandırmadan benzerlik değerlendirmesine kaydırmayı içerir. Bir neural network (NN) modelini belirli bir sınıf etiketini çıktılantıracak şekilde eğitmek (örn. "köpek" veya "kedi") yerine, model bir mesafe fonksiyonu öğrenir. Bunun için kullanılan yaygın bir mimari, aynı model weights değerlerini paylaşan iki özdeş alt ağdan oluşan Siamese neural network ağıdır.
Çalışma sırasında ağ, girdi görsellerini embeddings olarak bilinen kompakt sayısal vektörlere dönüştürmek için feature extraction gerçekleştirir. Sistem daha sonra yeni bir sorgu görselinin embedding değerini, tek referans "shot" görselinin embedding değeriyle karşılaştırır. Genellikle Euclidean distance veya cosine similarity kullanılarak hesaplanan matematiksel mesafe belirli bir eşiğin altındaysa, görsellerin aynı sınıfa ait olduğu belirlenir. Bu, modelin öğrenilen özellik uzayındaki yakınlıklarına dayanarak kimliği doğrulamasına veya nesneleri sınıflandırmasına olanak tanır.
Aşağıdaki Python kodu, ultralytics paketinden bir YOLO26 sınıflandırma modeli kullanarak embedding'lerin nasıl çıkarılacağını ve benzerliğin nasıl hesaplanacağını göstermektedir.
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model for feature extraction
model = YOLO("yolo26n-cls.pt")
# Extract embeddings for a reference 'shot' and a query image
# The embed() method returns the feature vector directly
shot_vec = model.embed("reference_img.jpg")[0]
query_vec = model.embed("query_img.jpg")[0]
# Calculate similarity (higher dot product implies greater similarity)
similarity = np.dot(shot_vec, query_vec) / (np.linalg.norm(shot_vec) * np.linalg.norm(query_vec))
print(f"Similarity Score: {similarity:.4f}")İlgili Paradigmleri Ayırt Etme#
One-Shot Learning'i diğer veri tasarruflu öğrenme tekniklerinden ayırt etmek önemlidir çünkü bunlar benzer sorunları farklı kısıtlamalar yoluyla çözerler:
- Few-Shot Learning (FSL): Bu, One-Shot Learning'i kapsayan daha geniş kategoridir. FSL'de modele, sınıf başına tipik olarak iki ila beş görselden oluşan küçük bir "destek seti" sağlanır. One-Shot Learning, destek seti boyutunun tam olarak bir olduğu uç durumdur.
- Zero-Shot Learning (ZSL): ZSL, modelin görsel olarak hiç görmediği kategorileri tanımakla ilgilenir. ZSL bir referans görsel yerine, natural language processing (NLP) aracılığıyla anlamsal niteliklere veya metin açıklamalarına güvenir (örn. görsel özellikleri "çizgili at" metin açıklamasıyla ilişkilendirerek bir "zebra"yı tanımlamak).
- Transfer Learning: Bu, ImageNet gibi büyük bir veritabanı üzerinde önceden eğitilmiş bir modeli alıp yeni bir görev üzerinde ince ayar (fine-tune) yapmayı içerir. Transfer learning, One-Shot Learning'de kullanılan özellik çıkarıcılarına güç verse de, standart transfer learning genellikle overfitting yaşanmadan ağırlıkları etkili bir şekilde güncellemek için birden fazla örnek gerektirir.
Gerçek Dünya Uygulamaları#
One-Shot Learning, devasa miktarlarda training data toplamanın pratik olmadığı sektörlerde yeteneklerin kilidini açmıştır.
Yüz Tanıma ve Güvenlik#
One-Shot Learning'in en yaygın uygulaması biyometrik güvenliktedir. Bir akıllı telefonda Face ID kurulurken veya bir çalışan erişim sistemine kaydolunurken cihaz, kullanıcının yüzünün tek bir matematiksel temsilini yakalar. Günlük kullanım sırasında facial recognition sistemi, kimliği doğrulamak için canlı kamera akışını saklanan bu "one shot" ile karşılaştırır. Bu, ışık veya açı değişikliklerinin benzerlik eşleşmesini bozmamasını sağlamak için temel FaceNet research çalışmasında tartışılanlar gibi güçlü embedding tekniklerine dayanır.
Endüstriyel Kalite Kontrol#
AI in manufacturing alanında, "kusurlu" parçalardan oluşan dengeli bir veri seti oluşturmak zordur çünkü kusurlar nadirdir ve tutarsızdır. One-Shot Learning, computer vision (CV) sistemlerinin tek bir "mükemmel" referans parçanın temsilini öğrenmesini sağlar. Montaj hattında bu referanstan önemli ölçüde uzak bir embedding üreten herhangi bir öğe anomaly detection için işaretlenir. Bu, kırık parçalara ait binlerce görsele ihtiyaç duymadan anında kalite güvencesi sağlar; bu süreç Ultralytics Platform aracılığıyla yönetilebilir ve devreye alınabilir.
Zorluklar ve Gelecek Görünümü#
Güçlü olmasına rağmen One-Shot Learning gürültüye karşı hassastır; tek referans görsel bulanık, engellenmiş veya temsil edici değilse modelin o sınıfı tanıma yeteneği önemli ölçüde düşer. Araştırmacılar, model kararlılığını ve genellemesini iyileştirmek için genellikle meta-learning veya "öğrenmeyi öğrenme" yöntemini kullanır. Mimariler evrildikçe, YOLO26 gibi yeni modeller, tek seferlik çıkarımı daha hızlı ve daha doğru hale getiren daha güçlü özellik çıkarıcıları bünyesine katmakta ve daha uyarlanabilir ve akıllı edge AI cihazlarının önünü açmaktadır.






