Memory Bank
Derin öğrenmede bellek bankasının ne olduğunu öğren. Bellek bankalarının karşıt öğrenme, nesne takibi ve video anlama için yerleştirmeleri nasıl depoladığını incele.
Bellek bankası, makine öğrenimi algoritmalarında geçmiş iterasyonlardan veya işlenmiş örneklerden gelen bilgileri depolamak ve bunlara başvurmak için kullanılan, modelin bellek kapasitesini anlık hesaplama kısıtlamalarından etkili bir şekilde ayıran bir veri yapısıdır. Derin öğrenme (DL) bağlamında bellek bankası, genellikle gömülerin veya öznitelik vektörlerinin bulunduğu bir depo görevi görür. Bu, modelin mevcut girdiyi, tüm bu verileri aynı anda aktif rasgele erişimli bellekte (RAM) tutmasına veya yeniden işlemesine gerek kalmadan, geniş bir önceki girdi geçmişiyle karşılaştırmasına olanak tanır. Temsillerden oluşan bir arabellek tutarak modeller daha geniş bir bağlamdan öğrenebilir ve uzun vadeli tutarlılık veya büyük veri kümeleriyle karşılaştırma gerektiren görevlerde performansı artırabilir.
Link to this sectionBellek Bankasının Mekaniği#
Bellek bankasının temel işlevi, mevcut yığın boyutu ötesindeki bilgilere erişimi genişletmektir. Eğitim sırasında veriler sinir ağı içinden geçerken, ortaya çıkan öznitelik temsilleri bankaya eklenir. Banka maksimum kapasitesine ulaşırsa, genellikle en eski öznitelikler, İlk Giren İlk Çıkar (FIFO) kuyruğu olarak bilinen bir süreçle yenilerine yer açmak için kaldırılır.
Bu mekanizma, GPU belleği sınırlı olduğu için özellikle kritiktir. Bellek bankası olmadan, tek bir görüntüyü milyonlarca diğer görüntüyle karşılaştırmak, standart donanımlara sığdırılamayacak bir yığın boyutu gerektirirdi. Bellek bankası ile model, bu milyonlarca görüntünün hafif vektörlerini depolayabilir ve nokta çarpımı veya kosinüs benzerliği gibi benzerlik arama tekniklerini kullanarak bunlara verimli bir şekilde başvurabilir.
Link to this sectionGerçek Dünya Uygulamaları#
Bellek bankaları, çeşitli gelişmiş bilgisayarlı görü (CV) ve doğal dil iş akışlarında bir temel taşı haline gelmiştir:
- Karşılaştırmalı Öğrenme (Kendi Kendine Denetimli Öğrenme): En ünlü uygulamalardan biri, özellikle Momentum Contrast (MoCo) gibi algoritmalarda karşılaştırmalı öğrenmedir. Burada amaç, modele belirli bir görüntüyü birçok "negatif" örnekten (farklı görüntülerden) ayırt etmeyi öğretmektir. Bellek bankası binlerce negatif örnek temsili depolar ve modelin etiketli eğitim verilerine ihtiyaç duymadan güçlü öznitelikler öğrenmesini sağlar. Derin teknik detaylar için araştırmacılar genellikle bu yaklaşımı popüler hale getiren MoCo makalesine başvururlar.
- Long-Term Object Tracking: In video analysis, an object (like a car or person) may be temporarily obscured by an obstacle. Standard trackers might lose the object's identity (ID) during this occlusion. Advanced trackers use a memory bank to store the visual features of objects detected in the past. When the object reappears, the system queries the bank to re-establish the correct ID. Users leveraging Ultralytics YOLO26 for object tracking benefit from similar internal logic that maintains identity consistency across frames.
- Video Anlama: Saniyeler veya dakikalar süren eylemleri tanımak için modellerin zamansal bağlama ihtiyacı vardır. Bellek bankası, geçmiş kareler veya klipler için bir arabellek görevi görerek ağın, sonunu işlerken videonun başında ne olduğunu "hatırlamasını" sağlar. Bu, doğru eylem tanıma için çok önemlidir.
Link to this sectionİlgili Kavramları Ayırt Etme#
Bellek bankasını sözlükte bulunan diğer depolama ve işleme kavramlarından ayırt etmek yararlıdır:
- Bellek Bankası ve Vektör Veritabanı: Her ikisi de geri alma için gömüleri depolar. Ancak bir bellek bankası, genellikle tek bir model oturumunun eğitimi veya aktif çıkarımı sırasında dinamik olarak kullanılan geçici, bellek içi bir yapıdır. (RAG içinde kullanılanlar gibi) bir vektör veritabanı, süresiz olarak kalacak ve birden fazla uygulamaya hizmet edecek şekilde tasarlanmış kalıcı, ölçeklenebilir bir depolama çözümüdür.
- Bellek Bankası ve Bağlam Penceresi: Bir bağlam penceresi (Transformer'larda yaygındır), modelin aynı anda işlediği maksimum girdi dizisi uzunluğunu (ör. 32 bin token) tanımlar. Bellek bankası, aktif işleme penceresinin dışında sıkıştırılmış temsilleri depolayan harici bir arabellek olup, Transformer-XL gibi mimarilerde görüldüğü gibi teorik olarak sonsuz bellek derinliğine olanak tanır.
- Bellek Bankası ve Yığın Boyutu: Yığın boyutu, gradyan güncellemeleri için paralel olarak kaç örneğin işleneceğini belirler. Bellek bankası, ileri ve geri geçişlerin hesaplama maliyetini artırmadan, modelin karşılaştırma amacıyla "görebileceği" etkili örnek sayısını artırır.
Link to this sectionKod Örneği: Bir Öznitelik Bankasının Simülasyonu#
Aşağıdaki Python kod parçacığı, torch kullanarak İlk Giren İlk Çıkar (FIFO) bellek bankası kavramını göstermektedir. Bu yapı, özel eğitim döngüleri veya karmaşık çıkarım görevleri sırasında öznitelik vektörlerinin sürekli bir geçmişini tutmak için sıklıkla kullanılır.
import torch
# Initialize a memory bank (Capacity: 100 features, Vector Dim: 128)
# In a real scenario, these would be embeddings from a model like YOLO26
memory_bank = torch.randn(100, 128)
# Simulate receiving a new batch of features (e.g., from the current image batch)
new_features = torch.randn(10, 128)
# Update the bank: Enqueue new features, Dequeue the oldest ones
# This maintains a fixed size while keeping the memory 'fresh'
memory_bank = torch.cat([memory_bank[10:], new_features], dim=0)
print(f"Updated Memory Bank Shape: {memory_bank.shape}")
# Output: Updated Memory Bank Shape: torch.Size([100, 128])Link to this sectionZorluklar ve Hususlar#
Bellek bankaları güçlü olsalar da "temsil kayması" zorluğunu beraberinde getirirler. Kodlayıcı ağı her eğitim adımında biraz değiştiğinden, 100 adım önce bankada depolanan öznitelikler "eski" olabilir veya mevcut model durumuyla tutarsızlık gösterebilir. Momentum kodlayıcısı (modelin yavaş güncellenen bir ortalaması) kullanmak gibi teknikler bu sorunu hafifletmeye yardımcı olur.
Veri kümesi sürümlerini ve bu gelişmiş tekniklerden yararlanan model yapıtlarını yönetmek isteyen ekipler için Ultralytics Platform, verileri düzenlemek, deneyleri takip etmek ve modelleri verimli bir şekilde dağıtmak için merkezi bir merkez sağlar. Öznitelik depolama ve geri alma karmaşıklığını yönetmek, deneysel yapay zekadan (AI) sağlam üretim sistemlerine geçiş yapmak için esastır.






