Tekrarlayan sinir ağlarını netleştirin

Sep 20 2020

Tekrarlayan sinir ağlarını öğrenmeye ve anlamaya başlıyorum. Tahmin edebileceğim kadarıyla, her bir katmanda bir nöron bulunan çoklu ileri beslemeli sinir ağları yan yana koyulur ve soldan sağa bağlanır, burada her nöron sadece altındaki nöronla değil, aynı zamanda önceki zamandan soldan. Bunun hakkında düşünmenin doğru bir yolu olup olmadığından emin değilim, ama şu ana kadar ilk izlenimim.

Yine de bazı şeyler belirsiz.

  1. Anladığım kadarıyla her zaman adımının son çıktısının bir sonraki zaman adımının girişini tahmin etmesi gerekiyordu. Bu doğru mu? Ya ağa, örneğin bir atın iki görüntüsünü göstermek ve onlara bağlı olarak, hangi mesafeye ve hangi yöne gittiğini tahmin etmek istersem? Mümkün mü?

  1. Yukarıdaki resimde $A_0$. Nereden? Bir tahminde bulunmak için en az iki zaman adımı gerektiğini varsayıyorum, bu yüzden benim anlayışıma göre$x_0$diyagramın sol tarafında eksik. Haklı mıyım

  2. "512 gizli düğüme sahip 2 katmanlı bir LSTM eğitelim" yazan bir makaleyi okudum. İki etkinleştirme katmanı ve 512 zaman adımı anlamına mı geliyor?

Yanıtlar

1 YuseqYaseq Sep 22 2020 at 22:09

Tahmin edebileceğim kadarıyla, her bir katmanda bir nöron bulunan çoklu ileri beslemeli sinir ağları yan yana koyulur ve soldan sağa bağlanır, burada her nöron sadece altındaki nöronla değil, aynı zamanda önceki zamandan soldan.

Tam olarak değil. Görüntünüzdeki her bir mavi kutu tam olarak aynı hücreyi temsil eder. Şimdi bu hücre birçok şey olabilir, sadece LSTM hücresine bakın (h ve c, A'nızı temsil eder), ancak aynı zamanda alan bir ağ da olabilir.$A_i$ ve $X_{i+1}$ girdi ve dönüş olarak $A_{i+1}$ ve $Y_{i+1}$ çıktı olarak.

  1. RNN, örneğin bir zaman serisini tahmin etmeye çalışırsa bu doğru olabilir. Böyle bir ağı eğitmek için seriyi bir eğitim girdisi ve aynı zaman serisini sağlarsınız, ancak bir sonraki adımda bir çıktı olarak (böylece tahmin etmeye çalışırdı).$X_{i+1}$ dayalı $\forall_{j \in [1;i)} X_{j}$. Ama genel olarak bu doğru değil. Çıktı tamamen farklı bir formatta olabilir ve sizin örneğinizdeki gibi tamamen farklı bir şeyi temsil edebilir. Senin örneğinde senin$X_i$ kodlanmış bir i-inci çerçevedir ve $Y_i$ ağ, atın kat ettiği mesafenin i-inci çerçeveye kadar olduğunu düşündüğü şeydir.
  2. $A_0$RNN'nin başlangıç ​​durumudur. Tam olarak ne olduğu, kullanılan mimariye bağlıdır, ancak hepsini sıfıra ayarlamak yaygındır. Bu başlangıç ​​durumuna ihtiyacımız var çünkü bahsettiğim gibi aynı hücre yinelenen her adımda kullanılıyor, bu nedenle başlangıçta ağ durumu olarak sağlanacak bir şey olmalı. Yok$X_0$eksik. Ayrıca, uzunluk 1 dizisine dayanarak sizi bir tahmin yapmaktan alıkoyan hiçbir şey yoktur. Böyle bir durumda bir RNN kullanmak yararlı değildir.
  3. Alınan zaman adımlarının sayısı ağa değil verilere bağlıdır. Aynı ağı 512, 2 ve 2 milyon uzunlukta kullanabilirsiniz. Bu nedenle, konuşma tanıma gibi değişen uzunluktaki sorunları çözmek için yaygın olarak kullanılırlar. LSTM'lerin, normal bir sinir ağının yaptığı gibi ağırlıkları vardır. Bu 512 gizli düğümü hücredeki gizli bir katmanın boyutu olarak düşünebilirsiniz. İki LSTM katmanının kullanılması, 512 düğümlü iki LSTM kullanmak ve birincinin çıktısını ikincinin girişi olarak kullanmak anlamına gelir. İkinci LSTM'nin çıktısı, 2 katmanlı LSTM'nin çıktısıdır.