|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| RNNPyTorch.ipynb | ||
| RNNTF.ipynb | ||
| assignment.md | ||
README.md
Tekrarlayan Sinir Ağları
Ders Öncesi Test
Önceki bölümlerde, metinlerin zengin anlamsal temsillerini ve gömme katmanlarının üzerine basit bir doğrusal sınıflandırıcıyı kullandık. Bu mimarinin yaptığı şey, bir cümledeki kelimelerin toplu anlamını yakalamaktır, ancak kelimelerin sırasını dikkate almaz, çünkü gömme katmanlarının üzerindeki toplama işlemi bu bilgiyi orijinal metinden kaldırır. Bu modeller kelime sırasını modelleyemediği için, metin üretimi veya soru yanıtlama gibi daha karmaşık veya belirsiz görevleri çözemezler.
Metin dizisinin anlamını yakalamak için, tekrarlayan sinir ağı veya RNN adı verilen başka bir sinir ağı mimarisini kullanmamız gerekir. RNN'de, cümlemizi ağdan bir sembol bir sembol geçiririz ve ağ bir durum üretir, bu durumu bir sonraki sembolle birlikte tekrar ağa iletiriz.
Görsel: Yazar tarafından oluşturulmuştur
X0,...,Xn giriş dizi sembolleri verildiğinde, RNN bir sinir ağı blokları dizisi oluşturur ve bu diziyi baştan sona geri yayılım kullanarak eğitir. Her ağ bloğu bir çift (Xi,Si) giriş olarak alır ve sonuç olarak Si+1 üretir. Son durum Sn veya (çıktı Yn), sonucu üretmek için doğrusal bir sınıflandırıcıya gider. Tüm ağ blokları aynı ağırlıkları paylaşır ve tek bir geri yayılım geçişiyle baştan sona eğitilir.
Durum vektörleri S0,...,Sn ağdan geçtiği için, kelimeler arasındaki sıralı bağımlılıkları öğrenebilir. Örneğin, dizide bir yerde değil kelimesi geçtiğinde, durum vektöründeki belirli öğeleri olumsuzlamak için öğrenebilir ve bu da olumsuzlama ile sonuçlanır.
✅ Yukarıdaki resimdeki tüm RNN bloklarının ağırlıkları paylaşıldığından, aynı resim bir geri besleme döngüsü olan tek bir blok (sağda) olarak temsil edilebilir ve ağın çıktı durumunu girişe geri iletir.
Bir RNN Hücresinin Anatomisi
Basit bir RNN hücresinin nasıl organize edildiğini görelim. Önceki durum Si-1 ve mevcut sembol Xi'yi giriş olarak alır ve çıktı durumu Si'yi üretmek zorundadır (ve bazen, üretici ağlarda olduğu gibi, başka bir çıktı Yi ile de ilgileniriz).
Basit bir RNN hücresinin içinde iki ağırlık matrisi vardır: biri bir giriş sembolünü dönüştürür (W olarak adlandıralım) ve diğeri bir giriş durumunu dönüştürür (H). Bu durumda ağın çıktısı σ(W×Xi+H×Si-1+b) olarak hesaplanır, burada σ aktivasyon fonksiyonu ve b ek bir yanlılıktır.
Görsel: Yazar tarafından oluşturulmuştur
Çoğu durumda, giriş sembolleri RNN'ye girmeden önce boyutları düşürmek için gömme katmanından geçirilir. Bu durumda, eğer giriş vektörlerinin boyutu emb_size ve durum vektörünün boyutu hid_size ise - W'nin boyutu emb_size×hid_size, H'nin boyutu ise hid_size×hid_size olur.
Uzun Kısa Süreli Bellek (LSTM)
Klasik RNN'lerin ana problemlerinden biri, kaybolan gradyanlar problemidir. RNN'ler tek bir geri yayılım geçişinde baştan sona eğitildiği için, hatayı ağın ilk katmanlarına iletmekte zorlanır ve bu nedenle ağ, uzak semboller arasındaki ilişkileri öğrenemez. Bu sorunu önlemenin bir yolu, kapılar kullanarak açık durum yönetimi tanıtmaktır. Bu tür iki iyi bilinen mimari vardır: Uzun Kısa Süreli Bellek (LSTM) ve Kapılı Röle Birimi (GRU).
Görsel kaynağı belirlenecek
LSTM Ağı, RNN'ye benzer bir şekilde organize edilmiştir, ancak katmandan katmana geçen iki durum vardır: gerçek durum C ve gizli vektör H. Her birimde, gizli vektör Hi, giriş Xi ile birleştirilir ve bunlar kapılar aracılığıyla durum C'de ne olacağını kontrol eder. Her kapı, sigmoid aktivasyonlu (çıktı [0,1] aralığında) bir sinir ağıdır ve durum vektörü ile çarpıldığında bit düzeyinde bir maske olarak düşünülebilir. Aşağıdaki kapılar vardır (yukarıdaki resimde soldan sağa):
- Unutma kapısı, bir gizli vektör alır ve C vektörünün hangi bileşenlerini unutmamız gerektiğini ve hangilerini geçirmemiz gerektiğini belirler.
- Giriş kapısı, giriş ve gizli vektörlerden bazı bilgileri alır ve duruma ekler.
- Çıkış kapısı, durumu tanh aktivasyonlu bir doğrusal katman aracılığıyla dönüştürür, ardından yeni bir durum Ci+1 üretmek için gizli vektör Hi'yi kullanarak bazı bileşenlerini seçer.
Durum C'nin bileşenleri, açılıp kapatılabilen bayraklar olarak düşünülebilir. Örneğin, dizide Alice adında bir isimle karşılaştığımızda, bunun bir kadın karaktere atıfta bulunduğunu varsaymak ve cümlede bir kadın isim olduğunu belirten bayrağı kaldırmak isteyebiliriz. Daha sonra ve Tom ifadeleriyle karşılaştığımızda, çoğul bir isim olduğunu belirten bayrağı kaldırabiliriz. Böylece, durumu manipüle ederek cümlenin gramer özelliklerini takip edebiliriz.
✅ LSTM'nin iç işleyişini anlamak için mükemmel bir kaynak, Christopher Olah'ın Understanding LSTM Networks adlı harika makalesidir.
Çift Yönlü ve Çok Katmanlı RNN'ler
Bir dizinin başından sonuna doğru çalışan tekrarlayan ağları tartıştık. Bu doğal görünüyor, çünkü okuma ve konuşmayı dinleme şeklimize benziyor. Ancak, birçok pratik durumda giriş dizisine rastgele erişimimiz olduğu için, tekrarlayan hesaplamayı her iki yönde de çalıştırmak mantıklı olabilir. Bu tür ağlara çift yönlü RNN'ler denir. Çift yönlü bir ağla çalışırken, her yön için birer gizli durum vektörüne ihtiyacımız olacaktır.
Tek yönlü veya çift yönlü bir tekrarlayan ağ, bir dizideki belirli kalıpları yakalar ve bunları bir durum vektörüne depolayabilir veya çıktıya aktarabilir. Konvolüsyonel ağlarda olduğu gibi, ilk katman tarafından çıkarılan düşük seviyeli kalıplardan daha yüksek seviyeli kalıpları yakalamak ve inşa etmek için ilk katmanın üzerine başka bir tekrarlayan katman inşa edebiliriz. Bu bizi, önceki katmanın çıktısının bir sonraki katmana giriş olarak geçtiği iki veya daha fazla tekrarlayan ağdan oluşan bir çok katmanlı RNN kavramına götürür.
Bu harika gönderiden alınan resim, Fernando López tarafından yazılmıştır.
✍️ Alıştırmalar: Gömme Katmanları
Aşağıdaki defterlerde öğrenmeye devam edin:
Sonuç
Bu birimde, RNN'lerin dizi sınıflandırması için kullanılabileceğini gördük, ancak aslında metin üretimi, makine çevirisi ve daha fazlası gibi birçok görevi yerine getirebilirler. Bu görevleri bir sonraki birimde ele alacağız.
🚀 Zorluk
LSTM'ler hakkında bazı literatürleri okuyun ve uygulamalarını düşünün:
- Grid Long Short-Term Memory
- Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
Ders Sonrası Test
Gözden Geçirme ve Kendi Kendine Çalışma
- Christopher Olah'ın Understanding LSTM Networks adlı makalesi.
Ödev: Defterler
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.

