CodeBlanks Logo Icon CodeBlanks

Gate'ler

LSTM, input, forget ve output gate'leri ile bilgi akışını kontrol eder.

Kapılar

LSTM'in her adımında dört bileşen hesaplanır; üçü sigmoid ile 0-1 arasında "ne kadar" sorusunu cevaplayan kapılardır:

  • Unutma kapısı f: eski hücre bilgisinin ne kadarı tutulacak.
  • Giriş kapısı i: yeni aday bilginin ne kadarı yazılacak.
  • Aday g (tanh): yazılacak yeni bilgi.
  • Çıkış kapısı o: hücreden ne kadarı gizli duruma okunacak.
f = sigmoid(W_f [h, x]);  i = sigmoid(W_i [h, x]);  o = sigmoid(W_o [h, x])
g = tanh(W_g [h, x])
c = f * c + i * g
h = o * tanh(c)

Elle bir adım

Kapı değerleri verildiğinde bir adım kolayca hesaplanır:

c_eski = torch.tensor([2.0])
f, i, o = torch.tensor([0.5]), torch.tensor([1.0]), torch.tensor([1.0])
g = torch.tensor([0.5])
c = f * c_eski + i * g       # 0.5·2 + 1·0.5 = 1.5
h = o * torch.tanh(c)        # tanh(1.5) ≈ 0.905

Gerçek LSTM'de kapılar sabit değil; her adımda girdiye ve önceki gizli duruma göre hesaplanır.

Uygulama LSTM adımı

Verilen kapı değerleriyle bir LSTM adımı hesapla: c = f * c_eski + i * g, h = o * torch.tanh(c). c ve h değerlerini round(..., 3) ile aynı satırda yazdır. Ardından f = 0 yapıp aynı hesabı tekrarla ve yeni c'yi yazdır.

Başlangıç kodu

model.py
import torch

c_eski = torch.tensor(2.0)
i = torch.tensor(1.0)
o = torch.tensor(0.5)
g = torch.tensor(0.5)
f = torch.tensor(0.5)

# buraya yaz

Örnek çözüm

model.py
import torch

c_eski = torch.tensor(2.0)
i = torch.tensor(1.0)
o = torch.tensor(0.5)
g = torch.tensor(0.5)
f = torch.tensor(0.5)

c = f * c_eski + i * g
h = o * torch.tanh(c)
print(round(c.item(), 3), round(h.item(), 3))
f = torch.tensor(0.0)
print((f * c_eski + i * g).item())

Beklenen çıktı

1.5 0.453
0.5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Unutma kapısı 0'a yakınsa ne olur?

  • Yeni bilgi yazılmaz
  • Çıktı sıfır olur
  • Eski hücre bilgisi silinir Doğru cevap
  • Her şey korunur

Açıklama: c = f · c_eski + ...; f ≈ 0 eski bilgiyi çarparak yok eder.

2 Hücre durumunu güncelle.

Soru
c = f * c_eski ____ i * g
Cevap
c = f * c_eski + i * g

Açıklama: Hücre toplamsal güncellenir: tutulan + yazılan.

3 Kapıları eşleştir.

Kavram Anlamı
f Unutma
i Giriş
g Aday bilgi
o Çıkış

İleri seviye bölümündeki tüm dersler