AI-For-Beginners/translations/tr/lessons/5-NLP/17-GenerativeNetworks
leestott f2699f91dc 🌐 Update translations via Co-op Translator 2025-08-28 14:37:35 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-26 12:09:18 +00:00
GenerativePyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 14:37:35 +00:00
GenerativeTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 14:37:35 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-26 12:09:18 +00:00

README.md

Üretken Ağlar

Ders Öncesi Test

Tekrarlayan Sinir Ağları (RNN'ler) ve Uzun Kısa Süreli Bellek Hücreleri (LSTM'ler) ile Gated Recurrent Units (GRU'ler) gibi kapılı hücre varyantları, dil modelleme için bir mekanizma sağlar. Bu mekanizma, kelime sıralamasını öğrenebilir ve bir dizideki bir sonraki kelime için tahminler sunabilir. Bu, RNN'lerin üretken görevler için kullanılmasını sağlar; örneğin, sıradan metin üretimi, makine çevirisi ve hatta görüntü açıklaması.

Yazarken metin tamamlama gibi üretken görevlerden faydalandığınız tüm zamanları düşünün. Favori uygulamalarınızın RNN'leri kullanıp kullanmadığını görmek için biraz araştırma yapın.

Önceki birimde tartıştığımız RNN mimarisinde, her RNN birimi bir sonraki gizli durumu çıktı olarak üretir. Ancak, her tekrarlayan birime başka bir çıktı ekleyebiliriz, bu da bir dizi (orijinal dizinin uzunluğuna eşit) üretmemizi sağlar. Ayrıca, her adımda bir giriş kabul etmeyen ve sadece bir başlangıç durum vektörü alarak bir çıktı dizisi üreten RNN birimleri kullanabiliriz.

Bu, aşağıdaki resimde gösterilen farklı sinir mimarilerini mümkün kılar:

Yaygın tekrarlayan sinir ağı desenlerini gösteren resim.

Resim, Andrej Karpaty tarafından yazılan Unreasonable Effectiveness of Recurrent Neural Networks blog yazısından alınmıştır.

  • Bire bir: Bir giriş ve bir çıkış ile geleneksel bir sinir ağıdır.
  • Bire çok: Bir giriş değeri kabul eden ve bir çıktı değerleri dizisi üreten üretken bir mimaridir. Örneğin, bir görüntü açıklamaı eğitmek istiyorsak, bir resmi giriş olarak alabilir, bir CNN'den geçirerek gizli durumunu elde edebilir ve ardından bir tekrarlayan zincir açıklamayı kelime kelime üretebiliriz.
  • Çoktan bire: Önceki birimde tanımladığımız RNN mimarilerine karşılık gelir, örneğin metin sınıflandırma.
  • Çoktan çoğa veya diziden diziye: Makine çevirisi gibi görevlere karşılık gelir. Burada, ilk RNN giriş dizisinden tüm bilgiyi gizli duruma toplar ve başka bir RNN zinciri bu durumu çıktı dizisine açar.

Bu birimde, metin üretmemize yardımcı olan basit üretken modeller üzerine odaklanacağız. Basitlik için karakter düzeyinde tokenizasyon kullanacağız.

Bu RNN'yi adım adım metin üretmek için eğiteceğiz. Her adımda, nchars uzunluğunda bir karakter dizisi alacağız ve ağdan her giriş karakteri için bir sonraki çıktı karakterini üretmesini isteyeceğiz:

RNN'nin 'HELLO' kelimesini üretme örneğini gösteren resim.

Metin üretirken (çıkarsama sırasında), bazı başlangıç noktası ile başlarız. Bu başlangıç noktası RNN hücrelerinden geçirilerek ara durumu oluşturur ve ardından bu durumdan üretim başlar. Her seferinde bir karakter üretiriz ve durumu ve üretilen karakteri bir sonraki karakteri üretmek için başka bir RNN hücresine geçiririz. Bu işlem yeterli sayıda karakter üretilene kadar devam eder.

Resim, yazar tarafından oluşturulmuştur.

✍️ Alıştırmalar: Üretken Ağlar

Aşağıdaki not defterlerinde öğrenmeye devam edin:

Yumuşak Metin Üretimi ve Sıcaklık

Her RNN hücresinin çıktısı bir karakter olasılık dağılımıdır. Eğer üretilen metindeki bir sonraki karakter olarak her zaman en yüksek olasılığa sahip karakteri seçersek, metin genellikle aynı karakter dizileri arasında "dönmeye" başlayabilir, aşağıdaki örnekte olduğu gibi:

today of the second the company and a second the company ...

Ancak, bir sonraki karakter için olasılık dağılımına bakarsak, en yüksek olasılıklardan birkaçının arasındaki farkın büyük olmadığını görebiliriz. Örneğin, bir karakterin olasılığı 0.2, diğerinin ise 0.19 olabilir. Örneğin, 'play' dizisindeki bir sonraki karakter, boşluk veya e (kelime player'daki gibi) olabilir.

Bu, her zaman en yüksek olasılığa sahip karakteri seçmenin "adil" olmadığını gösterir, çünkü ikinci en yüksek olasılığa sahip karakteri seçmek de anlamlı bir metin oluşturabilir. Daha akıllıca bir yaklaşım, ağ çıktısının verdiği olasılık dağılımından karakterleri örneklemek olacaktır. Ayrıca, olasılık dağılımını düzleştirmek veya daha dik hale getirmek için sıcaklık adlı bir parametre kullanabiliriz. Bu, daha fazla rastgelelik eklemek veya en yüksek olasılıklı karakterlere daha fazla bağlı kalmak istediğimizde işe yarar.

Bu yumuşak metin üretiminin yukarıdaki not defterlerinde nasıl uygulandığını keşfedin.

Sonuç

Metin üretimi kendi başına faydalı olabilir, ancak asıl avantajlar, RNN'ler kullanılarak bir başlangıç özellik vektöründen metin üretme yeteneğinden gelir. Örneğin, metin üretimi makine çevirisinin bir parçası olarak kullanılır (diziden diziye, bu durumda kodlayıcıdan gelen durum vektörü çevrilen mesajı üretmek veya çözmek için kullanılır) veya bir görüntünün metinsel açıklamasını üretmek için kullanılır (bu durumda özellik vektörü CNN çıkarıcısından gelir).

🚀 Meydan Okuma

Bu konuyla ilgili Microsoft Learn'de bazı dersler alın:

Ders Sonrası Test

İnceleme ve Kendi Kendine Çalışma

Bilginizi genişletmek için bazı makaleler:

Ödev

Metni karakter karakter nasıl üreteceğimizi gördük. Laboratuvarda, kelime düzeyinde metin üretimini keşfedeceksiniz.

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ık içerebileceğini lütfen unutmayın. Belgenin orijinal dilindeki hali, 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.