💫
Derin Öğrenme
  • 💫Derin Öğrenme Notları
  • 🚀English Version
  • 🦋Projeye Katkıda Bulunma
  • 💼Kullanışlı Araçlar
  • 💎Yapay Sinir Ağları Kavramları
    • 🌱Giriş
    • 🔎Esas Problem
    • 👷‍♀️ Yapay Sinir Ağlarının Uygulanması Üzerine Notlar
    • 📚Yapay Sinir Ağlarının Kavramları
    • 💥Yapay Sinir Ağlarında Aktivasyon Fonksiyonları
    • 🎈NN Uygulama İp Uçları
    • 👩‍🔧 NN Düzenlileştirme (Regularization)
    • ✨Optimizasyon Algoritmaları
    • 🎨Softmax Regression
    • 🏃‍♀️ Tensorflow'a Hızlı Giriş
    • 👩‍💻 Yapay Sinir Ağlarıyla ilgili Pyhton Kod Parçaları
  • 🙋‍♀️ Yapay Sinir Ağları ile Derin Öğrenme'nin Hello World'u
    • 🌱Giriş
    • 🌐Tarayıcıda CNNler
  • 🚪Bilgisayar Görüşüne Giriş
    • 🌱Giriş
  • 🚩Evrişimli Sinir Ağları Kavramları
    • 🌱Giriş
    • 📌Evrişimli Sinir Ağları ile İlgili Genel Kavramlar
    • 🌟Evrişimli Sinir Ağları Gelişmiş Kavramları
    • 👀Evrişimli Sinir Ağlarının Görselleştirilmesi
    • 👵Klasik Evrişimli Sinir Ağları
    • ✨CNN'leri Kurmak İçin Diğer Yaklaşımlar
    • 🕸️CNN'lerin Popüler Uygulamaları
  • 👩‍💻 CNN'ler Üzerinde Kodlar ve Notlar
    • 🌱Giriş
  • 💄Derin Öğrenmenin Popüler Stratejileri
    • 🌱Giriş
    • 🚙Öğrenme Aktarması (Transfer Learning)
    • 📚Derin Öğrenmede Diğer Stratejiler
  • 🤡Resim Artırma (Image Augmentation)
    • 🌱Giriş
  • 🤸‍♀️ Uygulamalı Makine Öğrenmesi Üzerine Notlar
    • 🌱Giriş
    • 👩‍🔧 Makine Öğrenimi Projelerinin Yapılandırılması Üzerine Notlar
    • 👩‍🏫 Uygulama Talimatları
  • 🕵️‍♀️ Obje Algılama Temelleri
    • 🌱Giriş
    • ⭕Bölge Tabanlı (Region-Based) CNN'ler
    • 🤳SSD ve YOLO
    • 🤖TensorFlow Object Detection API
  • ➰Derin Öğrenmede Dizi Modelleri
    • 🌱Giriş
    • 📚Dizi Modellerinin Genel Kavramları
    • 🔄Tekrarlayan Sinir Ağları (RNN)
    • 🌌RNN'deki Vanishing Gradients
    • 🌚Kelime Gösterimi
    • 💬NLP Hakkında Karışık Bilgiler
  • 📕Proje Sözlüğü
  • 📚Faydalı PDF'ler
  • 👀Hızlı Görsel Bilgiler
Powered by GitBook
On this page
  • 🔄 Tekrarlayan Sinir Ağları (RNN)
  • 🔎 Tanım
  • 🧱 Mimari
  • ⏩ Forward Propagation
  • ⏪ Back Propagation
  • 🎨 RNN Türleri
  • 🔥 Gelişmiş Tekrarlayan Sinir Ağları
  • 🔄 Çift Yönlü Tekrarlayan Yapay Sinir Ağları (BRNN)
  • 🕸 Derin RNN'ler
  • ❌ Problem: Vanishing Gradients with RNNs
  • 🌞 Yazının Aslı
  • 🧐 Daha Fazla Oku

Was this helpful?

Export as PDF
  1. Derin Öğrenmede Dizi Modelleri

Tekrarlayan Sinir Ağları (RNN)

PreviousDizi Modellerinin Genel KavramlarıNextRNN'deki Vanishing Gradients

Last updated 4 years ago

Was this helpful?

🔄 Tekrarlayan Sinir Ağları (RNN)

🔎 Tanım

Önceki çıkışların sonraki katmanlara giriş olarak kullanılmasına izin veren bir sinir ağı sınıfıdır

Eğitim sırasında öğrendikleri şeyleri hatırlarlar ✨

🧱 Mimari

🔶 RNN Tamamının Mimarisi

🧩 Bir RNN Hücresi

Temel bir RNN hücresi. x⟨t⟩x^{⟨t⟩}x⟨t⟩'yi (Şimdiki girdi) ve a⟨t−1⟩a^{⟨t−1⟩}a⟨t−1⟩'yi (geçmişten gelen bilgileri içeren önceki gizli durum) girdi olarak alır, bir sonraki RNN hücresine verilen ve aynı zamanda y⟨t⟩y^{⟨t⟩}y⟨t⟩'yi tahmin etmek için kullanılan a⟨t⟩a^{⟨t⟩}a⟨t⟩'yi çıktı olarak verir

⏩ Forward Propagation

a<t>a^{<t>}a<t>'yi hesaplamak için:

a<t>=g(Waaa<t−1>+Waxx<t>+ba)a^{<t>}=g(W_{aa}a^{<t-1>}+W_{ax}x^{<t>}+b_a)a<t>=g(Waa​a<t−1>+Wax​x<t>+ba​)

y^<t>\hat{y}^{<t>}y^​<t>'yi hesaplamak için:

y^<t>=g(Wyaa<t>+by)\hat{y}^{<t>} = g(W_{ya}a^{<t>}+b_y)y^​<t>=g(Wya​a<t>+by​)

👀 Görselleştirme

⏪ Back Propagation

Kayıp fonksiyonu aşağıdaki şekilde tanımlanır

L<t>(y^<t>,y<t>)=−y<t>log(y^)−(1−y<t>)log(1−y^<t>)L^{<t>}(\hat{y}^{<t>}, y^{<t>})=-y^{<t>}log(\hat{y})-(1-y^{<t>})log(1-\hat{y}^{<t>})L<t>(y^​<t>,y<t>)=−y<t>log(y^​)−(1−y<t>)log(1−y^​<t>)

L(y^,y)=∑t=1TyL<t>(y^<t>,y<t>)L(\hat{y},y)=\sum_{t=1}^{T_y}L^{<t>}(\hat{y}^{<t>}, y^{<t>})L(y^​,y)=∑t=1Ty​​L<t>(y^​<t>,y<t>)

🎨 RNN Türleri

  • 1️⃣ ➡ 1️⃣ One-to-One (Klasik ANN)

  • 1️⃣ ➡ 🔢 One-to-Many (Müzik Üretme)

  • 🔢 ➡ 1️⃣ Many-to-One (Anlamsal Analiz)

  • 🔢 ➡ 🔢 Many-to-Many Tx=TyT_x = T_yTx​=Ty​ (Konuşma tanıma)

  • 🔢 ➡ 🔢 Many-to-Many Tx≠TyT_x \neq T_yTx​=Ty​ (Makine Çevirisi)

🔥 Gelişmiş Tekrarlayan Sinir Ağları

🔄 Çift Yönlü Tekrarlayan Yapay Sinir Ağları (BRNN)

  • Birçok uygulamada, tüm giriş sırasına bağlı olabilecek bir y(t)y^{(t)}y(t) tahmini çıkarmak isteyebiliriz

  • Bidirectional RNN'ler dizinin başlangıcından başlayarak zaman içinde ileri hareket eden bir RNN'i, dizinin sonundan başlayarak zaman boyunca geri hareket eden bir RNN ile birleştirirler.

💬 Başka Bir Deyişle

  • Çift Yönlü Tekrarlayan Yapay Sinir Ağları aslında iki bağımsız RNN bir araya getiriyorlar.

  • Giriş dizisi bir ağ için normal zaman sırasıyla, diğeri için ters zaman sırasıyla aktarılır.

  • İki ağın çıkışları genellikle her zaman adımında birleştirilir.

  • 🎉 Bu yapı, ağların, her adımda dizi hakkında hem geri hem de ileri bilgiye sahip olmalarını sağlar.

👎 Dezavantaj

Tahmin yapmadan önce tüm veri dizisine ihtiyacımız vardır.

e.g: gerçek zamanlı konuşma tanıma için uygun değildir

👀 Görselleştirme

🕸 Derin RNN'ler

Çoğu RNN hesaplamaları, üç parametre bloğuna ve ilişkili dönüşümlere ayrıştırılabilir.: 1. Girişten gizli duruma, x(t)x^{(t)}x(t) ➡ a(t)a^{(t)}a(t) 2. Önceki gizli durumdan sonraki gizli duruma, a(t−1)a^{(t-1)}a(t−1) ➡ a(t)a^{(t)}a(t) 3. Gizli durumdan çıktıya, a(t)a^{(t)}a(t) ➡ y(t)y^{(t)}y(t)

Derin tekrarlayan ağlarla sonuçlanan yukarıdaki dönüşümlerin her biri için birden çok katman kullanabiliriz 😋

👀 Görselleştirme

❌ Problem: Vanishing Gradients with RNNs

  • 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 🐛

🧙‍♀️ Çözümler

🌞 Yazının Aslı

🧐 Daha Fazla Oku

RNN'deki Vanishing Gradients problemi üzerine okuyabilirsin 🤸‍♀️

➰
🔄
Yazımı
Burada 🐾
Recurrent Neural Networks Cheatsheet ✨
All About RNNs 🚀