RNN'lerin mimarisini anlamaya çalışıyorum. Çok yardımcı olan bu öğreticiyi buldum: http://colah.github.io/posts/2015-08-Anlama-LSTMs/
Bu, ileri beslemeli bir ağa nasıl uyar? Bu görüntü her katmandaki başka bir düğüm mü?
RNN'lerin mimarisini anlamaya çalışıyorum. Çok yardımcı olan bu öğreticiyi buldum: http://colah.github.io/posts/2015-08-Anlama-LSTMs/
Bu, ileri beslemeli bir ağa nasıl uyar? Bu görüntü her katmandaki başka bir düğüm mü?
Yanıtlar:
A aslında tam bir katmandır. Katmanın çıktısı, aslında bir softmax katmanına takılabilen nöron çıkışıdır (zaman adımı için bir sınıflandırma istiyorsanız örneğin) veya daha derine inmek istiyorsanız başka bir LSTM katmanı gibi herhangi bir şey. Bu katmanın girdisi, onu düzenli ileri beslemeli ağdan ayıran şeydir: her iki girişi de alır ve önceki zaman adımında ağın tam durumu (her ikisi de) ve LSTM hücresindeki diğer değişkenler).
Bunu not et bir vektördür. Bu nedenle, 1 gizli katmanla düzenli bir ileri beslemeli ağ ile bir benzetme yapmak istiyorsanız, A'nın tüm bu nöronların gizli katmandaki yerini alması düşünülebilir (artı yinelenen kısmın ekstra karmaşıklığı).
Resminizde A, tek bir gizli Nöron içeren tek bir gizli katmandır. Soldan sağa zaman ekseni ve altta her seferinde bir giriş alırsınız. Üstte ağ, katmanlar eklenerek daha da genişletilebilir.
Resminizde görsel olarak gösterildiği gibi (zaman ekseni soldan sağa doğru) bu ağı zamanla açarsanız, her birinde bir T (toplam zaman adımı) gizli katman içeren bir ileri besleme ağı elde edersiniz. orta A bloğunda çizildiği gibi tek düğüm (nöron).
Umarım bu soruya cevap verir.
Bu basit diyagramı nispeten karmaşık bir bağlamda açıklamak istiyorum: seq2seq modelinin dekoderinde dikkat mekanizması.
Aşağıdaki akış diyagramında, için zaman adımlarıdır (boşluklar için PAD'lerle giriş numarasıyla aynı uzunlukta). Sözcük i (zaman adımı) LSTM nöraline (veya görüntünüzdeki üç hücrenin herhangi biriyle aynı çekirdek hücresine) her koyulduğunda, i'inci çıktısını önceki durumuna ((i-1)) çıktıya göre hesaplar ve i girişi. Bunu kullanarak sorununuzu, yalnızca son testin tüm durumlarının, yalnızca sonuncuyu almak için atılmak yerine dikkat mekanizması için kaydedilmiş olmasından kaynaklandığını gösterdim. Sadece bir nöraldir ve bir katman olarak görülür (higer katmanlarında daha fazla soyut bilgi elde etmek için örneğin bazı seq2seq modellerinde çift yönlü kodlayıcı oluşturmak için çoklu katmanlar istiflenebilir).
L tensörlerinin bir listesi (: num_hidden / şeklin her birine: Daha sonra (embedding_dimention x 1 L kelimelerle ve şeklinin bir vektör olarak temsil edilen her bir) cümle kodlayan NUM_UNITS * 1). Ve kod çözücünün önündeki durum, listedeki her bir öğenin aynı şeklinin cümlesinin gömülmesi ile sadece son vektördür.
Fotoğraf kaynağı: Dikkat Mekanizması