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

Makine Öğrenmesi · Bölüm 1

Doğrusal regresyon ve gradyan inişi

Motorun PWM–hız çizgisini adım adım öğrenmek

Veri. Bir robot tekerleğine 40 kez farklı PWM değeri verdik ve tekerleğin hızını ölçtük. Robotun belli bir hızda gitmesi için hangi PWM'i vermesi gerektiğini bilmek istiyoruz: ölçümlerden geçen en iyi doğruyu arıyoruz.

ölçümler40 ölçüm · öğrenme oranı 0,10
1 / 70
regresyon.pypython
  1. import numpy as np
  2. from motor import pwm, speed # 40 ölçüm: PWM, cm/s
  3. x = (pwm - pwm.mean()) / pwm.std() # ölçekle
  4. w, b, lr = 0.0, 0.0, 0.1 # yatay çizgiyle başla
  5. for epoch in range(60):
  6. pred = w * x + b # tahmin
  7. err = pred - speed # hata
  8. loss = (err ** 2).mean() # ortalama kare hata
  9. w -= lr * 2 * (err * x).mean() # eğime karşı adım
  10. b -= lr * 2 * err.mean()
  11. print(w / pwm.std(), b - w * pwm.mean() / pwm.std()) # cm/s başına PWM, kesişim

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. PWM'i ölçekleriz (ortalaması 0, standart sapması 1): adımlar her yönde aynı büyüklükte olur.
  2. Çizgi yatay başlar (w = 0, b = 0). Her dönemde tahmin, hata ve ortalama kare hata (kayıp) hesaplanır.
  3. Kaybın w ve b'ye göre türevi, kaybın hangi yönde arttığını söyler; ters yönde, öğrenme oranı kadar adım atılır.
  4. Öğrenme oranını 1'e yaklaştır: çizgi salınır. 1'i geçince ıraksar ve kayıp patlar.

Neden önemli

Gradyan inişi, bugünkü bütün sinir ağlarını eğiten yöntemin ta kendisidir: milyarlarca ağırlık için de aynı iki satır çalışır. Robotikte sensör ve motor kalibrasyonu, ileri besleme (feedforward) terimi ve basit tahmin modelleri hep bu doğruyla başlar.

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ç