Model ağırlıklarının yapay zeka bilgisi olarak nasıl işlev gördüğünü öğrenin. Ultralytics daha hızlı ve daha doğru eğitim ve çıkarım için optimize edilmiş ağırlıkları nasıl kullandığını keşfedin.
Model ağırlıkları, makine öğrenimi modelinde girdi verilerini tahmin edilen çıktılara dönüştüren öğrenilebilir parametrelerdir. Sinir ağında, bu ağırlıklar farklı katmanlardaki nöronlar arasındaki bağlantıların gücünü temsil eder. Model başlatıldığında, bu ağırlıklar genellikle rastgele, küçük değerlere ayarlanır, yani model hiçbir şey "bilmez". Eğitim adı verilen bir süreçle model, yaptığı hatalara göre bu ağırlıkları yinelemeli olarak ayarlar ve verilerdeki kalıpları, özellikleri ve ilişkileri yavaş yavaş öğrenir. Model ağırlıklarını, AI'nın "hafızası" veya "bilgisi" olarak düşünebilirsiniz; bunlar, sistemin eğitim verilerinden öğrendiklerini depolar. .
Sinir ağını eğitmenin temel amacı, modelin tahminleri ile gerçek veriler arasındaki hatayı en aza indiren optimal model ağırlıkları kümesini bulmaktır. Bu süreç, verilerin ağ üzerinden geçirilmesini içerir— Bu süreç, verilerin ağdan geçirilmesini (ileri geçiş 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, Stochastic Gradient Descent (SGD) gibi bir optimizasyon algoritması veya YOLO26'da kullanılan daha yeni Muon optimizer, her bir ağırlığın hataya ne kadar katkıda bulunduğunu hesaplar. Bu, modelin hatasını azaltmak için ağırlıkların yeniden hesaplanmasına yol açar.
Geri yayılım adı verilen bir teknikle, algoritma bir sonraki seferdeki hatayı azaltmak için ağırlıkları hafifçe günceller. Bu döngü, model ağırlıkları stabilize olana ve sistem yüksek doğruluk elde edene kadar binlerce veya milyonlarca kez tekrarlanır. Eğitim tamamlandığında, ağırlıklar "dondurulur" ve kaydedilir, böylece model yeni, görülmemiş veriler üzerinde çıkarım yapmak için kullanılabilir.
weights and biases birbiriyle birlikte çalışsa da farklı amaçlara hizmet ettikleri için araları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 ederken) önyargılar aktivasyon fonksiyonunun sola veya sağa kaydırılmasını sağlar. Bu ofset, tüm girdi özellikleri sıfır olsa bile modelin verilere daha iyi uyum sağlamasını garanti eder. Ağırlıklar ve önyargılar birlikte, Convolutional Neural Networks (CNNs) gibi mimarilerin davranışını tanımlayan öğrenilebilir parametreleri oluşturur. Convolutional Neural Networks (CNNs) gibi mimarilerin davranışını tanımlayan öğrenilebilir parametreleri oluşturur.
Model ağırlıkları, AI sistemlerinin çeşitli endüstrilerde çalışmasını sağlayan temel bileşendir. İşte bunların nasıl uygulandığına dair iki somut örnek:
Uygulamada, model ağırlıklarıyla çalışmak, eğitilmiş parametreleri bir dosyaya kaydetmeyi ve daha sonra bunları tahmin veya
için yüklemeyi içerir. ince ayarUltralytics
Ultralytics
ekosisteminde, bunlar genellikle şu şekilde depolanır: .pt (PyTorch) dosyaları.
YOLO modeline önceden eğitilmiş ağırlıkları yükleme ve tahmin yapma işleminin basit bir örneği aşağıda verilmiştir:
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.")
Model ağırlıklarının en güçlü yönlerinden biri taşınabilirlikleridir. Geliştiriciler, büyük veri kümeleri ve önemli hesaplama gücü gerektiren sıfırdan model eğitimi yerine genellikle transfer öğrenimini kullanırlar. Bu, COCO gibi büyük bir veri kümesinde önceden eğitilmiş ağırlıklara sahip bir modelin alınmasını içerir. 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 algılayıcısından ağırlıkları alıp bunları daha küçük bir güneş paneli veri setinde ince ayar yapabilirsiniz. Önceden eğitilmiş ağırlıklar kenarları, şekilleri ve dokuları zaten anladığı için model çok daha hızlı yakınsar ve daha az etiketli veri gerektirir. Ultralytics 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.
Modern AI araştırmaları genellikle performanstan ödün vermeden model ağırlıklarının dosya boyutunu küçültmeye odaklanır; bu süreç model niceleme olarak bilinir. Ağırlıkların hassasiyetini azaltarak (örneğin, 32 bit kayan noktadan 8 bit tamsayıya), geliştiriciler bellek kullanımını önemli ölçüde azaltabilir ve çıkarım hızını artırabilir. Bu, cep telefonları veya Raspberry Pi cihazları gibi kaynakları sınırlı donanımlarda modellerin dağıtılması için çok önemlidir. Ek olarak, budama gibi teknikler, çıktıya çok az katkıda bulunan ağırlıkları ortadan kaldırarak gerçek zamanlı uygulamalar için modeli daha da verimli hale getirir.