Memory Bank
Derin öğrenmede bellek bankasının ne olduğunu öğren. Bellek bankalarının karşılaştırmalı öğrenme, nesne takibi ve video anlama için gömmeleri nasıl depoladığını keşfet.
Bellek bankası, makine öğrenimi algoritmalarında geçmiş yinelemelerden veya işlenmiş örneklerden gelen bilgileri depolamak ve bunlara başvurmak için kullanılan bir veri yapısıdır; modelin bellek kapasitesini anlık hesaplama kısıtlarından etkili bir şekilde ayırır. Derin öğrenme (DL) bağlamında bellek bankası genellikle embedding'ler veya özellik vektörleri için bir depo görevi görür. Bu, modelin tüm bu verileri aynı anda etkin rastgele erişimli bellekte (RAM) yeniden işlemesine veya tutmasına gerek kalmadan mevcut girdiyi çok geniş bir geçmişteki girdiler kümesiyle karşılaştırmasını sağlar. 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.
Bellek Bankasının Çalışma Mekanizması#
Bellek bankasının temel işlevi, mevcut batch size değerinin ötesinde kullanılabilir bilgi sağlamaktır. Eğitim sırasında veriler sinir ağından geçerken ortaya çıkan özellik temsilleri bankaya eklenir. Banka maksimum kapasitesine ulaşırsa, yenilerine yer açmak için genellikle en eski özellikler çıkarılır; bu işlem İlk Giren, İlk Çıkar (FIFO) kuyruğu olarak bilinir.
Bu mekanizma özellikle önemlidir çünkü GPU belleği sınırlıdır. Bellek bankası olmadan tek bir görüntüyü bir milyon başka görüntüyle karşılaştırmak, standart donanıma sığması imkânsız bir batch size gerektirirdi. Bellek bankası sayesinde model, bu milyon görüntünün düşük maliyetli vektörlerini depolayabilir ve noktasal çarpım veya kosinüs benzerliği gibi benzerlik arama tekniklerini kullanarak bunlara verimli bir şekilde başvurabilir.
Gerçek Dünya Uygulamaları#
Bellek bankaları, çeşitli gelişmiş bilgisayarlı görü (CV) ve doğal dil işleme iş akışlarının temel unsurlarından biri hâline gelmiştir:
- Karşılaştırmalı Öğrenme (Kendinden Denetimli Öğrenme): En bilinen uygulamalardan biri, özellikle Momentum Karşılaştırması (MoCo) gibi algoritmalardaki karşılaştırmalı öğrenme yaklaşımıdır. Buradaki amaç, modele belirli bir görüntüyü çok sayıdaki "negatif" örnekten (farklı görüntülerden) ayırt etmeyi öğretmektir. Bellek bankası, binlerce negatif örneğin temsillerini depolar ve modelin etiketli eğitim verilerine ihtiyaç duymadan sağlam özellikler öğrenmesini sağlar. Ayrıntılı teknik bilgiler için araştırmacılar genellikle bu yaklaşımı yaygınlaştıran MoCo makalesine başvurur.
- Uzun Vadeli Nesne Takibi: Video analizinde bir nesne (örneğin bir araba veya kişi) bir engel tarafından geçici olarak gizlenebilir. Standart takipçiler bu örtülme sırasında nesnenin kimliğini (ID) kaybedebilir. Gelişmiş takipçiler, geçmişte tespit edilen nesnelerin görsel özelliklerini depolamak için bellek bankası kullanır. Nesne yeniden göründüğünde sistem, doğru ID'yi yeniden oluşturmak için bankayı sorgular. Ultralytics YOLO26 ile nesne takibi gerçekleştiren kullanıcılar, kareler arasındaki kimlik tutarlılığını koruyan benzer bir dahili mantıktan yararlanır.
- Video Anlama: Birkaç saniyeye veya dakikaya yayılan 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 videonun sonunu işlerken başında ne olduğunu "hatırlamasını" sağlar. Bu, doğru eylem tanıma için kritik öneme sahiptir.
İlişkili Kavramları Ayırt Etme#
Bellek bankasını sözlükte bulunan diğer depolama ve işleme kavramlarından ayırmak yararlıdır:
- Bellek Bankası ve Vektör Veritabanı Karşılaştırması: Her ikisi de geri getirme amacıyla embedding'leri depolar. Ancak bellek bankası genellikle tek bir model oturumunun eğitimi veya etkin çıkarımı sırasında dinamik olarak kullanılan geçici, bellek içi bir yapıdır. RAG uygulamalarında kullanılan vektör veritabanı ise süresiz olarak kalması ve birden fazla uygulamaya hizmet vermesi amaçlanan kalıcı, ölçeklenebilir bir depolama çözümüdür.
- Bellek Bankası ve Bağlam Penceresi Karşılaştırması: Bağlam penceresi (Transformer mimarilerinde yaygın olarak kullanılır), modelin aynı anda işlediği maksimum girdi dizisi uzunluğunu tanımlar (örneğin 32k token). Bellek bankası, etkin işleme penceresinin dışında sıkıştırılmış temsilleri depolayan harici bir arabellek görevi görür ve Transformer-XL gibi mimarilerde görüldüğü üzere teorik olarak sınırsız bellek derinliği sağlar.
- Bellek Bankası ve Batch Size Karşılaştırması: Batch size, gradyan güncellemeleri için kaç örneğin paralel olarak işleneceğini belirler. Bellek bankası, ileri ve geri yayılım geçişlerinin hesaplama maliyetini artırmadan modelin karşılaştırma amacıyla "görebileceği" etkin örnek sayısını artırır.
Kod Örneği: Özellik Bankasının Simüle Edilmesi#
Aşağıdaki Python parçacığı, torch kullanarak İlk Giren, İlk Çıkar (FIFO) bellek bankası kavramını gösterir. Bu yapı, özel eğitim döngüleri veya karmaşık çıkarım görevleri sırasında özellik vektörlerinden oluşan kayan bir geçmişi korumak 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])Zorluklar ve Dikkat Edilmesi Gerekenler#
Güçlü olmalarına rağmen bellek bankaları, "temsil kayması" sorununu beraberinde getirir. Kodlayıcı ağ her eğitim adımında biraz değiştiğinden, 100 adım önce bankada depolanan özellikler mevcut model durumuyla "eskimiş" veya tutarsız olabilir. Momentum kodlayıcı (modelin yavaşça güncellenen ortalaması) kullanmak gibi teknikler bu sorunun azaltılmasına yardımcı olur.
Bu gelişmiş tekniklerden yararlanan veri kümesi sürümlerini ve model yapıtlarını yönetmek isteyen ekipler için Ultralytics Platformu, verileri düzenlemek, deneyleri izlemek ve modelleri verimli bir şekilde dağıtmak üzere merkezi bir merkez sağlar. Özellik depolama ve geri getirme süreçlerinin karmaşıklığını yönetmek, yapay zekâ (AI) çözümlerini deneysel aşamadan sağlam üretim sistemlerine taşımak için kritik öneme sahiptir.









