Model Weights
Model ağırlıklarının yapay zekanın bilgisi olarak nasıl işlev gördüğünü öğren. Ultralytics YOLO26'nın daha hızlı ve daha doğru eğitim ve çıkarım için optimize edilmiş ağırlıkları nasıl kullandığını keşfet.
Model ağırlıkları, girdi verilerini tahmin edilen çıktılara dönüştüren makine öğrenimi modelindeki öğrenilebilir parametrelerdir. Bir sinir ağında bu ağırlıklar, farklı katmanlardaki nöronlar arasındaki bağlantıların gücünü temsil eder. Bir model başlatıldığında bu genellikle rastgele, küçük değerlere ayarlanır; bu da modelin hiçbir şey "bilmediği" anlamına gelir. Eğitim adı verilen süreç sayesinde model, yaptığı hatalara dayanarak bu ağırlıkları yinelemeli olarak ayarlar ve verilerdeki örüntüleri, özellikleri ve ilişkileri tanımayı yavaş yavaş öğrenir. Model ağırlıklarını yapay zekanın "belleği" veya "bilgisi" olarak düşünebilirsin; sistemin eğitim verilerinden öğrendiklerini depolar.
Öğrenmede Ağırlıkların Rolü#
Bir sinir ağını eğitmenin birincil amacı, modelin tahminleri ile gerçek yer tutucu (ground truth) arasındaki hatayı en aza indiren optimal model ağırlıkları kümesini bulmaktır. Bu süreç, verilerin ağ üzerinden geçirilmesini (ileri geçiş - forward pass olarak bilinen bir adım) ve ardından belirli bir kayıp fonksiyonu kullanılarak bir kayıp değerinin hesaplanmasını içerir. Tahmin yanlışsa, Stokastik Gradyan İnişi (SGD) gibi bir optimizasyon algoritması veya YOLO26 içinde kullanılan daha yeni Muon optimizatörü, her bir ağırlığın hataya ne kadar katkıda bulunduğunu hesaplar.
Geri yayılım adı verilen bir teknik sayesinde algoritma, bir sonraki sefer hatayı azaltmak için ağırlıkları biraz günceller. Bu döngü, model ağırlıkları kararlı hale gelene ve sistem yüksek doğruluğa ulaşana kadar binlerce veya milyonlarca kez tekrarlanır. Eğitim tamamlandığında ağırlıklar "dondurulur" ve kaydedilir; bu sayede modelin yeni, görülmemiş veriler üzerinde çıkarım için dağıtılmasına olanak tanınır.
Model Ağırlıkları ve Sapmalar (Biases)#
Birlikte çalışsalar da farklı amaçlara hizmet ettikleri için ağırlıklar ile biaslar (sapmalar) arasında ayrım yapmak önemlidir. Model ağırlıkları nöronlar arasındaki bağlantının gücünü ve yönünü belirlerken (aktivasyonun eğimini kontrol eder), biaslar aktivasyon fonksiyonunun sola veya sağa kaydırılmasını sağlar. Bu kaydırma, tüm girdi özellikleri sıfır olsa bile modelin verilere daha iyi uyum sağlamasını garanti eder. Ağırlıklar ve biaslar birlikte, Evrişimli Sinir Ağları (CNN'ler) gibi mimarilerin davranışını tanımlayan öğrenilebilir parametreleri oluşturur.
Gerçek Dünya Uygulamaları#
Model ağırlıkları, yapay zeka sistemlerinin çeşitli endüstrilerde çalışmasını sağlayan temel bileşendir. İşte bunların nasıl uygulandığına dair iki somut örnek:
- Perakendede Bilgisayarlı Görü: Bir akıllı süpermarket sisteminde, YOLO26 gibi bir model, bir raftaki ürünleri tanımlamak için eğitilmiş ağırlıklarını kullanır. Ağırlıklar; bir mısır gevreği kutusunun şekli veya bir kola kutusunun rengi gibi görsel özellikleri "öğrenmiştir"; bu da sistemin öğeleri tespit etmesini, envanteri yönetmesini ve hatta otomatik ödeme süreçlerini verimli bir şekilde kolaylaştırmasını sağlar.
- Tıbbi Görüntü Analizi: Sağlık hizmetlerinde derin öğrenme modelleri, röntgenleri veya MRI taramalarını analiz etmek için özel ağırlıklar kullanır. Örneğin, tümör tespiti için eğitilmiş bir model, sağlıklı doku ile potansiyel anomalileri birbirinden ayırmak için ağırlıklarını kullanır. Bu ağırlıklar, piksel verilerindeki insan gözü için ince olabilecek karmaşık, doğrusal olmayan örüntüleri yakalayarak radyologların daha hızlı teşhis koymasına yardımcı olur.
Ağırlıkları Kaydetme ve Yükleme#
Uygulamada, model ağırlıklarıyla çalışmak, eğitilmiş parametrelerin bir dosyaya kaydedilmesini ve tahmin veya ince ayar için daha sonra yüklenmesini içerir. Ultralytics ekosisteminde bunlar genellikle .pt (PyTorch) dosyaları olarak saklanır.
İşte önceden eğitilmiş ağırlıkların bir YOLO modeline nasıl yükleneceğine ve tahminin nasıl çalıştırılacağına dair basit bir örnek:
from ultralytics import YOLO
# Load a model with pre-trained weights (e.g., YOLO26n)
model = YOLO("yolo26n.pt")
# Run inference on an image using the loaded weights
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")Transfer Öğrenme ve İnce Ayar#
Model ağırlıklarının en güçlü yönlerinden biri taşınabilirlikleridir. Büyük veri setleri ve önemli miktarda işlem gücü gerektiren sıfırdan bir model eğitmek yerine, geliştiriciler genellikle aktarımlı öğrenmeyi kullanırlar. Bu, COCO veya ImageNet gibi büyük bir veri setinde önceden eğitilmiş ağırlıklara sahip bir modeli alıp belirli bir göreve uyarlamayı içerir.
Örneğin, genel bir nesne dedektöründen ağırlıkları alıp bunları daha küçük bir güneş paneli veri seti üzerinde ince ayara tabi tutabilirsin. Önceden eğitilmiş ağırlıklar kenarları, şekilleri ve dokuları halihazırda anladığından model çok daha hızlı yakınsar ve daha az etiketli veri gerektirir. Ultralytics Platform gibi araçlar bu süreci basitleştirerek ekiplerin veri setlerini yönetmesine, bulutta modeller eğitmesine ve optimize edilmiş ağırlıkları uç cihazlara sorunsuz bir şekilde dağıtmasına olanak tanır.
Sıkıştırma ve Optimizasyon#
Modern yapay zeka araştırmaları genellikle model niceleme (quantization) olarak bilinen bir süreçle, performanstan ödün vermeden model ağırlıklarının dosya boyutunu küçültmeye odaklanır. Geliştiriciler, ağırlıkların hassasiyetini düşürerek (örneğin 32 bitlik kayan noktalı sayılardan 8 bitlik tam sayılara) bellek kullanımını önemli ölçüde azaltabilir ve çıkarım hızını artırabilir. Bu, cep telefonları veya Raspberry Pi cihazları gibi kaynak kısıtlı donanımlarda modelleri dağıtmak için çok önemlidir. Ek olarak, budama (pruning) gibi teknikler çıktıya çok az katkıda bulunan ağırlıkları kaldırarak gerçek zamanlı uygulamalar için modeli daha da optimize eder.






