Atlas’ta ara

Keşfetmeye buradan başla

Öğren/RNN

Dizi modelleri: tekrarlı ağlardan Transformer’a

Bir ağ, sırayı nasıl hatırlar? RNN’in hafızası neden birkaç adımda silinir, kapılar bunu nasıl değiştirir ve Transformer neden bambaşka bir yol seçti? Etkiyi adım adım ölç.

ÖN BİLGİ

Bu yazıyı rahat izlemek için şunlara önce bakmış olman iyi olur:

01Sıra önemlidir, uzunluk değişir#

“Kedi köpeği kovaladı” ile “köpek kediyi kovaladı” aynı kelimelerden oluşur ama farklı şeyler anlatır. Önceki yazılarda gördüğün gibi bir sinir ağı sabit sayıda girdi alır; bir cümle ise iki kelime de olabilir, iki yüz de. Üstelik anlam, kelimelerin sırasına bağlıdır.

Tekrarlı sinir ağı (RNN), bu sorunu şöyle çözer: aynı küçük hücreyi dizinin her adımında yeniden kullanır. Hücre iki şeyi alır, o adımın girdisini ve bir önceki adımdan kalan gizli durumu (h), ve yeni bir gizli durum üretir:

h_yeni = tanh(W · h_eski + U · x)

W ve U ağırlıkları her adımda aynıdır. Gizli durum, ağın o ana kadar gördüklerinin sabit boyutlu bir özetidir: hafızası budur. İlk kelimeden son kelimeye kadar bilgi, bu durum aracılığıyla taşınır.

02Zamanda açılmış derin bir ağ#

Hücreyi her adım için bir kopya olarak yan yana çizersen, T adımlık bir dizi, ağırlıkları paylaşan T katmanlı bir ağa dönüşür. Geri yayılım yazısındaki zincir kuralı aynen geçerlidir; buna zamanda geri yayılım denir. Hata, son adımdan başa doğru her adımda hücrenin türeviyle çarpılarak taşınır.

Bu da bir önceki yazıdaki uyarıyı doğrudan getirir: çok sayıda çarpanın çarpımı ya sönmeye ya patlamaya meyleder. Pascanu, Mikolov ve Bengio, bu kaybolan ve patlayan gradyan sorunlarını RNN eğitiminde iyi bilinen iki sorun olarak tanımlar; ilk kez Bengio ve arkadaşları ayrıntılı biçimde incelemiştir. Yazarlar patlama için gradyan normunu kırpmayı, kaybolma için de yumuşak bir kısıtı önerdi. On the difficulty of training Recurrent Neural Networks ↗

Aşağıda bunu ölçüyoruz. Sekiz boyutlu bir hücre, rastgele ve öğrenilmemiş ağırlıklar, rastgele bir girdi dizisi. Eğri, başlangıç durumundaki küçük bir değişikliğin k adım sonra durumda ne kadar göründüğünü gösterir (∂h_k/∂h₀ matrisinin normu). Geri yayılım açısından aynı sayı, k. adımdaki kayıp sinyalinin 0. adıma ne kadar ulaştığıdır. Önce keep = 0 ile düz RNN’e bak.

01

Başlangıç durumunun etkisi kaç adım yaşar?

Hesaplanan · temsili girdiler

Önce kapıyı kapat (keep = 0) ve etkinin kaç adımda yok olduğuna bak. Sonra kapıyı aç: 0,9 ve 0,99’u dene. Tekrarlı ağırlık kazancını da büyütmeyi unutma.

−12−9−6−3001020304050log₁₀ ‖∂h_k/∂h₀‖adım sayısı kDüz RNNKapılı hücre (keep = 0,90)
30. ADIM SONRA ETKİDüz RNN: 3,4×10⁻⁶ · Kapılı: 0,85
ETKİ %1’İN ALTINA İNEN İLK ADIMDüz RNN: 14 · Kapılı: 50+
YENİ GİRDİNİN YAZILMA PAYIDüz RNN: %100 · Kapılı: %10
Hesabı gör

Düz hücre: h ← tanh(g·W·h + U·x). Kapılı hücre: h ← keep·h + (1 − keep)·tanh(g·W·h + U·x). Bir adımın Jacobian’ı keep·I + (1 − keep)· diag(1 − c²)·g·W’dir (c, tanh çıktısı). k adım sonraki etki, bu matrislerin çarpımıdır. Çarpımın her halkası 1’den küçükse etki üstel olarak söner; keep 1’e yakınsa her halka I’ya yaklaştığı için etki korunur ama hücre yeni girdiyi de yalnızca (1 − keep) oranında içine alır.

Sekiz boyutlu bir hücre, rastgele (öğrenilmemiş) ağırlıklar ve rastgele girdi dizisi. Eğri, h₀’daki bir değişikliğin k adım sonra durumda ne kadar göründüğünü (∂h_k/∂h₀ matrisinin Frobenius normu) gösterir; geri yayılımda k. adımdan 0. adıma akan gradyanın büyüklüğü de odur. Kapı basitleştirilmiştir: sabit bir ‘koru’ payı; gerçek LSTM kapıları öğrenilir ve girdiye bağlıdır. Ağırlıklar rastgele olduğu için sayılar ağdan ağa değişir; eğilim üç ağda da aynı.

Bu rastgele ağda (Ağ 7, g = 1) etki başlangıçta 2,83’tür (birim matrisin normu). Düz RNN’de 10 adım sonra 0,116, 20 adım sonra 0,00023, 50 adım sonra 3×10⁻¹⁰’dur. Başlangıç değerinin %1’inin altına 14 adımda iniyor. Yani hücre, 14 adım önceki bir değişikliği pratikte fark edemez; gradyan da o kadar geriye taşınamaz, dolayısıyla ağ uzak bağımlılıkları öğrenemez.

Bu tek ağa özgü bir tesadüf değil: aynı hesabı on farklı rastgele ağda yaptığımızda 50. adımdaki etkinin hepsinde 10⁻⁸’in altında olduğunu görüyoruz. Tekrarlı ağırlıkların kazancını g = 3’e çıkarırsan etki ilk adımlarda patlıyor (14. adımda yaklaşık 240); ama bu geçici: tanh yüksek girdilerde doyup türevi sıfıra yaklaştığı için etki 20. adımda 0,05’e, 50. adımda yine 10⁻¹⁰ mertebesine iniyor. Bu, bu ağdaki gözlemdir; eğitilmiş ağlarda patlama kalıcı olabilir ve gradyan kırpma gibi önlemler bu yüzden vardır.

03Kapılar: hafızayı korumak#

Çözüm, durumu her adımda tamamen yeniden yazmamaktır. Hochreiter ve Schmidhuber’in LSTM’i bunu, hafıza hücresinde hatanın sabit akabildiği “sabit hata atlıkarıncası” birimleriyle ve bu akışı açıp kapayan çarpımsal kapılarla yapar. Yazarlar, bu sayede 1000’den fazla ayrık zaman adımlık gecikmeleri aşabildiklerini bildirdi. Long Short-Term Memory ↗

Demodaki kapılı hücre bu fikrin en basit biçimidir: h_yeni = keep · h_eski + (1 − keep) · tanh(…). keep, eski durumdan ne kadarının korunacağını söyler. Pillerden keep = 0,9’u seç: Ağ 7’de 50. adımdaki etki 3×10⁻¹⁰ yerine 0,44; 0,99’da 2,0. Etki, düz RNN’in tersine, 50 adımda bile silinmiyor. Yarı yarıya koruyan (keep = 0,5) kapıda etkinin %1’in altına inmesi 14 yerine 28 adım sürüyor.

Ama bedava değil. Kapı ne kadar kapalıysa hücre yeni girdiyi o kadar zor içine alır: keep = 0,99’da yeni girdinin durumdaki payı yalnızca %1. Hafıza uzar, ama hücre yavaş tepki verir. Gerçek LSTM’deki kapılar sabit değildir: öğrenilir ve her adımda girdiye göre değişir; böylece ağ, gerektiğinde tutar, gerektiğinde yazar. Bu demo bu esnekliği göstermez, yalnızca temel mekanizmayı gösterir: korumak, çarpımı birim matrise yaklaştırır.

04Dar boğaz ve doğrudan yol#

Kapılarla bile hafıza tek bir sabit boyutlu durumdan geçer. Çeviri gibi görevlerde kaynak cümleyi tek bir sabit uzunluklu vektöre sıkıştıran encoder–decoder modelleri için Bahdanau, Cho ve Bengio, sabit uzunluklu vektör kullanmanın bir darboğaz olduğunu savundu ve çözücünün her kelimeyi üretirken kaynak cümlenin ilgili kısımlarını “yumuşak biçimde aramasını” önerdi: attention’ın ilk biçimlerinden biri. Neural Machine Translation by Jointly Learning to Align and Translate ↗

Vaswani ve arkadaşları bir adım daha attı: Transformer yalnızca dikkate dayanır, tekrarı ve evrişimi tamamen bırakır; yazarlar modellerin daha paralel hesaplanabildiğini ve eğitiminin belirgin biçimde daha kısa sürdüğünü bildirdi. Attention Is All You Need ↗ İki farkı aşağıda sayarak gör: bilgi yolunun uzunluğu ve hesabın sırası.

02

İlk token son tokena kaç adımda ulaşır?

Temsili görselleştirme

Dizinin uzunluğunu değiştir ve iki yoldaki adım sayısını karşılaştır.

Attention: son token her tokena doğrudan bakarRNN: bilgi her adımdan geçerek taşınırilkson
İLK → SON TOKENRNN: 7 ardışık adım · Attention: 1 doğrudan bağlantı
EĞİTİMDE ZAMAN ADIMLARIRNN: 8 adım, her biri öncekini bekler · Attention: tüm konumlar aynı katmanda birlikte
Bağlantılar sayılarak çizilir; bir hız ölçümü değildir. Düz bir RNN’de bilgi, ardışık her adımdan geçerek taşınır. Attention’da son token, önceki her tokena tek adımda doğrudan bakar (nedensel maskeyle).

RNN’de ilk token ile son token arasında dizi uzunluğundan bir eksik ardışık adım vardır ve eğitimde her adım bir öncekini bekler. Attention’da son token ilk tokena tek adımda bakar; tüm konumlar aynı katmanda birlikte hesaplanır. Bunun bedeli, her token çiftinin birbirine bakması (maliyet uzunlukla karesel artar); Hız ve bellek yazısı bu bedeli ayrıntılı ele alır.

05Hikâye bitmedi#

Tekrarlı fikir ortadan kalkmadı. Sabit boyutlu bir durumu adım adım güncelleyen modeller, uzun dizilerde doğrusal maliyet vaat ettikleri için yeniden araştırılıyor; örneğin Mamba durumu girdiye göre seçici günceller. O notta da göreceğin gibi bunların neyi vaat edip neyi etmediği koşullara bağlıdır. Bugün adı bilinen büyük dil modellerinin çoğu Transformer tabanlıdır, ama bu yazıdaki iki ders hâlâ geçerli: hafıza bir yoldur ve uzun yol, gradyanı ve bilgiyi söndürür.

Şimdi bu fikirlerin yerini alan mimariye geç: Transformer Mimarisi Nasıl Çalışır?

KENDİNİ SINA

Bu yazıyı bitirdiğinde:

  • Tekrarlı bir ağın aynı hücreyi her adımda yeniden kullanarak hafıza tuttuğunu anlatabilirsin.
  • Zamanda geri yayılımda gradyanın neden kaybolabildiğini ve kapıların bunu nasıl hafiflettiğini açıklayabilirsin.
  • Dikkat mekanizmasının tekrarlı ağlara göre iki farkını (doğrudan yol, paralel hesap) söyleyebilirsin.

Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.

İlerleme yalnızca bu tarayıcıda saklanır.
BAĞLANTILI KAVRAMLAR

Bir fikri diğerine bağla.

Rotanı gör: sıradaki adım ne? Bütün dersler