Makine Öğrenmesi
Attention nedir?
Attention, modelin girdinin önemli kısımlarına odaklanmasını sağlar.
Attention nedir?
Dikkat (attention), bir dizinin her elemanının diğer elemanlardan ne kadar bilgi alacağını öğrenen mekanizmadır. "Banka" kelimesinin anlamı cümlede "nehir" mi "para" mı geçtiğine bağlıdır; attention bu ilişkiyi ağırlıklarla kurar.
# her kelime için: diğer kelimelere dikkat ağırlıkları (toplamı 1)
# yeni temsil = ağırlıklı ortalama(diğer kelimelerin değerleri)
agirlik = softmax(skorlar) # (n,)
cikis = agirlik @ degerler # (d,)
RNN'in aksine attention tüm konumlara aynı anda bakar: uzak kelimeler arasındaki bağ tek adımda kurulur ve hesap paralel yapılabilir.
Ağırlıklı ortalama
Attention'ın çekirdeği basittir: skorları softmax ile olasılığa çevir, değerlerin ağırlıklı ortalamasını al. Skorlar benzerlik ölçer; en benzer elemanlar en çok katkı verir:
degerler = np.array([[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]])
skor = np.array([2.0, 0.0, 0.0])
a = softmax(skor) # [0.787 0.107 0.107]
print(a @ degerler) # [0.893 0.213]: çoğunlukla ilk değer
Skorlar eşit olsaydı sonuç değerlerin düz ortalaması olurdu.
Uygulama İlk attention
Verilen skor için softmax ağırlıklarını hesapla ve np.round(..., 3) ile yazdır. Ardından degerler'in ağırlıklı ortalamasını np.round(..., 3) ile yazdır. Son olarak eşit skorlarla (np.zeros(3)) sonucun düz ortalama olduğunu np.allclose ile yazdır.
Örnek çözümü göster
import numpy as np
def softmax(z, eksen=-1):
e = np.exp(z - z.max(axis=eksen, keepdims=True))
return e / e.sum(axis=eksen, keepdims=True)
degerler = np.array([[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]])
skor = np.array([2.0, 0.0, 0.0])
a = softmax(skor)
print(np.round(a, 3))
print(np.round(a @ degerler, 3))
print(np.allclose(softmax(np.zeros(3)) @ degerler, degerler.mean(axis=0)))
Kendini test et
-
Attention'ın RNN'e göre temel avantajı nedir?
- Etiket gerektirmez
- Uzak konumları tek adımda ilişkilendirir ve paralel hesaplanır
- Daha az bellek kullanır
- Parametresi yoktur
Cevabı göster
Uzak konumları tek adımda ilişkilendirir ve paralel hesaplanır — RNN'de bilgi adım adım taşınır; attention doğrudan bağlantı kurar.
-
Değerlerin ağırlıklı ortalamasını al.
cikis = agirlik ____ degerler
Cevabı göster
cikis = agirlik @ degerler
-
Kavramları eşleştir.
- skor
- Benzerlik ölçüsü
- softmax
- Ağırlıklara çevirir
- değer
- Taşınan bilgi
- eşit skor
- Düz ortalama
Sıradaki ders: Self-attention