RNN Nedir? Nasıl Çalışır?

Mehmet Fatih AKCA
Deep Learning Türkiye
4 min readNov 21, 2020

Nedir bu RNN?

RNN’ler genelde bir sonraki adımı tahmin etmek için kullanılan bir çeşit Derin Öğrenme yapılarıdır. Diğer derin öğrenme yapılarından en büyük farkları ise hatırlamalarıdır. Evet, RNN’ler hatırlayabiliyor. Bir diğer farkları ise, diğer sinir ağlarında her girdi birbirinden bağımsız iken RNN’lerde girdiler birbiri ile ilişkilidir. Nasıl yani? RNN’ler bir sonraki adımı takip edebilmek için girdiler arasında ilişki kurarlar ve eğitilirken tüm ilişkilerini hatırlarlar.

-Hatırlar dedin, bu nasıl oluyor?

Hemen açıklayayım. RNN’ler kurmuş oldukları ilişkilerin kalıcı olması için kendi içlerinde dönen döngü benzeri bir yapı kullanırlar. Bunu anlamak için RNN yapısının görseline bakalım.

Kaynak:https://medium.com/@vidishajitani25/recurrent-neural-network-maths-69214e4d69e1

Görselde olduğu gibi, çıkan sonuç aslında bir sonraki adımı besliyor. Daha rahat görebilmek için bu yapının açık haline bakalım.

Yani H_1 için X_0 girdisi ile elde edilen H_0 ve X_1kullanılıyor. Aynı şekilde ilerliyor.

İşin Matematiği:

formül 1.1

h_t: Şu anki h değeri

h_t-1: Bir önceki h değeri

x_t: Şu anki girdi vektörü

Bir aktivasyon fonksiyonu ile kullanımı:

formül 1.2

W: Ağırlık

h: Gizli katman

W_hh: Bir önceki gizli katmanın ağırlığı

W_hx: Şu anki gizli katmanın ağırlığı

tanh: Aktivasyon fonksiyonu

formül 1.3

W_hy: Çıktı katmanının ağırlık değeri

y_t: Çıktı

Eğer anlamadıysan hiç endişelenme. Çünkü şuan anlayacaksın.

Gün boyu dışarıdasın ve ev arkadaşın senin için yemek yapıyor ama bazı kuralları var. Yemekleri elmalı turta, hamburger ve tavuk sırasıyla yapıyor.

Haftalık yemek sıralaması

Bir diğer kural olarak hava güneşliyse o da dışarı çıkıyor ve bir önceki gün yemek olarak ne yaptıysa aynısını yapıyor. Eğer hava yağmurluysa dün yaptığı yemeği değiştiriyor.

Hava durumuna göre yaptığı yemek

Şimdi işleri biraz kızıştıralım. İki kuralı da aynı anda uygulayalım ve bir haftalık programı çıkartalım.

Pazartesi, sıradaki ilk yemek olan elmalı turta ile başlıyor. Salı günü hava güneşli olduğu için yemeği değiştirmez ve bir önceki gün ne yaptığına bakarak aynısını yapar (Yapacağı yemeği karar vermek için hava durumuna ve bir önceki gün ne yaptığına bakarak karar vermesi RNN’e benzemiyor mu? 😲). Çarşamba günü hava yağmurlu, yani dün yapmış olduğu yemeği değiştirmesi gerekiyor. Bir önceki gün yapmış olduğu elmalı turtaya bakarak bugün hamburger yapması gerektiğine karar veriyor.

Perşembe => Yağmurlu Hava (Yemeği değiştir) + Hamburger = Tavuk

Cuma => Güneşli Hava (Yemek aynı kalsın) + Tavuk = Tavuk

Cumartesi => Güneşli Hava (Yemek aynı kalsın) + Tavuk = Tavuk

Bu denklemler ne kadar da formül 1.1'e benziyor.

Pazar günü için:

Avantajları:

1-) Bir önceki örnek ile ilişki kurar. Bu sayede girdiler unutulmadan ilerlenir.

2-) Kullanım alanı çok geniştir. (Metin ve ses verileri, sınıflandırma problemleri, regresyon problemleri, üretken (generative) modellerde kullanılır.)

Dezavantajları:

1-) Gradient vanishing /exploding problemleri. (Yakın zamanda bunun hakkında bir yazı gelecek.)

2-) Uzun girdileri işlemekte zorlanır.

Özet:

1-) RNN’ler önceki girdileri hatırlar ve her girdi için ilişki kurar.

2-) Kendi içerisinde dönen bir döngü gibi çalışır.

3-) Kendi içerisinde de işlemler yapıldığı için, genelde çok derin RNN yapıları kurulmaz.

RNN bu kadardı. Okuduğunuz için teşekkür ederim.

Esen Kalın.

Kaynaklar:

--

--

Mehmet Fatih AKCA
Deep Learning Türkiye

Sakarya Üniversitesi Yönetim Bilişim Sistemleri 4.sınıf öğrencisiyim. Makine Öğrenmesi, Veri Madenciliği, Veri Analizi ve Görüntü İşleme www.mfakca.com