01Bir tahmin, bir hedef, bir fark#
Önceki yazıda bir modelin, verideki örüntüye uyacak parametreler aradığını gördün. Peki bu arama tam olarak nasıl ilerliyor? Model rastgele denemiyor; her adımda hatasının yönünü ölçüp o yönün tersine küçük bir düzeltme yapıyor.
Bu hatayı sayıya döken şeye kayıp fonksiyonu denir. Basit bir doğru modelinde yaygın bir seçim, ortalama karesel hatadır (MSE): her örnek için tahmin ile gerçek değer arasındaki farkın karesi alınır, sonra bu karelerin ortalaması hesaplanır. Fark kareye yükseldiği için büyük hatalar, küçük hatalardan orantısız şekilde daha çok cezalandırılır.
02Gradyan inişi: hangi yöne, ne kadar?#
Kaybı azaltacak yönü bulmak için gradyan kullanılır: kaybın her parametreye göre türevi. Gradyan, o parametreyi artırmanın kaybı artıracağını mı azaltacağını mı söyler. Gradyan inişi, her parametreyi gradyanın tersi yönünde, küçük bir adımla güncelleme kuralıdır. Adımın büyüklüğünü öğrenme oranı belirler.
Aşağıdaki deney, dört noktaya bir doğru oturtmaya çalışıyor. Bu, ilk yazıda gördüğün aynı demo; burada farklı öğrenme oranlarının güncellemeyi nasıl değiştirdiğine daha yakından bakıyoruz.
Bir modelin öğrenmesini izle
ŷ = 0.200x + 0.200Doğru, örneklerin altında kalıyor. Bir eğitim adımı uygula: algoritma, hatayı azaltacak yönde eğimi ve sabiti güncellesin.
Hesabı ve veriyi incele
Örnekler (x, y): (1, 1.2), (2, 1.8), (3, 3.1), (4, 3.9). Model ŷ = ax + b. Kayıp L = Σ(ŷ − y)² / 4. Her adımda a ← a − η · ∂L/∂a ve b ← b − η · ∂L/∂b uygulanır. η, seçtiğin öğrenme oranıdır. Daha düşük eğitim hatası, yeni veride başarıyı tek başına kanıtlamaz.
Öğrenme oranını 0.01’e çek ve “12 adımı izle” düğmesine bas: doğru küçük, düzenli adımlarla yaklaşır. Şimdi 0.1’e çek ve yeniden izle: eğim her adımda hedefi aşıyor, ileri geri salınarak yerleşiyor. İkisi de sonunda benzer bir hataya iner, ama yol çok farklı. Çok yüksek bir öğrenme oranı salınımı büyütüp sapmaya da yol açabilir; bu küçük örnekte sınır değerler bu noktaya gelmeyecek şekilde seçildi.
Hatanın hiçbir zaman tam sıfıra inmediğini de fark edebilirsin. Dört nokta kusursuz bir doğru üzerinde değil; model doğru bir biçime sahip olsa da verideki her sapmayı açıklayamaz. Daha fazla eğitim adımı, modelin temsil kapasitesinin ötesindeki hatayı silemez.
03Aynı fikir, kelime seçerken#
Bir dil modelinin hedefi bir sayı değil, sözlükteki doğru bir sonraki tokendır. Çıkışı bir sayı dizisi değil, softmax ile hesaplanan bir olasılık dağılımıdır. Bu durumda yaygın kayıp, çapraz entropidir: modelin doğru tokena verdiği olasılığın negatif logaritması.
Doğru tokena verilen olasılık yüksekse (1’e yakınsa) bu değer sıfıra yakın, düşükse büyük bir sayıdır. Model, tüm eğitim verisinde doğru tokenlara daha yüksek olasılık verecek yönde güncellenir. Mekanizma tanıdık: bir kayıp, bir gradyan, küçük bir güncelleme. Değişen şey hedefin biçimi ve parametre sayısıdır; milyarlarca parametreli bir modelde de aynı güncelleme kuralı, çok daha büyük ölçekte çalışır. Çapraz entropi kaybının tanımı ↗
Güncelleme kuralı hazır. Önce bu kuralın nasıl yanıltabileceğine bak: Model ezberliyor mu, öğreniyor mu? Ardından kuralın çok sayıda nörondan oluşan bir ağda nasıl işlediğini görelim: Sinir ağı aslında nedir?
Güncelleme kuralının daha akıllı biçimleri (momentum, Adam) ayrı bir derste: Gradyan inişi nasıl akıllanır?
Bu yazıyı bitirdiğinde:
- Bir tahminin, hedefin ve aralarındaki farkın (kayıp) nasıl ölçüldüğünü anlatabilirsin.
- Gradyan inişinin hangi yöne ve ne kadar adım attığını, öğrenme oranının rolüyle açıklayabilirsin.
- Aynı fikrin bir sonraki kelime seçilirken nasıl kullanıldığını söyleyebilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Model ezberliyor mu, öğreniyor mu?
Başlangıç · 7 dk okuma