Simülasyondan gerçeğe
Kısaca
- Simülasyon ile gerçek dünya arasındaki farkın (sim2real) neden önemli olduğunu açıklamak
- Alan rastgeleleştirmenin (domain randomization) ne işe yaradığını bilmek
- Bir modeli eğitim ödülüyle değil, önemsediğin ölçümle değerlendirmek
İlk iki derste her şey bir simülasyonun içinde oldu. Simülasyon bir modeldir ve her model bir şeyleri basitleştirir. Robot, simülasyonun basitleştirdiği yerlerden faydalanmayı öğrendiyse, gerçek dünyaya çıktığında o faydayı kaybeder. Bu soruna sim2real (simülasyondan gerçeğe) farkı denir.
Kutudaki motor
open-duck-mac deneyinin üçüncü bölümü tek bir sayıyla başlıyor. Simülasyondaki motor en fazla 3,23 N·m tork üretebiliyor. Gerçek robotta kullanılan motorun kataloğunda yazan değer ise yaklaşık 1,86 N·m. Yani simülasyondaki motor, kutudan çıkan motordan yaklaşık %70 daha güçlü.
Aynı yürüyen ördek, motoru katalog değerine sınırlanmış bir simülasyonda denendiğinde:
- Aynı sürede yarı mesafeyi alabiliyor.
- Dizleri zamanın %37–39’unda katalog sınırından fazla güç istiyor.
Robot yürümeyi öğrenmişti, ama sahip olmadığı bir güce güvenerek öğrenmişti.
Çözüm denemesi: dünyayı belirsizleştirmek
Bu soruna en çok kullanılan çözüm alan rastgeleleştirme (domain randomization): Eğitim sırasında simülasyonun fiziksel değerlerini her seferinde biraz değiştirmek. Motor gücü, sürtünme, ağırlık her bölümde farklı olur. Robot tek bir dünyaya değil, bir dünyalar ailesine uyum sağlamak zorunda kalır; gerçek dünya da umarız o ailenin içindedir.
Deneyde ördek bu kez motor gücü katalog değeri civarında rastgele değişen bir simülasyonda, sıfırdan eğitildi:
- 72 milyon adımda yürüyemedi. Aynı adım sayısı ilk eğitimde yürümeye yetmişti; zorlaşan dünyada yetmedi.
- Eğitime devam edildi ve 88,8 milyon adımda yürüdü: 1,86 N·m ile 34,8 cm, eski robotun 2,5 katı.
Buraya kadar iyi bir hikâye. Asıl ders bundan sonra geliyor.
Ödül düşmedi, robot unuttu
Eğitim 170 milyon adımın ötesine sürdürüldüğünde robot yürümeyi unuttu. Ama eğitim sırasında izlenen ortalama ödül düşmedi.
Bu nasıl olabilir? Ortalama ödül, yürümenin yanında birçok küçük terimden oluşuyor: ayakta kalmak, enerji tasarrufu, yumuşak hareket. Robot yürümekten vazgeçip diğer terimlerden puan toplamaya kayabilir; toplam sayı aynı kalırken davranış tamamen değişir.
Bu, ikinci dersteki ödül hilesinin daha sinsi bir hâli. Orada robot garip bir şey yapıyordu ve hemen fark ediliyordu. Burada sayılar normal görünüyor. Fark etmenin tek yolu, ödülden bağımsız bir ölçümle robotu düzenli olarak test etmek: “5 saniyede kaç santimetre gitti?” gibi.
Bir mühendis için çıkarılacak dersler
- Eğitim ödülü bir araçtır, hedef değil. Önemsediğin şeyi (alınan mesafe, doğru cevap oranı, kullanıcının sorunu çözüldü mü) ayrı bir değerlendirmeyle ölç.
- Her ara kaydı test et. En son kayıt en iyisi olmayabilir. Bu deneyde en iyi robot eğitimin ortasındaydı.
- Simülasyonun varsayımlarını yaz. Motor gücü gibi tek bir sayı, bütün sonucu değiştirebilir. Neyi basitleştirdiğini bilmezsen neyin bozulacağını da bilemezsin.
- Sonuçlarını dürüst sınırla. Deneyi yapanlar her sonucun yanına “tek tohum, tek koşu, yalnızca simülasyon, gerçek robot yok” notunu düşüyor. Bu bir zayıflık değil; okurun sonuca ne kadar güveneceğini bilmesini sağlıyor.
Bu dersler yalnızca robotlar için değil. Bir dil modeli uygulamasında da eğitim kaybı düşerken kullanıcıya verilen cevaplar kötüleşebilir. “Yapay zekâ ürünlerini ölçmek” kursundaki değerlendirme dersleri tam olarak bunun için var.
Kendini dene
1. Simülasyonda yürüyen robot, gerçek motor sınırında neden yarı mesafe aldı?
2. Alan rastgeleleştirme ne yapar?
3. Robot yürümeyi unuttuğu hâlde ortalama ödül düşmedi. Bundan çıkan ders?
Daha derine inmek istersen