AI-For-Beginners/translations/tr/lessons/5-NLP/17-GenerativeNetworks
localizeflow[bot] 33ce0e5757 chore(i18n): sync translations with latest source changes (chunk 1/1, 203 changes) 2026-01-30 01:54:20 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 203 changes) 2026-01-30 01:54:20 +00:00
GenerativePyTorch.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
GenerativeTF.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 203 changes) 2026-01-30 01:54:20 +00:00

README.md

Üretici 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'lar) gibi kapılı hücre varyantları, dil modelleme için bir mekanizma sağlar. Bu ağlar, kelime sıralamasını öğrenebilir ve bir dizideki bir sonraki kelime için tahminlerde bulunabilir. Bu, RNN'lerin üretici görevler için kullanılmasına olanak tanır; örneğin, sıradan metin üretimi, makine çevirisi ve hatta görüntü açıklaması.

Yazarken metin tamamlama gibi üretici görevlerden faydalandığınız tüm zamanları düşünün. Sevdiğiniz uygulamaların RNN'leri kullanıp kullanmadığını araştırı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) çıkarmamıza olanak tanır. Ayrıca, her adımda bir giriş kabul etmeyen ve sadece bir başlangıç durum vektörü alıp ardından bir çıktı dizisi üreten RNN birimleri kullanabiliriz.

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

Yaygın tekrarlayan sinir ağı desenlerini gösteren bir 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ışa sahip geleneksel bir sinir ağıdır.
  • Bire çok: Bir giriş değeri kabul eden ve bir çıktı değerleri dizisi üreten üretici 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 zincirle açıklamayı kelime kelime üretebiliriz.
  • Çoktan bire: Önceki birimde tanımladığımız, metin sınıflandırma gibi RNN mimarilerine karşılık gelir.
  • Çoktan çoğa veya diziden diziye: Makine çevirisi gibi görevlere karşılık gelir. İlk 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 üretici 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 bir resim.

Metin üretirken (çıkarsama sırasında), bazı başlangıç verileriyle başlarız. Bu veri RNN hücrelerinden geçirilerek ara durumu oluşturur ve ardından ü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: Üretici 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 her zaman en yüksek olasılığa sahip karakteri bir sonraki karakter olarak seçersek, metin genellikle aynı karakter dizileri arasında "dönmeye" başlayabilir. Örneğin:

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ıklar arasındaki farkın büyük olmayabileceğini görebiliriz. Örneğin, bir karakterin olasılığı 0.2, diğerinin ise 0.19 olabilir. Örneğin, 'play' dizisindeki bir sonraki karakter, eşit derecede boşluk veya e (örneğin player kelimesinde olduğu gibi) olabilir.

Bu, her zaman en yüksek olasılığa sahip karakteri seçmenin "adil" olmayabileceği sonucuna götürür. İkinci en yüksek olasılığı seçmek de anlamlı bir metne yol açabilir. Daha akıllıca bir yaklaşım, ağın çıktısının verdiği olasılık dağılımından karakterleri örneklemek olacaktır. Ayrıca, daha fazla rastgelelik eklemek veya en yüksek olasılıklı karakterlere daha fazla bağlı kalmak istediğimizde olasılık dağılımını düzleştirecek veya dikleştirecek bir sıcaklık parametresi kullanabiliriz.

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

Sonuç

Metin üretimi kendi başına faydalı olabilirken, 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 encoder'dan gelen durum vektörü çevrilen mesajı üretmek veya decode etmek 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ıdan 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.