- 10.000 zaman adımı büyüklüğünde bir dizi verisini işleyen bir RNN, optimize edilmesi çok zor olan 10.000 derin katmana sahiptir 🙄
- Derin Sinir Ağlarında da, daha derin ağlar vanishing gradient problem sorununa giriyor 🥽
- Bu da, uzun dizi boyutuna sahip RNN'lerde de olur 🐛
- GRU Gated Recurrent Unit
- LSTM Long Short-Term Memory
GRU'lar standart tekrarlayan sinir ağlarının gelişmiş versiyonlarıdır ✨, GRU güncelleme kapısı ve sıfırlama kapısını kullanır
- Temel olarak, bunlar çıktıya hangi bilgilerin aktarılması gerektiğine karar veren iki vektördür
- Onlarla ilgili özel olan şey, bilgiyi uzun zaman önce tutmak için eğitilebilecekleridir
- Zamanla kaybolmadan veya tahminle ilgili bilgileri çıkarmadan
Kapı | Açıklama |
---|---|
🔁 Güncelleme Kapısı | Modele, geçmiş bilgilerin ne kadarının (önceki zaman adımlarından) geleceğe aktarılması gerektiğini belirlemede yardımcı olur |
0️⃣ Sıfırlama Kapısı | Modele, geçmiş bilgilerin ne kadarının unutacağına karar vermede yardımcı olur |
Bu kapı göz önüne alındığında, vanishing gradient problemi ortadan kalkar çünkü model kendi başına geçmiş bilgilerin ne kadarını geleceğe taşıdığını öğreniyor.
Kısaca: Şimdi ne kadar geçmiş önemli olmalı? 🙄
Geçmiş bilgilerinin ne kadarının unutulacağına karar vermek için model tarafından kullanıldığından, bu kapı güncelleme kapısıyla karşılaştırıldığında tam tersi bir işlevselliğe sahiptir.
Kısaca: Önceki bilgi düşürülecek mi? 🙄
Geçmişten ilgili bilgileri saklamak için sıfırlama kapısını kullanacak bellek içeriği.
Mevcut birim için bilgi tutan ve onu daha sonra ağa iletecek bir vektör.
- vanishing gradient problemini gidermek için bir çözümdür
- Model her seferinde yeni girişi kaybetmekte kalmıyor, ilgili bilgileri saklıyor ve ağın bir sonraki zaman adımlarına aktarıyor
- Bir metinde kelimeler okuduğumuzu varsayalım ve örneğin tekil mi yoksa çoğul mu olduğu gibi gramer yapılarını takip etmek için bir LSTM kullanmak istiyoruz.
- Eğer konu tekil bir kelimeden çoğul kelimeye geçerse, tekil / çoğul durumun önceden depolanmış hafıza değerinden kurtulmanın bir yolunu bulmalıyız.
- LSTM'de, sıfırlama (forget) kapısı bunu yapmamıza izin veriyor
- Burada,
$W_f$ sıfırlama kapısı davranışını yöneten ağırlıklardır.$$[a^{} ve x^{}]$$ 'yi birleştiriyoruz ve$$W_f$$ ile çarpıyoruz. Yukarıdaki denklem, 0 ile 1 arasında değerleri olan bir$$\Gamma_f^{}$$ vektörüyle sonuçlanır - Bu sıfırlama kapısı vektörü, önceki hücre durumu
$$c^{}$$ olan ile element-wise çarpılır - Eğer
$$\Gamma_f^{}$$ 'nın değerlerinden biri 0 ise (veya 0'a yakınsa), LSTM'nin bu bilgi parçasını$$c^{}$$ 'nin karşılık gelen bileşeninden çıkarması gerektiği anlamına gelir (örneğin: tekil nesne). - Değerlerden biri 1 ise, bilgiyi olduğu gibi korunacaktır.
Odaklandığımız nesnenin tekil olduğunu unuttuğumuzda, yeni nesnenin artık çoğul olduğunu yansıtacak şekilde güncellemenin bir yolunu bulmalıyız. Güncelleme kapısının formülü aşağıdaki gibidir:
Sıfırlama kapısında olduğuna benzer şekilde, burada
Yeni nesneyi güncellemek için önceki hücre durumumuza ekleyebileceğimiz yeni bir sayı vektörü oluşturmamız gerekiyor. Kullandığımız denklem aşağıdaki gibidir:
Son olarak, yeni hücre durumu:
$$c^{}=\Gamma _f^{}c^{} + \Gamma _u^{}\tilde{c}^{}$$
Hangi çıktıları kullanacağımıza karar vermek için aşağıdaki iki formülü kullanıyoruz:
Birinci denklemde, sigmoid fonksiyonunu kullanarak neyin çıktısı alınacağına karar verirken, ikinci denklemde önceki durumu tanh fonksiyonu ile çarpıyoruz.
GRU, LSTM'den daha yeni, LSTM daha güçlü, ancak GRU'nun uygulanması daha kolay 🚧