Long Short-Term Memory (LSTM)
LSTM, kapılı hücre durumu uzun diziler boyunca bilgi taşıyan bir tekrarlayan ağdır. Kapılarını, denklemlerini, GRU ile karşılaştırmasını ve kodunu ele alır.
Uzun kısa süreli bellek (LSTM), basit bir RNN'nin gizli durumunun yanı sıra hücre durumu adı verilen kapılı bir bellek de içeren bir tekrarlayan sinir ağı (RNN) mimarisidir; böylece bilgiyi yüzlerce veya binlerce zaman adımı boyunca taşıyabilir. Sepp Hochreiter ve Jürgen Schmidhuber, basit RNN'lerin uzun vadeli bağımlılıkları öğrenmesini engelleyen kaybolan gradyan sorununu aşmak için LSTM'yi 1997'de tanıttılar ve makalelerinde 1.000'den fazla zaman adımına yayılan gecikmeleri aşabildiklerini bildirdiler. 2010'larda LSTM'ler konuşma tanıma, makine çevirisi ve el yazısı tanıma alanlarında önemli bir rol oynadı; ancak Transformer mimarileri daha sonra dil görevlerinin çoğunda LSTM'lerin yerini aldı. Sabit boyutlu bir durumun ve adım başına sabit bir maliyetin önemli olduğu zaman serisi analizinde, sensör akışlarında ve cihaz üzerinde çalışan modellerde LSTM'ler hâlâ yaygın biçimde kullanılır.
LSTM Hücresi Nasıl Çalışır#
Her t zaman adımında LSTM, xₜ girdisini ve önceki hₜ₋₁ gizli durumunu okur ve her biri kendi ağırlıklarına sahip üç kapı ve bir aday hesaplar. Kapılar sigmoid işlevini kullanır; dolayısıyla her eleman 0 ile 1 arasındadır. Aday ise tanh işlevini kullanır ve −1 ile 1 arasında değer alır:
- Unutma kapısı: fₜ = σ(W_f xₜ + U_f hₜ₋₁ + b_f), eski hücre durumunun her bir elemanından ne kadarının korunacağına karar verir.
- Girdi kapısı: iₜ = σ(W_i xₜ + U_i hₜ₋₁ + b_i), aday içeriğin ne kadarının yazılacağına karar verir.
- Aday: gₜ = tanh(W_g xₜ + U_g hₜ₋₁ + b_g), yeni içerik önerir.
- Çıktı kapısı: oₜ = σ(W_o xₜ + U_o hₜ₋₁ + b_o), hücrenin ne kadarının açığa çıkarılacağına karar verir.
Ardından iki durum cₜ = fₜ ⊙ cₜ₋₁ + iₜ ⊙ gₜ ve hₜ = oₜ ⊙ tanh(cₜ) şeklinde güncellenir; burada ⊙ eleman bazında çarpımdır. Hücre durumu uzun süreli bellektir; gizli durum ise sonraki katmana ve adıma aktarılan kısa süreli çıktıdır.
Hücre güncellemesi toplamsaldır. cₜ'nin cₜ₋₁'e göre gradyanı, eleman bazında fₜ'ye eşittir. Bu nedenle unutma kapısı 1'e yakın kaldığında hata sinyali birçok adımdan neredeyse değişmeden geriye geçer; özgün makale bu yolu sabit hata döngüsü olarak adlandırdı. 1997'deki LSTM'de unutma kapısı yoktu ve hücreleri yalnızca biriktirme yapabiliyordu. Felix Gers, Schmidhuber ve Fred Cummins, hücrelerin sıfırlanabilmesi için 2000'de unutma kapısını ekledi; günümüzdeki her standart LSTM'de bu kapı bulunur. Rafal Jozefowicz ve çalışma arkadaşlarının 2015'te önerdiği gibi unutma kapısı bias'ını 1'e ayarlamak, eğitim başında kapıyı açık tutar ve ağın başlangıçta bilgiyi hatırlamasını sağlar.
PyTorch'ta LSTM#
PyTorch'un nn.LSTM işlevi hücreyi tüm dizi üzerinde çalıştırır ve her adımdaki gizli durumun yanı sıra son gizli ve hücre durumlarını döndürür. Aşağıdaki kod, her kareden evrişimli sinir ağının (CNN) çıkarabileceği kare başına özellik vektörlerinden kısa video kliplerini sınıflandırır:
import torch
from torch import nn
# 8 video clips, 16 frames each, 512 features per frame: (batch, time, features)
clips = torch.randn(8, 16, 512)
# One LSTM layer with a 128-dim hidden state, and a classifier over 5 actions
lstm = nn.LSTM(input_size=512, hidden_size=128, batch_first=True)
classifier = nn.Linear(128, 5)
# output holds h at every step; h_n and c_n are the final hidden and cell states
output, (h_n, c_n) = lstm(clips)
logits = classifier(h_n[-1])
print(f"output {tuple(output.shape)}, h_n {tuple(h_n.shape)}, c_n {tuple(c_n.shape)}, logits {tuple(logits.shape)}")
# Each weight matrix stacks four blocks of 128 rows: input gate, forget gate, candidate, output gate
print(f"Input weights {tuple(lstm.weight_ih_l0.shape)}, recurrent weights {tuple(lstm.weight_hh_l0.shape)}")Şu çıktıyı verir: output (8, 16, 128), h_n (1, 8, 128), c_n (1, 8, 128), logits (8, 5) ve Input weights (512, 512), recurrent weights (512, 128). Son gizli durum, beş sınıflı sınıflandırıcı için 16 karelik her klibi özetler; her ağırlık matrisi 4 × 128 = 512 satır içerir, çünkü PyTorch dört kapı bloğunu tek matriste saklar.
LSTM ve İlgili Mimariler#
- Basit RNN: Her adımda tüm durumunu tek bir tanh katmanından yeniden geçirir; bu nedenle gradyanlar dizi uzunluğuna bağlı olarak geometrik biçimde küçülür veya büyür ve uzun menzilli bağımlılıkları öğrenmek zorlaşır.
- GRU: Hücre ve gizli durumları birleştirir, üç yerine iki kapı kullanır; böylece aynı genişlikte LSTM'nin dört ağırlık bloğu yerine üç blok ve parametrelerinin dörtte üçü gerekir. Görevler arasında sürekli olarak biri diğerinden üstün değildir.
- Transformer: Tüm konumları öz dikkat ile paralel işler; bu sayede GPU'larda çok daha hızlı eğitilir ve uzaktaki bağlamlara doğrudan erişir. Bu nedenle dil modelleme ve çeviride LSTM'lerin yerini Transformer'lar aldı. Dikkatin maliyeti bağlam uzunluğuyla artarken LSTM her yeni adımda aynı hesaplama ve belleği kullanır.
- xLSTM: Hochreiter'in grubunun 2024'te geliştirdiği xLSTM, üstel kapılama ve paralel eğitilebilen bir matris belleği ekler. 7 milyar parametreli dil modeli xLSTM 7B, ICML 2025'te yayımlandı; benzer boyuttaki Transformer modellerine kıyaslanabilir performans ve daha hızlı çıkarım sundu.
Uygulamalar#
- Konuşma tanıma: Google, 2015'te sesli aramayı bağlantıcı zamansal sınıflandırma (CTC) ile eğitilmiş LSTM akustik modellerine taşıdı; cihaz üzerinde çalışan tanıyıcılar da uzun süre yığınlanmış LSTM'lere dayandı.
- Makine çevirisi: 2016'da kullanıma sunulan Google Neural Machine Translation, kodlayıcısında sekiz, çözücüsünde de sekiz LSTM katmanı kullandı.
- Sel tahmini: Google'ın 2024'te Nature'da açıklanan sel tahmin sistemi, hava durumu verilerinden nehir akışını tahmin etmek için LSTM ağları kullanır ve ölçüm istasyonu bulunmayan havzalarda aşırı selleri beş güne kadar önceden tahmin eder.
- Eylem tanıma: Bir CNN her video karesini kodlar, LSTM ise klibi etiketlemek için kare özellikleri dizisini işler; yukarıdaki kod parçası da bu yapıyı izler.
- Yörünge tahmini: Social LSTM, her yaya için bir LSTM çalıştırır ve kalabalık içindeki hareket yollarını tahmin etmek için yakındaki kişilerin gizli durumlarını bir araya getirir. Takip modundaki YOLO26, video kareleri boyunca her kişiye kalıcı bir kimlik atar; böylece kare başına tespitler, bu tahmin sisteminin kullandığı konum geçmişlerine dönüşür.










