TEKRARLAYAN SİNİR AĞLARI (RECURRENT NEURAL NETWORK)
Tekrarlayan sinir ağları (RNN), düğümler arasındaki bağlantıların yönlendirilmiş bir döngü oluşturduğu yapay sinir ağı sınıfıdır. Bu, dinamik zamansal davranış sergilemesine izin verir.
İleri beslemeli sinir ağlarından farklı olarak, RNN’ler kendi giriş belleğini girdilerin keyfi sıralarını işlemek için kullanabilirler.
Tekrarlayan sinir ağlarının asıl amacı ardışık bilgileri kullanmaktır. Geleneksel bir sinir ağında tüm girişlerin (ve çıktıların) birbirinden bağımsız olduğunu varsayarız. RNN’ler tekrarlayan olarak adlandırılır çünkü bir dizinin her öğesi için aynı görevi yerine getirirler, çıktı önceki hesaplamalara bağlıdır. RNN’leri düşünmenin bir başka yolu, şu ana kadar hesaplananlarla ilgili bilgi toplayan “bellek” taşıdıklarıdır. Teorik olarak, RNN’ler keyfi uzun dizilerdeki bilgileri kullanabilir, ancak pratikte yalnızca birkaç adım geriye dönmekle sınırlıdır. Tipik bir RNN:
İki yönlü RNN’ler (Bidirectional RNNs):
t zamanındaki çıktıların sıralardaki önceki öğelere değil gelecekteki öğelere de bağlı olabileceği fikrine dayanmaktadır. Örneğin, bir dizideki eksik bir kelimeyi tahmin etmek için hem sol hem de sağ içeriğe bakmak istiyorsunuz.İki yönlü RNN’ler oldukça basittir. Bunlar sadece üst üste istiflenmiş iki RNN’dir. Çıktılar daha sonra her iki RNN’nin gizli halini temel alarak hesaplanır.
Derin (İki Yönlü) RNN’ler (Deep RNNs):
Çift Yönlü RNN’lere benzer, yalnızca zaman adımında birden fazla katmandan oluşur. Uygulamada bu bize daha yüksek bir öğrenme kapasitesi sağlar (ancak aynı zamanda bir çok eğitim verisine ihtiyaç duyulur).LSTM ağları (LSTM networks):
LSTM’lerin temelde RNN’lerden farklı bir mimarisi yoktur, ancak gizli durumu hesaplamak için farklı bir fonksiyon kullanırlar. LSTM’lerin hafızasına hücreler denir ve bunları önceki durum ve geçerli giriş ‘yi girdi olarak alan kara kutular olarak düşünebilirsiniz. Dahili olarak bu hücreler, ne tutacaklarına (ve nesileceklerine) karar verirler. Daha sonra önceki durumu, mevcut belleği ve girdiyi birleştirirler.
Bu tür birimlerin, uzun vadeli bağımlılıkları yakalamada çok etkili oldukları anlaşılıyor.
İLERİ BESLEMELİ AĞLAR (FEEDFORWARD NEURAL NETWORKS)
İleri beslemeli yapay sinir ağlarında temel olarak 3 çeşit katman (layer) bulunur. Giriş, gizli ve çıkış katmanları sırasıyla yapay sinir ağına giren verileri tutan giriş katmanı, işlemlerin
yapıldığı ve istenilen sonuca göre kendisini eğiten gizli katman yada katmanlar ve son olarak çıkış değerlerini gösteren çıkış katmanıdır.
Bir gizli katmanın kaç seviye olacağı tamamen probleme göre belirlenmektedir. Her katman ve seviyede 1 veya daha çok sayıda sinir hücresi (nöron) bulunabilir.
Aşağıda örnek bir tek gizli katmanı bulunan ileri beslemeli ağ tasviri bulunmaktadır:
Yukarıdaki ağda dikkat edilirse bütün sinapsis yönleri (yani verinin akışı) giriş katmanından çıkış katmanına doğrudur.
Bir ileri beslemeli yapay sinir ağında her katmanda ne kadar sinir hücresi (neuron) olacağına aşağıdaki basit bir iki kurala göre karar verilebilir:
Öncelikle giriş katmanı için nöron sayısına sistemin girdisi olan verinin sayısına göre kolayca karar verilebilir. Örneğin sistemimizin öğrenmesini ve daha sonra sınıflandırmasını istediğimiz örüntünün (pattern) kaç veri ünitesinden oluştuğuna (örneğin bit) göre giriş katmanındaki sinir hücresi sayısı belirlenebilir.
Kısaca giriş katmanındaki her sinir hücresi, sonucu etkilemesi istenen bir değişkene karşılık gelmektedir.
Benzer uygulama çıkış katmanı için de kullanılabilir. Buna göre çıkış bilgisinin nasıl
gösterilmesi istendiğine karar verildikten sonra bu çıkışta bulunması istenen her değişken için bir sinir hücresi bulundurulması gerekir.
Örneğin bir sınıflandırma problemi için çıkış katmanında farklı sınıfların gösterilmesini
sağlamaya yeterli miktarda sinir hücresi bulunması yeterlidir. Veya bir filtreleme problemi için giriş ve çıkıştaki nöronların sayısı genelde eşit olur.