Makine Öğrenmesi · Bölüm 2
Aşırı öğrenme ve doğrulama
Sensör eğrisine uyan en iyi model, en karmaşık olanı değildir
Veri. Sharp IR mesafe sensörünün çıkış gerilimi uzaklık arttıkça eğri biçiminde düşer. 15 ölçümle bir kalibrasyon eğrisi uyduracağız, sonra eğrinin hiç görmediği 30 ölçümle sınayacağız.
import numpy as npfrom sharp import d, v, d_val, v_val # 15 eğitim, 30 doğrulama ölçümüx, x_val = (d - 45) / 35, (d_val - 45) / 35 # [-1, 1] aralığına ölçeklefor deg in range(1, 13):c = np.polyfit(x, v, deg) # en küçük karelertrain = ((np.polyval(c, x) - v) ** 2).mean() # eğitim hatasıval = ((np.polyval(c, x_val) - v_val) ** 2).mean() # doğrulama hatasıprint(deg, train, val)
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
- Her derece için polinom en küçük kareler yöntemiyle eğitim noktalarına uydurulur.
- Eğitim hatası derece arttıkça hep azalır: eğri her noktaya biraz daha yaklaşır.
- Doğrulama hatası önce düşer, sonra yükselir: eğri gürültüyü de ezberlemeye başlar ve noktaların arasında savrulur.
- Seçilen model, doğrulama hatası en küçük olandır; eğitim hatasına bakarak seçmek her zaman en karmaşık modeli verir.
Neden önemli
Her makine öğrenmesi modeli bu dengeyle yaşar: az karmaşık olan eksik öğrenir, çok karmaşık olan ezberler. Eğitim ve doğrulama verisini ayırmak, çapraz doğrulama ve erken durdurma bu yüzden vardır. Robotta ezberlenmiş bir kalibrasyon, laboratuvarda mükemmel, sahada tehlikelidir.
ESOF 323, 11. hafta: robotlarda derin öğrenme →