Robot öğrenmeyi geliştirmenin yolu; araştırmacıların simülasyonu maksimum kullanmalarından geçer.
NVIDIA araştırmacıları; önceki yöntemlerden farklı olarak, bu adımın tamamen bağımsız bir şekilde gerçekleşmesini sağladılar. Simülasyon parametrelerinin gerçeğe uygun hale getirilmesi ve ince ayar yapmak için (bir araştırmacı gerektirmeyen) yeni bir yaklaşım kullanarak; bunları simülasyonla eğiterek faydalı işler yapmaları için robotlara öğretiyorlar.
Gerçek, standart robotlar; pahalıdır, titizdir ve onlara yararlı bir şeyler yapmalarını öğretmek çok fazla zaman ve çaba gerektirir. Robotu öğrenmeyi biraz daha eğlenceli hale getirmenin bir yolu; robotları, kendilerine öğretmek için programlamaktır, ki bunlar döngüde bir insan eğitmenine sahip olmak kadar hızlı değildir. Ancak daha verimli olabilir. Google, bu süreci paralel olarak bir çok robot çalıştırarak endüstrileştirdi, bu da olayları büyük ölçüde hızlandırdı. Ancak ne yazık ki robotlar; fiziksel silahlarla sınırlandırıldı.
Sanal ortamlarda çalışan ve sanal işlem senaryolarını test edecek kadar çok sanal robotu, işlem yapma gücüne sahip olduğunda kullanabiliriz. Daha sonra hızlı ileri düğmesine basarak gerçek zamanlıdan daha hızlı öğrenmelerini sağlarız. Hiçbir simülasyon mükemmel olmadığından, gerçekte faydalı ve güvenilir olmasını sağlamak için dikkatli bir şekilde ince ayar yapılması gerekir ve bu, insanların sürece geri dönmesi (katılması) anlamına gelir.
Şirketin Seattle’daki yeni robotik laboratuvarında çalışan bir NVIDIA araştırma ekibi; insana bağımlı olan bu son aşamayı ortadan kaldırmak için çalışmalar yaptı. Araştırmacılar; hala simülasyonla gerçeğe uyması gereken ve tamamen otonom olan bir ayarlama olduğunu söylüyorlar. Bu da simülasyon ile gerçeklik arasındaki boşluğun herhangi bir insan katılımı olmadan kapatılabileceği anlamına geliyor.
UC Berkeley’den Pieter Abbeel, bu “sim-to-real” sürecini şöyle özetliyor:
Sim-to-real araştırmacıları; hala gerçek robot üzerinde çalışmakta ve transfer olduğunu göstermektedir. Bu yüzden çalışmada çok fazla yineleme var. Sim’de antrenman yapmak gibi değil; gerçek robot üzerinde test yapılıyor ve işlem bitiyor. Sim olarak eğitiliyor, gerçek robot üzerinde test ediliyor ve sonuçta genelleştirilemediği fark ediliyor.
Araştırmacılar; yaklaşımı yeniden gözden geçiriyor ve yeni bir sim’de eğitiyor ve bu kez gerçek robot üzerinde genelleştirileceğini öngörüyor. Üstelik, bu süreç aslında araştırmacıların umduğu, bu “genelleme davranışını” elde etmeden önce uzun bir süre devam edebilir. Bu süreçte genellemenin işe yarayıp yaramadığını görmek için sürekli olarak gerçek bir robot üzerinde testler yapıyorlar.
Deneylerinde, NVIDIA araştırmacıları; bir robotu iki görevi yerine getirmek ve eğitmek için cUDNN ile hızlandırılmış TensorFlow derin öğrenme çerçevesine sahip 64 NVIDIA Tesla V100 GPU kümesini kullandılar: Bir çubuğun bir deliğe yerleştirilmesi ve bir çekmecenin açılması gibi… Simülasyon için, ekip NVIDIA FleX fizik motorunu kullandı.
Gerçek robot testinin tamamen kaldırılıp, doğrudan simülasyondan konuşlandırmaya geçilse; şaşrıtıcı sonuçlar doğururdu. Araştırmacılar bunu yapamaz. Çünkü bunun çalışması için; hiçbir simülasyon gerçek dünyanın yeterince iyi bir temsili değildir. Bu gerçeklik farkıyla baş etmenin yolu, simülasyonu belirli şekillerde (“etki alanı randomizasyonu” olarak bilinir) sadece “karıştırmak”, gerçeğin belirsizliğiyle ve ara sıra kaosuyla başa çıkabilmeyi sağlayacak kadar esnek bir şekilde inşa etmektir.
Bu, deneyimli bir insan gerektiren simülasyon parametrelerini karıştırmak (ve ideal olarak optimize etmek) sürecidir ve ne yaptığı bilinse bile, sıkıcı ve zaman alıcı olabilir. Temel olarak, simülasyonu bir süreliğine çalıştırır; öğrenilen görev gerçek bir robot üzerinde deneylenir, tam olarak nasıl başarısız olduğunu izlenir ve daha sonra içeri girip olayları daha da yaklaştıracağı düşünülen simülasyon parametreleri değiştirilir.

Sistem simülasyonda çalışıyor, gerçek bir robot üzerinde testler yapıyor, (kullanıma hazır bir 3D sensörle) testin başarısız olduğunu izliyor. Daha sonra “…bu başarısız gerçek yörünge, özel benzetilmiş yörüngeye çok benziyordu. Bu benzetilmiş senaryo gerçeğe daha yakın olmalı, hadi daha fazlasını yapalım… ” deyip, devamını getiriyor. Bunun birkaç yinelemesinden sonra, sistem; gerçek dünyada gözlemlediklerine çok daha yakın olan simülasyon parametrelerini belirleyebilir ve bu sayede başarıya ulaşabilir.
Buradaki genel amaç, algoritmanın gerçek bir robot kullanılarak, simülasyonda koşmakla gerçek dünyada koşmak arasında ayrım yapamamasını sağlamaktır. NVIDIA’nın bu amaca, döngüdeki bir insan olmadan ulaşma yaklaşımı; gerçek bir robot üzerinde yapılan testlerden ve başarısızlıktan kaynaklanan negatif verileri kullanmak, simülasyon parametrelerini incelenmiş gerçekliğe yaklaştırmak için simülasyona geri beslemekten kaynaklamaktadır.
NVIDIA araştırmacıları, başlangıçta bir parametre aralığı belirlendiğinde, sürecin geri kalanının baştan sona kadar tamamen uygulanacağını söylüyor. Robotun çılgına dönmesi ve e-stop edilmesi gerektiğinde yakınlarında bir insan müdahale ediyor, ancak aksi halde bu durum tamamen yanıyor olabilir. Araştırmacılara göre, sistemin genel performansı; bir insanın manuel olarak ayarlamasıyla elde edilecek kadar iyidir. Sadece o kadar hızlı olmayacaktır; çünkü sistem; özel bir uzman insan beynine sahip değildir, ancak sonuç yaklaşık olarak aynı olmalıdır.
Tüm bunlar; ölçeklendirmek, fiziksel olarak mümkün olabileceğinden iş açısından, daha fazla robot yetiştirmek için simülasyondan yararlanmak ve sürekli olarak insanlara döngü içinde olmaktan vazgeçmek zorunda bırakılacağı ile ilgilidir.