Tekrarlayan sinir ağları: RNN ve LSTM sıralı veriyi nasıl okur?
RNN sıralı veriyi adım adım işler, LSTM ise uzun bağımlılıkları kapılarla öğrenir. Nasıl çalıştığını, örneği ve CNN ile farkını öğrenin.
RNN ve LSTM nedir?
RNN (Recurrent Neural Network), Türkçe adıyla tekrarlayan sinir ağı, sıranın önemli olduğu verileri işlemek için tasarlanmış bir yapay sinir ağı mimarisidir. Cümledeki kelimeler, bir sensörün zaman içindeki ölçümleri, bir müzik notası dizisi ya da bir borsa serisi bu tür verilerdir. Ağ, veriyi tek seferde değil adım adım okur ve her adımda önceki adımlardan özetlenmiş bir iç durum (gizli durum) taşır.
LSTM (Long Short-Term Memory), uzun kısa süreli bellek anlamına gelir ve RNN'in basit hâlindeki bir zayıflığı gidermek için geliştirilmiş bir türdür. Bilgiyi ne zaman tutacağını, ne zaman unutacağını ve ne zaman çıktıya aktaracağını öğrenen kapılar içerir.
RNN nasıl çalışır?
RNN'de aynı hücre her zaman adımında tekrar tekrar kullanılır. Her adımda hücre şunları alır: O adımın girdisi ve önceki adımdan gelen gizli durum. Bunlardan yeni bir gizli durum ve gerekirse bir çıktı üretir. Böylece ağın "belleği", gizli durum aracılığıyla adımdan adıma taşınır.
Bir cümlede sıradaki kelimeyi tahmin etmek örnek verilebilir. Ağ cümlenin başındaki kelimelerden bir özet taşır ve o özetle bir sonraki kelimeyi tahmin eder. Eğitim sırasında hata, zaman içinde geriye doğru yayılır (zamanda geri yayılım, BPTT) ve ağırlıklar güncellenir.
Basit RNN'in temel sorunu, uzun dizilerde eski bilginin silinmesidir. Hata sinyali çok adım geriye giderken ya çok küçülür (gradyan kaybolması) ya da çok büyür (gradyan patlaması). Sonuçta ağ, dizinin başındaki bir ipucunu sonunda kullanmayı öğrenemez.
LSTM bu sorunu nasıl çözer?
LSTM hücresinde gizli durumun yanı sıra ayrı bir hücre durumu bulunur; bu, bilginin görece engelsiz akabildiği bir taşıyıcı hat gibidir. Üç kapı bu hattı yönetir:
- Unutma kapısı: Hücre durumundaki hangi bilginin silineceğine karar verir.
- Giriş kapısı: Yeni gelen bilginin ne kadarının hücre durumuna ekleneceğine karar verir.
- Çıkış kapısı: Hücre durumunun ne kadarının o adımın çıktısı olarak kullanılacağına karar verir.
Kapılar öğrenilen küçük ağlardır ve girdiye göre açılıp kapanır. Böylece LSTM, ilgili bilgiyi uzun süre koruyabilir, gereksiz olanı atabilir. GRU (Gated Recurrent Unit) ise daha az parametreyle benzer kapı mantığı kullanan, LSTM'in sadeleştirilmiş bir akrabasıdır.
Örnek: duygu sınıflandırma ve talep tahmini
Örneğin bir müşteri yorumunun olumlu mu olumsuz mu olduğunu belirlemek isteyelim. Yorum kelime kelime ağa verilir. Cümlenin başındaki "ürün çok güzeldi ama" ifadesi ile sonundaki "kargo berbattı" bölümü, LSTM'in belleğinde birlikte yorumlanır ve genel duygu kararı verilir.
Bir başka örnek talep tahminidir. Bir mağaza zincirinin son dönemlere ait günlük satış serisi ağa verilir; ağ, haftalık düzen ve mevsimsel eğilim gibi örüntüleri öğrenip sonraki dönemi tahmin etmeye çalışır. Bu tür işlerde RNN ve LSTM yaklaşımı, klasik zaman serisi yöntemleriyle karşılaştırılarak seçilir; her zaman daha iyi sonuç verecek diye bir kural yoktur.
RNN ve LSTM ile CNN ve Transformer farkı
CNN, görüntü gibi uzaysal verilerde komşu noktalardaki örüntüleri yakalar. RNN ve LSTM ise sıralı veride zaman içindeki bağımlılığı yakalar. Seçim, verinin yapısına bağlıdır.
Dikkat mekanizmasına dayanan Transformer mimarileri, doğal dil işlemede RNN ve LSTM'in yerini büyük ölçüde almıştır. Nedeni, Transformer'ın tüm diziyi paralel işleyebilmesi ve uzak kelimeler arasındaki ilişkiyi doğrudan kurabilmesidir; RNN ise adım adım ilerlemek zorundadır ve uzun dizilerde yavaşlar. Yine de RNN ve LSTM kaynak kısıtlı ortamlarda, akış halinde gelen sinyallerde ve küçük zaman serisi uygulamalarında kullanılmaya devam eder.
Sık yapılan hatalar
- Çok uzun diziyi doğrudan vermek: Dizi uzadıkça eğitim yavaşlar ve belleğin yetmeme riski artar. Uygun pencereleme ya da kısaltma stratejisi gerekir.
- Zaman sırasını bozan bölme: Zaman serisinde eğitim ve test kümesini rastgele ayırmak geleceğin bilgisini geçmişe sızdırır. Bölme zamana göre yapılmalıdır.
- Normalleştirmeyi atlamak: Girdi ölçekleri farklıysa eğitim kararsızlaşır.
- Gradyan sınırlamayı unutmak: Gradyan patlaması eğitimi bozabilir; gradyan kırpma yaygın bir önlemdir.
- Basit temel modeli denememek: Gelişmiş bir ağı kurmadan önce basit bir tahmin yöntemiyle karşılaştırma yapılmazsa, ağın gerçekten fayda sağlayıp sağlamadığı bilinemez.
Mindset programlarında RNN ve LSTM
Konuyu uygulamalı çalışmak isteyenler için Mindset kataloğunda RNN ve LSTM ile Sıralı Modelleme eğitimi bulunur. Eğitimin modülleri arasında Sıralı Verinin Yapısı ve Temel Kavramlar, Tekrarlayan Sinir Ağları (RNN), LSTM ve GRU Mimarileri, Zaman Serisi Tahmini Uygulamaları, Doğal Dil İşleme ile LSTM Uygulamaları, Hibrit Modeller ve İleri Mimari Yaklaşımları ile Üretim Ortamında Sıralı Model Sistemleri yer alır.
İlgili Mindset programı
RNN ve LSTM ile Sıralı Modelleme
Sık sorulan sorular
RNN ile LSTM arasındaki temel fark nedir?
Basit RNN, önceki adımdan gelen tek bir gizli durumu taşır ve uzun dizilerde eski bilgiyi kaybetme eğilimindedir. LSTM ise kapılarla yönetilen ayrı bir hücre durumu içerir; neyin tutulacağını, neyin unutulacağını öğrenir. Bu nedenle uzun bağımlılıkları öğrenmede LSTM genellikle daha başarılıdır.
LSTM hâlâ kullanılıyor mu?
Evet, ancak alanı daraldı. Doğal dil işlemede Transformer tabanlı modeller baskın hâle geldi. Buna karşın küçük veri kümeleri, düşük gecikme gereken uç cihazlar, sensör verisi ve bazı zaman serisi uygulamaları gibi alanlarda LSTM ve GRU hâlâ pratik bir seçenektir.
Gradyan kaybolması nedir?
Eğitim sırasında hata sinyali geriye doğru yayılırken her adımda küçük sayılarla çarpılır. Dizi uzadıkça sinyal sıfıra yaklaşır ve uzak adımların ağırlıkları neredeyse hiç güncellenmez. Ağ bu yüzden uzak ilişkileri öğrenemez. LSTM'in kapı yapısı, bu sinyalin daha az bozularak akmasına izin verir.
GRU nedir, LSTM'den farkı ne?
GRU (Gated Recurrent Unit), LSTM'e benzer bir kapı mantığı kullanan ama daha az parametresi olan bir mimaridir. Ayrı hücre durumu yoktur ve kapılar daha sadedir. Eğitimi genellikle daha hızlıdır. Hangisinin daha iyi olduğu probleme göre değişir; pratikte her biri denenip karşılaştırılır.
RNN öğrenmeye nereden başlanmalı?
Önce temel yapay sinir ağları ve geri yayılım mantığı anlaşılır. Sonra küçük bir zaman serisinde basit bir RNN ve ardından LSTM kurulup sonuçlar klasik bir yöntemle karşılaştırılır. Ardından metin verisiyle çalışmak, kelime temsilleri ve dizi uzunluğu yönetimi gibi pratik konulara geçmek öğrenmeyi derinleştirir.