Unity ml-agent kullanarak derin takviye öğrenme

Bu makale, AI Araştırma Enstitüsü tarafından derlenen, orijinal başlığı olan teknik bir blogdur:

Unity ml-agent kullanarak Derin Güçlendirmeli Öğrenme

Yazar | João Ramos

Tercüme | Gece Boyunca Düzenleme | Wang Liyu

Orijinal bağlantı:

https://towardsdatascience.com/deep-reinforcement-learning-using-unity-ml-agents-8af8d407dd5a

Herkese merhaba !

Son zamanlarda, iki meslektaşım Pedro Quintas ve Pedro Caldera, Unity'nin ml-ajanlarını kullanarak bazı deneyler yaptılar. Bunun harika bir an olduğunu düşünüyorum. Topluluk sonuçlarımızı paylaşır ve pekiştirmeli öğrenme bilginizi nasıl genişleteceğinizi gösterir.

Unity ml-ajanlarının ne olduğunu bilmiyorsanız, size kısa bir giriş yapmama izin verin. Unity ml-agent'lar "aracıları eğitmek için oyunları ve simülasyon ortamlarını kullanan açık kaynaklı bir Unity eklentisidir." Bence bu, derin öğrenmeyi ve pekiştirmeli öğrenmeyi öğrenmeye başlamak için iyi bir çerçeve çünkü terminalde sadece rakamları ve harfleri görmek yerine neler olduğunu görebilir.

Küçük projemizi göstermeye başlamadan önce, çerçevenin oluşturduğu bazı sahneleri göstermeme izin verin.

Artık bu aracın işlevini ve görünümünü anladığınıza göre, bu projeyi tartışalım!

Unity ml-agent'lar tarafından oluşturulan bir ajan kullandık. Temelde bir örümcek ama sadece dört bacağı var. Sonra bu küçük "örümceğin" hareket etmesi için bir mobil platform oluşturduk.

Bu sadece Unity'nin inşası, hadi pekiştirmeli öğrenmeden bahsedelim! Başlangıçta, her zaman olduğu gibi, aracı sadece platformdaki konumunu ve yönünü bilir. Amacımız iki örümceğin birbirleriyle savaşmasını sağlamak olduğu için (onlara ne yapacaklarını söylemeden), onlara öğretmeye çalışmalıdır. Şu anda, pekiştirmeli öğrenme devreye giriyor. Bu makaleyi okurken pekiştirmeli öğrenmenin arkasındaki temel teoriyi bildiğinizi varsayıyorum. Acemiyseniz, işte bir başlangıç kılavuzu:

https://skymind.ai/wiki/deep-reinforcement-learning

Yani, herhangi bir sıradan "aptal ajan" gibi, onu da "öğretmeliyiz". Temsilcilerimize iyi davranışları olduğunda iyi, kötü davranışları olduğunda kötü ödüller vererek öğretiriz. Denemeler ve yanılmalardan sonra, ajanlar nihayet ayakta durmayı ve yürümeyi öğrendi! Temel olarak, vücutları yere her dokunduğunda onlara kötü ödüller veriyoruz. Çünkü vücutları yerde ise dört bacağı yerde değil veya bacakları yeterince kuvvet üretmiyor demektir. (Ayağa kalkmalılar). Kötü ödüller vererek onlara bu davranışların kötü olduğunu ve onlardan kaçınmaları gerektiğini söylüyoruz.

Şimdiye kadar neler yaptığımızı özetleyelim:

  • -Ml-agent kullanarak bir Unity ortamı oluşturduk.

  • - Örümceğimize ayağa kalkmayı, ayaklarını dengelemeyi öğretiyoruz.

Bir sonraki adım onlara dövüşmeyi öğretmek! Örümceğin davranışını değiştirip savaşabilmeleri için ödüllerini değiştirmeliyiz. Bu nedenle örümceklerden biri platformdan ayrılırsa veya yerdeki ceset tarafından dokunulursa çok kötü bir ödül alacaktır.

Ayrıca, yapmalarını istediğimiz şeyi yaparlarsa ve biz onlara iyi bir ödül vermezsek, o davranışları tekrarlamaya devam etmezler. Yani bir örümcek başka bir örümceğe baktığı zaman onlara iyi bir ödül veriyoruz ve örümcek diğer örümceğin yönünde hareket ettiğinde onlara daha iyi bir ödül veriyoruz. Bu, iki örümceğin diğer örümceğin yönünde hareket etmesine neden olur ve bir noktada bir örümcek diğer örümceği platformdan atar. (Bu, amacımı kanıtlamak için sadece basit bir örnek)

Ayrıca, kazanmak için yumruklarıyla yerde birbirlerini dövmeyi öğrendiler. Böylece aynı anda "güreşmeye" başladılar. Bu çok ilginç bir gözlem.

Ek olarak, daha zor bir ortam oluşturmak için temsilcimizi mobil bir platformda da test ettik:

Sonuçlarımı çoğaltmak isterseniz, işte gözlemlenebilir vektörüm ve ödül işlevim hakkında daha fazla bilgi:

Gözlenebilir vektör

Temsilcinin kendisi hakkındaki bilgileri:

  • - temsilcinin eklemleri hakkındaki bilgileri

  • Ajanın platformdaki yukarı ve ileri vektörleri

  • Aracının platformdaki konumu

Rakip hakkında bilgiler:

  • -Rakibin vücudunun yukarı ve ileri vektörleri

  • -Rakibin platformdaki konumu

Ödül işlevi

Temsilci ayağa kalkamadığı için cezalandırılmalı ve rakibe düştüğü için ödüllendirilmelidir.Bu, menajerin temel amacıdır.

Temsilci platformdan düşerse cezalandırılmalı, ancak ödüllendirilmemelidir. Ajanların öğrendiği dövüş yönteminin, rakibi biraz daha erken düşürmek için platformu belirli bir şekilde yenmeyi içermediğini umuyoruz.

Temsilciler rakiplerini ittikleri için ödüllendirilmeli ve geri çekildikleri veya kendilerini itilmelerine izin verdikleri için cezalandırılmalıdır. Bu, olumlu bir dövüş stilini ödüllendirir ve kaçış dahil olmak üzere daha fazla kaçış stilini cezalandırır.

Önceki puanlara dayanarak aşağıdaki ödülleri oluşturduk:

Temsilci sahadaysa: -1.0 puan

Rakip yerdeyse: 1.0 puan.

Temsilci platformda değilse: -1.0 puan

0,003 * (Normalleştirilmiş hız * (Rakip pozisyonu-Temsilci pozisyonu)) + 0,001 * (Normalleştirilmiş ileri vektör * (Rakip pozisyonu-Temsilci pozisyonu))

Son olarak, bir adım daha ileri giderek insansı robotları aracı olarak kullanmaya çalışıyoruz. Zorluk katlanarak artıyor çünkü örümceklerin 8 eklemi ve insansı robotların 12 eklemi var. Bu, toplam olası birleşik eylem sayısını artırır. Sonuçta harika sonuçlar alamadık ama bu ilginç görünüyor:

Kısacası, Unity ml-agent'lar bazı ilginç şeyleri çok kolay bir şekilde oluşturmanıza izin verir. Bu konuyu öğrenmeye başlamanın iyi bir yolu olduğunu düşünüyorum. Lütfen sorularınızı ve sonuçlarınızı benimle paylaşmaktan çekinmeyin! Lei Feng Wang Lei Feng Wang Lei Feng Wang

Bu doğrultuda bir sonraki proje olarak drone simülasyonu ve otonom sürüş için bir ortam yaratmak istiyorum. Herhangi bir fikriniz varsa, lütfen benimle iletişime geçin!

Teşekkür ederim!

Bu makalenin ilgili bağlantılarını ve referanslarını görüntülemeye devam etmek ister misiniz?

Erişmek için [Derin takviye öğrenimi için Unity ml-aracısını kullan] 'a tıklayın!

Bugünün kurs önerisi: Takviye öğrenmenin derinlemesine anlaşılması

Önemli Noktalar

Takviye öğrenme sistemini, algoritma ilkelerini + matematiksel türetmeyi + gerçek kod örneklerini sistematik olarak açıklayın

En iyi konferans makalesinin yazarı, zenginleştirilmiş proje deneyimini açıkladı

Size öğrenmeyi nasıl güçlendireceğinizi öğretin

Her Çarşamba düzenli olarak güncellenen yaklaşık 30 ders saati olmak üzere toplam 10 bölüm

Kurs bağlantısı: https://ai.yanxishe.com/page/domesticCourse/73

Soruşturma | Hasar görmüş duvar resimleri, kitapların az kullanımı, metro kültür alanı "makyaj" olacak
önceki
Shanghai Putuo Polisi: Wang Moumou ve Zhou Moumou, çocuk tacizine uğradığı şüphesiyle gözaltına alındı
Sonraki
Bu tür yiyecekler buzdolabına konulamaz! Tatlım da birçok insan bilmiyor
SPORTALM Kitzbuehel markası ilk kez Berlin İlkbahar ve Yaz Moda Haftası'nda
Sebat pozitif enerji olarak görülmez, sadece gülümse ve sebat et.
Microsoft Li Di: Ressam Xiaobing neden gelişmesi en zor zaman?
Makine öğrenimi yukarı akıştan gelen ayrımcı davranışları nasıl engeller? Stanford AI Lab'ın en son sonuçları cevabı veriyor
Xiaomi telefonlarının kendini kurtarması
Zhenjiuku ve JD Logistics, lojistik tüketimde yeni bir sayfa açarak, zincir üzerinde coğrafi gösterge veritabanı oluşturarak ortaklaşa oluşturuyor
"Yoksulluğu hafifletme hayalini" gerçekleştirmeye yardımcı olmak için "zengin bir ağaç" diken Shijing Street, Outian köyü kelebeğinin yeniden doğmasına yardımcı oluyor
ABD Ticaret Bakanlığı, Çinin süper hesaplamasını engellemek için Sugon ve Haiguangı kontrol listesine alıyor.
Geçtiğimiz üç gün içinde Pekin tek seferde 22 otobüs hattı açacak
Dikkat anne: Bebeğinizi yazın getirirseniz, bu 4 çeşit meyveden daha az yiyin, böylece çocuğunuza zarar vereceğini bilemezsiniz.
13. Yaz Davos Forumu kapandı
To Top