Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Momentum (Optimization)

Momentum optimizasyonu, model eğitimini hızlandırmak, gürültülü güncellemeleri yumuşatmak ve öğrenme oranını dengelerken yakınsamayı iyileştirmek için geçmiş gradyanlardan yararlanır.

Momentum, gradyan tabanlı eğitime önceki güncellemelerin belleğini kazandıran bir optimizasyon tekniğidir. Mevcut gradyanı, önceki gradyanların giderek azalan etkili geçmişiyle birleştirerek tutarlı yönlerde hız kazanır ve ileri geri hareketi azaltır. Bu, makine öğrenimi modellerinin eğitim hedefini daha verimli biçimde en aza indirmesine yardımcı olur. Arama motoru optimizasyonu web sitesi görünürlüğüyle ilgilidir; momentum ise model parametrelerine yönelik sayısal güncellemelerle ilgilidir.

Momentum Nasıl Çalışır#

Gradyan inişi sırasında model, ağırlıklarını gradyanın ters yönünde hareket ettirir; gradyan, kayıp fonksiyonunun en hızlı arttığı yöndür. Polyak momentumu veya ağır top yöntemi olarak da adlandırılan klasik momentum, bu harekete atalet kazandırır. Boris Polyak, bunu yinelemeli yöntemleri hızlandırmaya ilişkin 1964 tarihli çalışmasında tanıttı.

Optimizasyon algoritması, her parametre için birikmiş değer içeren bir hız tamponu tutar. Her güncellemede eski tampon, momentum katsayısıyla çarpılır; mevcut gradyan eklenir ve ortaya çıkan tampon, öğrenme oranı ile çarpıldıktan sonra ağırlıklardan çıkarılır. Sinir ağlarında bu gradyanları geri yayılım sağlar; optimizasyon algoritması tamponu güncellemeler arasında saklar.

Momentum, özellikle eğriliğin bir vadinin enine doğru dik, tabanı boyunca ise hafif olduğu uzun ve dar kayıp yüzeylerinde yararlıdır. Vadi boyunca tekrar tekrar aynı yönü gösteren gradyanlar birikirken, vadiyi enine kesen bileşenler kısmen birbirini götürür. Stokastik gradyan inişi kullanıldığında bu bellek, mini yığınlar arasındaki dalgalanmaları da yumuşatır. Momentumun ikinci dereceden kayıplardaki dinamikleri, hem hızlanmayı hem de minimuma yakın bölgelerde ortaya çıkabilecek salınımları açıklar.

Genellikle beta veya mu ile gösterilen momentum katsayısı, çoğunlukla sıfır ile bir arasında değer alır. Sıfır, standart gradyan inişine karşılık gelir; bire yaklaşan değerler eski gradyanları daha uzun süre bellekte tutar. 0.9 yaygın bir başlangıç değeridir. Normalize edilmemiş bir hız tamponunda ve sabit bir gradyanla, birikmiş hız 0.9 değerinde bu gradyanın on katına, 0.99 değerinde ise 100 katına yaklaşır. Bu nedenle momentum ve öğrenme oranı, hiperparametre ayarı sırasında birbirini güçlü biçimde etkiler.

Aşırı agresif bir bileşim, güncellemelerin minimum noktayı tekrar tekrar aşmasına ve kaybın salınmasına ya da eğitim sürecinin ıraksamasına yol açar. Bu durum, pürüzsüz ikinci dereceden amaç fonksiyonlarında bile görülür. Öğrenme oranı çizelgesi eğitim boyunca güncelleme büyüklüğünü değiştirirken momentum, yön bilgisinin geçmişten ne ölçüde korunacağını belirler.

Birbiriyle yakından ilişkili iki optimizasyon algoritması, bu geçmiş bilgiyi farklı biçimlerde kullanır:

  • Nesterov momentumu, korunan hız kullanılarak elde edilen ileriye dönük bir konumdaki gradyanı hesaplar; böylece gradyan, öngörülen hareketi düzeltebilir.
  • Adam, üstel ağırlıklı gradyan ortalamasını, güncellemeleri her parametre için ayrı ayrı ölçeklendiren kareli gradyan ortalamasıyla birleştirir. beta1, gradyan belleğini kontrol eder.

Minimal Bir PyTorch Örneği#

Bu PyTorch örneği, uzun ve dar ikinci dereceden bir amaç fonksiyonunda aynı başlangıç noktalarını ve öğrenme oranlarını karşılaştırır. Resmî SGD uygulaması, momentum tamponunu otomatik olarak yönetir.

import torch

# Curvature is 50 times greater along the second coordinate.
scale = torch.tensor([1.0, 50.0])

for momentum in (0.0, 0.9):
    weights = torch.tensor([5.0, 1.0], requires_grad=True)
    optimizer = torch.optim.SGD([weights], lr=0.015, momentum=momentum)

    for step in range(100):
        optimizer.zero_grad()
        loss = (scale * weights.square()).sum()
        loss.backward()
        optimizer.step()

    final_loss = (scale * weights.square()).sum().item()
    print(f"Momentum {momentum}: loss = {final_loss:.6f}")

100 güncellemeden sonra kayıp, momentumsuz yaklaşık 0.056531, momentumla ise 0.000216 olur. Biriken yön bilgisi, sığ koordinat boyunca ilerlemeyi hızlandırır.

Bilgisayarlı Görü Eğitimi Kullanım Alanları#

Momentum, görüntü sınıflandırma ve nesne tespiti için kullanılan evrişimli sinir ağlarının eğitimini destekler. Ultralytics YOLO eğitimi, optimizer="SGD" seçildiğinde Nesterov momentumunu etkinleştirir; momentum ayarı ise korunan güncelleme geçmişini kontrol eder. Eğitici uygulaması, bu katsayıyı nesterov=True ile optimizasyon algoritmasına iletir.

Önemli bir uygulama örneği, ImageNet için kullanılan özgün ResNet eğitim prosedürüdür. Bu modellerde momentum 0.9 olan SGD, 256 yığın boyutu, 0.0001 ağırlık azalması ve hata sabit bir platoya ulaştığında onda birine düşürülen 0.1 başlangıç öğrenme oranı kullanıldı.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla