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

Makine Öğrenmesi · Bölüm 7

Temel bileşen analizi (PCA)

İki IMU ölçümünü, bilgiyi kaybetmeden tek sayıya indirmek

Veri. Rampa çıkan robotun IMU’su 200 kez ileri ve yan ivmeyi ölçtü. Robot rampaya çapraz durduğu için iki sayı birlikte artıp azalıyor: aslında tek bir şeyi, rampanın eğimini anlatıyorlar.

ileri ve yan ivme200 ölçüm
1 / 46
pca.pypython
  1. import numpy as np
  2. from imu import A # 200 ölçüm: [ax, ay], m/s²
  3. Z = A - A.mean(0) # ortala
  4. S = Z.T @ Z / len(Z) # kovaryans matrisi
  5. vals, vecs = np.linalg.eigh(S) # özdeğerler, özvektörler
  6. pc = vecs[:, vals.argmax()] # en çok değişen yön
  7. z = Z @ pc # her ölçüm artık tek sayı
  8. print(vals.max() / vals.sum()) # korunan varyans oranı

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. Önce veri ortalanır: her ölçümden ortalama çıkarılır.
  2. Kovaryans matrisi, iki sayının birlikte nasıl değiştiğini özetler.
  3. En büyük özdeğerin özvektörü, veriyi o yöne izdüşürünce varyansın en büyük olduğu yöndür. Sahnede eksen döndükçe varyansın nasıl değiştiğini görürsün.
  4. Noktalar bu çizgiye izdüşürülür: iki sayı yerine bir sayı. Korunan varyans oranı ne kadar bilgi kaldığını söyler.

Neden önemli

Çok boyutlu sensör verisini sıkıştırmak, gürültüyü azaltmak ve görselleştirmek için ilk araçtır. Görüntü işlemede yüz tanımadan (özyüzler) nokta bulutlarında yüzey yönünü bulmaya kadar, robotikte her yerde karşına çıkar.

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ç