Yapay ZekaEğitimMatematik1 dk okuma

Bir Sinir Ağı Nasıl Öğrenir

Matris yazısında ağırlıkları eğitimin bulduğunu söyledik. Ama nasıl? Ağa doğru sayıları kimse söylemez. Ağ rastgele ağırlıklarla başlar, tahminler yapar, ne kadar yanıldığını ölçer ve ağırlıkları çok az değiştirir. Sonra bunu tekrar tekrar yapar. Bu döngüyü olabilecek en küçük ağla, yani tek bir ağırlık olan bir ağla parça parça inceleyelim.

Ağımız bir sayı alır ve onu ağırlığıyla çarpar. Tahmini budur. Beş örnekten öğrenmesini istiyoruz ve her birinin doğru cevabını biliyoruz. Ağırlığı değiştirin ve çizginin noktalardan geçmesini sağlamaya çalışın. Turuncu çizgiler her tahminin ne kadar şaştığını gösterir.

Etkileşimli
GirdiCevap
Loss: ıskaların karelerinin ortalaması68.97

Cevapları girdinin 3 katına yakın, uydurulmuş örnekler. Beyaz noktalar doğru cevaplar, çizgi ağın tahmini, turuncu çizgiler de ıskalardır.

Öğrenmek için ağın, ne kadar yanıldığını söyleyen tek bir sayıya ihtiyacı vardır. Bu sayıya loss denir. Burada her ıskanın karesini alıp sonuçların ortalamasını alıyoruz. Kare almak, çizginin üstündeki ve altındaki ıskaların aynı şekilde sayılmasını, büyük ıskaların da çok daha fazla sayılmasını sağlar. Loss ne kadar düşükse ağırlık o kadar iyidir. Bu, loss ölçmenin yaygın yollarından biridir; dil modelleri ise doğru sonraki tokena ne kadar olasılık verdiklerine bakan farklı bir loss kullanır.

Siz iyi bir ağırlığı resme bakarak buldunuz. Ağ bunu yapamaz: Yalnızca o anki ağırlığındaki loss'u bilir. Ama bir şey daha hesaplayabilir: eğim, yani ağırlık biraz büyüdüğünde loss'un artıp artmadığı. Eğim negatifse daha büyük bir ağırlık daha düşük bir loss demektir. Pozitifse daha küçük bir ağırlık. Böylece ağ yokuş aşağı küçük bir adım atar. Adım'a basın.

Etkileşimli
AğırlıkLoss
Ağırlık
0.50
Loss
68.97
Eğim
−55.1
Eğim −55.1: loss sağa doğru azalıyor, bu yüzden ağırlık büyür (+1.65).

Her adım ağırlığı −0.03 × eğim kadar değiştirir. Turuncu eğri her olası ağırlık için loss'u gösterir; ağın kendisi bu eğriyi hiç görmez, yalnızca bulunduğu yerdeki loss'u ve eğimi bilir.

Her adım yokuş aşağı gider ve eğri dibe yaklaşıp düzleştikçe adımlar küçülür. Buna gradient descent denir. Gradient, tek bir ağırlık yerine çok sayıda ağırlık olduğunda eğimin aldığı addır. Bugünkü sinir ağlarının neredeyse hepsi bu fikrin farklı biçimleriyle eğitilir.

Bir adım ne kadar büyük olmalı? Her adım, eğimin öğrenme oranı denen küçük bir sayıyla çarpımıdır. Birini seçin ve Çalıştır'a basın.

Etkileşimli
Öğrenme oranı
AğırlıkLoss
Aynı başlangıçtan 20 adım atmak için Çalıştır'a basın.

Her adım ağırlığı −öğrenme oranı × eğim kadar değiştirir. Bütün denemeler 0.5 ağırlığından başlar. En iyi öğrenme oranı probleme göre değişir; bu değerler yalnızca bu örneğe uyar.

Çok küçükse eğitim bitmek bilmez. Çok büyükse ağırlık dibin üstünden bir o yana bir bu yana atlar. Aşırı büyükse her atlama bir öncekinden daha yükseğe düşer ve sonunda sayılar patlar. Öğrenme oranını seçmek, bir ağı eğitirken verilen en önemli kararlardan biridir.

Gerçek bir ağ aynı şeyi milyarlarca ağırlıkla aynı anda yapar. Her ağırlığın kendi eğimine ihtiyacı vardır: Yalnızca o ağırlık biraz değişseydi loss'un nasıl değişeceği. Backpropagation adlı bir yöntem bütün bu eğimleri ağın içinden geriye doğru tek bir geçişte hesaplar, yine çoğunlukla matris çarpımlarıyla. Sonra her ağırlık kendi küçük adımını atar.

Gerçek eğitim her adımda bütün örneklere de bakmaz. Örneklerden küçük bir grup alır, loss'u ve eğimleri bu grup üzerinde ölçer, bir adım atar ve sonraki gruba geçer. Büyük bir dil modelini eğitmek, bu döngüyü devasa miktarda metin üzerinde yüz binlerce kez ya da daha fazla tekrarlamak demektir.

Yani bir sinir ağı için öğrenmek bu döngüdür: tahmin et, tahminin ne kadar yanlış olduğunu ölç, her ağırlığı yokuş aşağı biraz it, tekrarla. Ağın sonunda bildiği her şey, ağırlıklarının nereye oturduğunda saklıdır.

Yaygın bir yanılgı, amacın olabilecek en düşük loss olduğudur. Bir ağ eğitim örneklerini rastgele gürültüleriyle birlikte fazla iyi öğrenebilir ve sonra hiç görmediği örneklerde daha kötü sonuç verebilir. Buna overfitting denir; ağların eğitimin dışında tutulmuş örneklerle test edilmesinin nedeni de budur.


Bu içerik size yardımcı olduysa bana bir kahve ısmarlayabilirsiniz.
İlgili yazıYapay Zeka Neden Çoğunlukla Matris Çarpımıdır
İlgili yazıSeed ve Görüntü Düzenleme

yapay zeka, yazılım ve tasarım üzerine etkileşimli yazı ve kurslardan haberdar olmak için bültene katılabilirsiniz. Ayda en fazla birkaç e-posta alırsınız.

800’den fazla meraklı okura sen de katıl.


Destekçiler arasına katılın