Online Learning
Çevrimiçi öğrenme, veriler akış hâlinde geldikçe modeli her seferinde bir örnek veya mini yığınla günceller; böylece model öğrenmeye devam eder ve yeniden eğitilmeden kavram kaymasına uyum sağlar.
Çevrimiçi öğrenme, bir modelin sabit bir veri kümesi üzerinde bir kez eğitilmek yerine sırayla gelen verilerden öğrendiği bir makine öğrenimi düzenidir. Model her adımda tahmin yapar, gerçek sonucu alır, kaybını ölçer ve bir sonraki örnek gelmeden önce parametrelerini ayarlar. Bu yaklaşım; tıklamalar, işlemler veya sensör okumaları gibi akış halinde gelen veriler, depolanamayacak kadar büyük veriler ve zamanla değişen ilişkiler için uygundur. Toplu veya çevrimdışı öğrenme bunun tersidir: model tüm eğitim verileri üzerinde aynı anda eğitilir ve yeniden eğitilene kadar sabit kalır.
Çevrimiçi Öğrenme Nasıl Çalışır#
Frank Rosenblatt'ın 1958 tarihli algılayıcısı çevrimiçi öğreniyordu; yanlış sınıflandırılan her örnekten sonra ağırlıklarını ayarlıyordu. Stokastik gradyan inişi (SGD) de neredeyse tüm türevlenebilir modellere örnek veya mini toplu iş başına aynı güncellemeyi uygular. Diğer algoritmalar akışlar için tasarlanmıştır: Pedro Domingos ve Geoff Hulten'in 2000'de tanıttığı Hoeffding ağaçları, her örneği yalnızca bir kez görerek akıştan bir karar ağacı büyütür; River gibi kütüphaneler yaygın modellerin akış sürümlerini uygular. scikit-learn'de partial_fit yöntemine sahip tahminleyiciler artımlı öğrenir.
Çevrimiçi öğrenenler genellikle istatistikçi Philip Dawid'in ortaya attığı bir terim olan ön-testlemeli yöntemle değerlendirilir: her yeni örnek önce modeli test etmek, sonra da eğitmek için kullanılır; böylece biriken puan, modelin henüz görmediği veriler üzerinde hesaplanır. Kuram, çevrimiçi öğreneni pişmanlığıyla ölçer: birikimli kaybı ile sonradan seçilen en iyi sabit modelin kaybı arasındaki fark. Martin Zinkevich, 2003'te çevrimiçi gradyan inişinin pişmanlığı yalnızca adım sayısının kareköküyle orantılı büyüttüğünü gösterdi; dolayısıyla adım başına ortalama fark sıfıra yaklaşır.
Bu örnek, SGD ile eğitilen bir lojistik regresyona 400 mini toplu iş akışı verir. Tam ortada etiketleri atayan kural değişir ve o anda dondurulmuş bir kopya, öğrenmeyi durduran bir modelin yerini tutar:
import copy
import numpy as np
from sklearn.linear_model import SGDClassifier
rng = np.random.default_rng(0)
online = SGDClassifier(loss="log_loss", random_state=0)
scores = {"frozen": [], "online": []}
for step in range(400): # 400 mini-batches of 20 examples arrive one at a time
X = rng.normal(size=(20, 2))
w = [1.0, 1.0] if step < 200 else [1.0, -1.0] # the labeling rule changes at step 200
y = (X @ np.array(w) > 0).astype(int)
if step == 200:
frozen = copy.deepcopy(online) # a copy that stops learning when the rule changes
if step >= 200: # test on each new batch before learning from it
scores["frozen"].append(frozen.score(X, y))
scores["online"].append(online.score(X, y))
online.partial_fit(X, y, classes=[0, 1])
for name, acc in scores.items():
print(f"{name}: {np.mean(acc):.2f} accuracy after the change")Değişiklikten sonra dondurulmuş model 0,47 puan alır; bu, tahmin etmekten daha iyi değildir. Çevrimiçi modelin ortalama puanı ise 0,98'dir. Çevrimiçi model, yeni kural altındaki ilk toplu işte 0,35, ikincisinde 0,80 puan alır ve birkaç toplu iş içinde toparlanır.
Kavram Kayması ve Unutma#
Çevrimiçi öğrenmenin temel nedeni, girdiler ile etiketler arasındaki ilişkinin değişmesi olan kavram kaymasıdır; buna çoğu zaman girdilerin kendisindeki veri kayması da eşlik eder. Örnekteki gibi ani gerçekleşebilir, kademeli olarak gelişebilir veya mevsimlerle ve günün saatleriyle tekrarlanabilir. Albert Bifet ve Ricard Gavaldà'nın geliştirdiği ADWIN gibi algılayıcılar hata akışını izler ve ortalaması değiştiğinde uyarı vererek daha hızlı güncellemeleri veya sıfırlamayı tetikleyebilir.
Hızlı uyum sağlamanın bir bedeli vardır. Yüksek bir öğrenme oranı kaymayı hızlı izler, ancak gürültüyü de izler. Yalnızca yakın tarihli verileri gören bir ağ, daha önce öğrendiklerinin üzerine yazar; bu başarısızlığa felaket düzeyinde unutma denir. Her güncellemeye depolanmış eski örnekleri katan yeniden oynatma tamponları, yaygın bir çözümdür.
Uygulamada Çevrimiçi Öğrenme#
Etiketlerin saniyeler içinde geldiği yerlerde çevrimiçi öğrenme yaygındır. Reklam tıklaması tahmini klasik örnektir: Google, 2013'te tıklama oranı modellerini FTRL-Proximal algoritmasıyla akış verileri üzerinde sürekli eğittiğini açıkladı. Öneri sistemleri ve dolandırıcılık puanlaması da çoğu zaman aynı şekilde güncellenir. Etiketler geç geldiğinden ve bozuk tek bir güncelleme sonraki tüm tahminleri kötüleştirebileceğinden, dağıtımdaki görme modelleri genellikle bunun yerine toplu olarak güncellenir. Bu nedenle ekipler, model izlemeyi yakın tarihli ve yeniden oynatılan veriler üzerinde yapılan dönemsel ince ayarla birleştirir; model bakım iş akışlarında olduğu gibi.
Görme sistemlerinde daha küçük çevrimiçi güncellemeler de uygulanır. Ultralytics YOLO26 izleme modunda, yeniden kimlik belirlemeyi with_reid: True ile etkinleştirmek, varsayılan TrackTrack izleyicisinin her iz için bir görünüş gömmesi tutmasını ve eşleşen her tespitten sonra bunu hareketli ortalama olarak güncellemesini sağlar. Yeni gömmeye, tespitin güven değerinin %5'i ağırlık olarak verilir; böylece izlerin görünüşü poz ve ışıklandırmadaki kademeli değişikliklere uyum sağlarken ReID ağı sabit kalır.
Sürekli öğrenme, yeni görevler geldiğinde önceki görevleri korumaya odaklanması bakımından çevrimiçi öğrenmeyle örtüşür; çevrimiçi öğrenme ise güncellemelerin ne sıklıkla yapıldığını anlatır. Aktif öğrenme, hangi örneklerin etiketleneceğini seçer. Pekiştirmeli öğrenme de etkileşim akışından öğrenir; ancak etiketli örnekler yerine kendi eylemlerinin ödüllerinden öğrenir.










