Macademia'nın robotik ve mühendislik programı · ücretsiz seviye tespiti ve kişisel öğrenme yolu

Makine Öğrenmesi · Bölüm 9

Küçük bir sinir ağı

Gizli katman ve geri yayılım: doğrunun çizemediği sınır

Veri. Robot arenada 200 konumda durdu ve her seferinde pistte mi dışında mı olduğunu kaydetti. Pist kıvrımlı: iki iç içe hilal. Tek bir doğru (perceptron) bunu ayıramaz; gizli bir katman gerekir.

200 konum: pistte / dışında2 → 8 → 1 nöron
1 / 49
sinir_agi.pypython
  1. import numpy as np
  2. from pist import X, y # 200 konum, y = 1 pistte
  3. rng, lr, H = np.random.default_rng(0), 0.5, 8 # H gizli nöron
  4. W1, b1 = rng.normal(size=(2, H)), np.zeros(H)
  5. W2, b2 = rng.normal(size=H), 0.0
  6. for step in range(3001):
  7. h = np.tanh(X @ W1 + b1) # gizli katman
  8. p = 1 / (1 + np.exp(-(h @ W2 + b2))) # pistte olma olasılığı
  9. loss = -(y * np.log(p) + (1 - y) * np.log(1 - p)).mean() # çapraz entropi
  10. g = (p - y) / len(X) # kaybın çıkışa göre türevi
  11. gh = np.outer(g, W2) * (1 - h ** 2) # geri yayılım: gizli katmana
  12. W2 -= lr * h.T @ g; b2 -= lr * g.sum()
  13. W1 -= lr * X.T @ gh; b1 -= lr * gh.sum(0)

Sahnedeki her sayı, aynı algoritmanın tarayıcında yapılan gerçek çalıştırmasından gelir (sabit tohum, her seferinde aynı sonuç). Python kodunu kendi bilgisayarında çalıştırırsan rastgele başlangıçlar farklı olacağı için sayılar biraz değişebilir.

Nasıl çalışır

  1. Gizli katmandaki her nöron girdinin bir doğrusal birleşimini tanh ile büker. Çıkış nöronu bu bükülmüş özellikleri birleştirip bir olasılık verir.
  2. Kayıp (çapraz entropi), yanlış ve emin tahminleri ağır cezalandırır.
  3. Geri yayılım, kaybın her ağırlığa göre türevini zincir kuralıyla çıkıştan girişe doğru hesaplar. Her ağırlık türevin tersine küçük bir adım atar.
  4. Sınır her adımda biraz daha kıvrılır. Gizli nöron sayısını 2’ye indir: sınır yeterince bükülemez.

Neden önemli

Bu, derin öğrenmenin en küçük hâlidir. Görüntüden nesne tanıyan ağlar da, robot kolunu yöneten politikalar da, dil modelleri de aynı üç şeyi yapar: ileri hesap, kayıp, geri yayılım. Fark yalnız katman ve ağırlık sayısındadır.

ESOF 323, 11. hafta: robotlarda derin öğrenme →
Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • TestlerimMini testler ve puanlarSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç