Merhaba ve Statoil'e hoş geldiniz ve haritayı başlattığımızı söylemek için.
Ve şimdi araba yarattığımız heyecan verici şeyler için vaktimiz var ve bunu elbette bir sınıfla yapıyoruz.
Sınıfın çok özellikli bazı şeyler yaratmak için çok pratik olduğunu göreceksiniz, çünkü
arabamdan bazı değişkenler bulmanın yanı sıra, tabii ki arabayı hareket ettiren fonksiyon
olan bazı işlevleri de görüyorsunuz. sağa sola veya düz gitmek.
Bu yüzden, sahip olduğumuz ortamı tanımlamak için önemli olan birkaç
değişkenimiz var, örneğin x ekseni ile aracın yönünün ekseni arasındaki açı olan açı.
en son rotasyon olan rotasyona 0 derece 20 derece veya eksi 20 derece verilir.
O halde hatırladığımız
Sonra hız vektörünün x koordinatını ve hız vektörünün y koordinatlarını elde
ederiz.
Sonra da hız x ve hız Y koordinatlarının vektörü sensörlere ve sinyallere sahip oluruz.
Yaptığımız çağrı, üç sensörlü bir sensör iki ve sensörlerden biri algılayacak sensörlere
sahip olacak. Aracın önünde bir anlam var mı diye algılayacak sensörler.
Ardından sensör 2, aracın solunda herhangi bir duyu olup olmadığını algılayacak sensördür ve sensörler
3, aracın sağında herhangi bir duyu olup olmadığını algılayacak sensördür.
Ve sonra bu üç sensörden sinyallerin her bir sensör tarafından alınan sinyallere sahip oluruz.
Dolayısıyla sinyal bir, sensörün bir sinyali tarafından alınan sinyal, sensör 2 tarafından alınan sinyaldir ve
sinyal 3, sensörler 3 tarafından alınan tek kelimedir.
Ve işler nasıl yürür.
Sinyal 1, sensörün etrafında gönderilen yoğunluğun bir sinyali sensör etrafında merkez yoğunluğudur,
üçüncüsü hassasiyet etrafında gönderilen yoğunluktur ve bu kum yoğunluğunu nasıl hesaplarız?
Bu çok basit.
Her bir sensörün çevresinde büyük çaplı kareler alıyoruz.
Bunlar aslında 200 x 200 olan karelerdir ve karelerden her biri için karedeki sayıları,
kare içindeki 22 ve 20'nin 400'ü olan toplam hücre sayısıyla bölün.
Ve bu bize yoğunluk verir kumlar merkeze karşılık gelir.
Bunu her bir sensör için yaparız ve bu bize her sensörün etrafında kum yoğunluğunu verir.
Sinyaller budur.
Pekâlâ, artık sensörü algılamak için her şeye sahibiz ve sonra da hareket fonksiyonumuz var.
Tabii ki hareket fonksiyonu çekirdeğin sola doğru gitmesine veya sağa doğru gitmesine
izin vermesidir.
Bu yüzden çabucak geçelim.
Burada arabanın kendinden geçmekte olan son konumu ve hız vektörü ile
konumunun güncellenmesini sağladık.
Dolayısıyla hız vektörü sayesinde hız vektörü yönünde güncelleme yapılacaktır.
Ardından, rotamızda elde edeceğimiz rotayı, kodda daha da aşağıya getireceğiz.
Döndürme, dönme eylemine harekete eşittir.
O eylemi seçip rotasyona girer.
Ve bu yüzden bu kendini koruma burada rotasyona eşit.
Sola ya da sağa giden arabayı nasıl döndürdüğümüzü öğrenmek için
bu rotasyon.
Ardından hatırlattığım açı, x ekseni ve aracın yönünün ekseni
arasındaki açıdır.
Ve daha sonra araç hareket ettikten sonra, sensörler ve sinyali
güncelleştirmeliyiz, çünkü tabii ki sensörler de döndürülürken araba dönerken, döndürme fonksiyonunu
kullanarak döndürmeliyiz ve bunlara ilave ediyoruz. yeni pozisyon.
Neden 30 0 vektörümüz var?
Çünkü araba ile sensör arasındaki mesafe 30'dur.
Araba ile arabanın tespit ettiği mesafe arasındaki fark biliyorsun.
Ve sonra sensörler güncellendiğinde Peki o zaman sinyalleri güncelleme zamanı.
İşte burada bilgisayar sinyallerini açıkladığım şeyi yapıyoruz.
Sensörümüzün x koordinatlarını veriyoruz, sonra tüm hücreleri Manston'tan artı 10'a alıyoruz, o zaman y koordinatı
için Madison'tan artı 10'a kadar olan tüm hücreleri alarak aynı işlemi uyguluyoruz.
Bu nedenle sensörü çevreleyen 20 x 20 piksel kareyi elde ediyoruz ve kare içinde daha büyük
olanları alıyoruz.
Temelde bazı hücrelerle birlikte hücreler 0 veya 1 içerir ve 20x20 kare içinde
20 kat 20 eşit 400 hücredir.
Kare içinde olanlar yoğunluğunu elde etmek için 400'e böldüğümüzden ve sensörün etrafındaki merkez yoğunluğunun sinyalini
almamız halinde, ikinci sensörü ve üçüncü sensörü de aynı şeyi ikinci sinyali elde
etmek için yapıyoruz. üçüncü sinyal.
TAMAM.
Bu algılayıcıyı almak ve sonra burada bu üç kod satırı çok önemlidir.
bir şey de, haritanın kenarlarından birine vardığında arabamıza ulaşmak istiyoruz.
Başka
Aracın bazı duvarlara girmesini istemediğimizi biliyorsun ve bu yüzden Wall'a çok yaklaştığında cezalandırmak
için cezalandırmak istiyoruz ve bu nedenle burada yaptığımız iş bu.
Eğer ilk sensör uzun eksi 10'dan büyükse, buradan daha büyük çünkü burada bu mesafe daha uzun
yani eksi 10 eksi burada.
Dolayısıyla, sensör birisi daha uzun süre davranırsa, Manison ile ilgili tüm hususlar burada.
olması durumunda hücre sensörü 10'un altında hareket ederse, bu doğrudur. bu, haritanın üst
kenarı ve veya kendi kendini sansürlenmiş Y, haritanın alt kenarı olan 10'dan düşükse.
Arabanın haritanın sağ kenarına yaklaşması veya arabanın haritanın sol kenarına yaklaşması veya sensör
Y'nin eksi eksi 10'dan büyük
Ve sensör biri bu dört kenardan herhangi birine ulaşıyorsa, sinyal gönderildiğinde Sensör
sinyalinin sinyalini koyacağız.
Onu bir olarak ayarlayacağız.
Ve onun anlamı ne.
Bu tam dolu kum gibi yoğun bir ses demektir.
En kötüsü ve alabileceğin gibi.
Arabanızı durdurması çok mantıklı.
Yani sinyal bir olacak ve bu nedenle araba çok kötü bir ödül alacak.
Tamam.
Ve sonra sinyal için de aynısını yaparız ve sensörün iki örneğinden üçünü sinyal veririz.
Tamam.
Ve sonra oyun sınıfını oluşturuyoruz, çünkü temelde oyunu yaratmak için sınıf oluyoruz. Şimdiye kadar
sadece arabayı yaratmış bulunuyoruz ve şimdi elbette harita oluşturmamız gerekiyor.
Oyunun kendisini yaratmak zorundayız.
Dolayısıyla oyuna girmeyeceğiz, oyunda oynamaya başlayacağımız AI'dır ve oyun aslında
engellerden kaçınmak ve havaalanından şehir merkezine ve tersine gitmektir.
Dolayısıyla bu oyun sınıfında araç gibi bazı nesneler oluşturmamız gerekir; bu durumda güncelleme fonksiyonunu
tanımlamamız gerekir.
Bu en önemlisi ve biz şu anda odaklanacağız, çünkü bu,
aracın yapması gereken eylemi ve her seferinde hedefini gerçekleştirmek için seçeceği bu güncelleme işlevi.
Ve bu eylem tam olarak sinir ağımızın çıktısıdır.
Yapay zekanın kalbi olacak yeni iş olacak.
Ve bu yüzden bu eylem AI dosyamızda yapacağımız insan sınıfının nesnesi olan arabanın
beyin tarafından geri gönderilir.
Ve bu nesne güncelleme denilen bir yöntem içerir ve girdi olarak son kelimeyi ve son
sinyali alır.
Elbette son sözcük araba tarafından elde edilen en son sözcüktür ve son
sinyal elbette üç sensörün son sinyali bir sensörden sensörden birine sinyal iki sensörden üçlü sinyale
sinyal verir.
Ancak sonra, aracın hedefe göre yönlendirilmesi olan iki girdi daha ekliyorum.
Örneğin, araba hedefe doğru gidiyorsa yönelim sıfıra eşit olacaktır.
Eğer hafifçe sağa doğru giderse, yönlendirme 45 dereceye yakın olacak.
Ve hafifçe sola doğru giderse, yönlendirme eksi 45 dereceye yakın olacak.
Bu, giriş durumlarımızın kuvvet girişi.
Ve sonra eksi yönelim olan bir ders var.
Genellikle sinir ağının girdileri bağımsızdır Çoklu doğrusallık yok, ancak bunun nedeni bizim için önem
taşımıyor çünkü sinir ağı bunu ağırlıklar ile tamir edecek.
ki bu eksi yönlendirme eklenerek aracın hızlanma istikrarını sağlamak için aracın eğitimi sağlanır.
Ama yine de fark ettim
Bunu yaptığımızı biliyorsunuz, AI bu eksi yönü ekleyerek her zaman aynı
yönde keşfedilmemektedir.
Sağa veya sola doğru her iki yönde de araştırıldığından emin oluruz.
Ve böylece bu üç sinyal Artı oryantasyon ve eksi yönlendirme, şifrelenmiş
vektörümüzün beş girdisidir ki bu da ağa girecek olan girdi vektörümüzün ağa
gidecek ve ağa girdikten sonra ağ, oynamak için bir eylem.
kelimeye ait son sinyali girmek zorundayız çünkü eylem de oynuyor son kelimeye bağlı.
Ve her zaman ve çıktı, ağın kendisini ve ağın çıktısını içeren
bu güncelleme işlevi tarafından döndürülür ve bu nedenle giriş durumuna ve son
Pekâlâ, sonra rotayı güncelleyen kelimelerin ana skorunu güncelledik, arabayı, seçilen aksiyona
göre döndürmek için hareket fonksiyonunu kullanıyoruz.
Aracın yola olan mesafesini yola koyuyoruz ve her iki Rieker de, sensörlerin haritadaki temsillerini gösterecek
toplara tepki olarak, bir top iki pozisyon almasını sağlayacağız.
Bunu çok hızlı göreceksin.
yerdir, çünkü bunu görebileceğiniz gibi, araba biraz duyuya iyi gelirse yavaşlar.
Ve sonra burada bu bölüm çok önemlidir; çünkü bu, arabayı bir şekilde anlamış olursanız cezalandırmamız gereken
Yani hızını düşürdük.
Burada gördüğünüz gibi hızı genellikle 6'dır.
Ve bir anlam ifade etmeye devam ederse, 1'e yavaşlatılacaktır.
Otomobilin bir anlam ifade ettiğinde nasıl yavaşlayacağını göreceksin.
Bu yüzden yavaşlıyor.
Ayrıca kötü bir ödül alır, istediğimiz eksi olur.
Ve bu aslında elde edebileceğin en kötü ödül.
En iyi ödül, en kötü sözcük eksi bir, ödül ise eksi 1 ile artı 1 arasındadır.
Ve sonra aksi takdirde.
Ve araba bir kum üzerine değil.
Her zamanki hızdaki seks hızını korur ve sonra başka şeyler ekleriz.
Hedefi yaklaştırıyorsa biraz olumlu bir ödül alacaktır.
Ve eğer gol daha uzaklaşıyorsa Eksi 0 biraz negatif bir ödül alır. 2.
Ve sonra son.
Ödül ile ilgili koşullar.
Daha önce konuştuğumuz gibi araba bir kenara çok yaklaştıysa budur.
Yakıt sensöründen bahsettiğimiz zamanı hatırla.
Araba, haritanın sol kenarına çok yaklaşıyorsa, harita sağ kenarına çok yaklaşırsa eksi
bir kelime alır ve eksi birer ödüllendirilir.
Ve eğer harita alt kenarına çok yaklaşırsa, sizi alır veya eksi bir eder.
Ve eğer harita üst soluna çok yaklaşırsa, eksi birer ödül alır.
Bu çok kötü bir cezadır.
Dolayısıyla başka şeylere acele etmemek için nasıl dolu ve hızlı olduğunu göreceksiniz.
Pekâlâ, bu, hedefe ulaşıldığında gidişi güncellemek.
Araba ilk geldiği havalimanına ne zaman ulaştığında, haritanın sol üst köşesinde olduğunu
bilirsiniz.
Hedef, şehir merkezindeki haritanın sağ alt köşesinde değişir.
Ve işte tam burada yaptığımız şey, Crow'un x koordinatını ve
çağrının beyaz koordinatlarını güncelleyip arabadan arabayla olan mesafeyi de güncelliyoruz.
Tamam.
Ve bu daha az önemlidir.
Bu, yalnızca K. ile daha ilgili bazı yollarda veya bazı engelleri haritada çizebilmek için
bildiğiniz boyama araçlarını ekleyecek bir sınıf. V. İsterseniz bir göz atabilirsiniz, bu kodun
özet sürümünü sunacağım ve bunu skivvy ile nasıl yapacağınız konusunda daha derinlemesine gitmek istiyorsanız
bazı referanslar sunacağım.
Ancak yapay zekadan uzaklaşıyoruz, bu yüzden detaylarına girmeyeceğim.
Ve son olarak, API sınıfı düğmelerin kaydetmeyi ve yüklemeyi temizlediği gibi araba sınıfındaki kod bölümünde de
aynı şey geçerli.
İşte burada yaptıklarımız.
Temiz tuval güvenli.
Beynimizi kurtarmak için bildiğimiz günü kurtarmak için bizim için çok önemli
olan bu, daha sonra arabanın beynini yüklemek için haritaya eklediğimiz başka bir araç
olan yük fonksiyonunu kullanarak yeniden kullanabilmenizdir. aracın belleğinde haritadaki dolaşımı nasıl yüklemektir.
Ve son olarak, haritayı çalıştıran her şeyi ve AI'yi çalıştıran
son kod bölümünün sonuna sahibiz.
Ve aslında bizzat bunu yapacağız.
Bu kodda yaptığımız her şeye göz atalım.
Dolayısıyla şu anda AI uygulanmıyor.
Dolayısıyla kod çok rastgele bir harekete sahip olacak.
Aslında bir böceğe benzeyecek, ancak bunu düzelteceğimizi merak etmeyin.
Normalde onu gerçek bir araba gibi hareket ettirmek için eğitip bazı yollardan sonra gezinip bazı
engellerden kaçınmaya çalışacağız.
Bunu yapalım.
Her şeyi seçip yürütmeye gidiyorum.
İşte harita.
İşte işte araba.
Tamam.
İşte gördüğün şey, arabamızda böcek gibi duran küçük şey.
Sana söylediğim gibi, eylemler tamamen rasgele.
Araba her seferinde düzgün sola ya da sağa gitmek üzere rastgele bir eylem seçer.
Bu yüzden saçma hareketler yapıyor ve bu yüzden böcek gibi görünüyor.
Bu yüzden elbette düzeltebiliriz.
bu havaalanı burada ya da haritanın sağ alt köşesindeki hedefe gitmiyor.
Ve elbette ki AI etkinleştirildiğinden
Bütün bunları AI'yi uygulayacak AI'ları bu arabaya veya bu böcek haline getirerek halledeceğiz, böylece burada üç
topu sarı olanı kırmızı olanı ve beyaz olanı görebilirsiniz.
Bu üç sensörümüz.
İşte biz bunu algılarız.
Etrafında bir miktar kokusu var.
Ve kokudan konuşalım biraz atalım.
Bunu yapmak için sadece burada bir tıklama yapmam lazım ve bir şekilde hala sol öğretmenlik yaparak biliyorsun.
Şu an biraz kum ekliyorum, biraz daha ekleyebiliriz.
Her seferinde delirmişsiniz ki, merkez dizisine koyanların, başlangıçtaki 00 koordinatlarına sahip olan
dizi göndermesi gerektiğini görebilirsiniz.
Ve burada bir sürü şey var.
Ve görebileceğiniz gibi arabayı görmek güzel.
Az önce iniş yapmaya devam ettik ve yavaşladık.
Şu an gördüğünüz gibi, kumun içine girdiği için gerçekten yavaşlıyor.
Ve şu anda kaçmaya çalışıyor.
Ve ne yapacağımızı biliyorsun, bazı yollar çizeceğiz ve havalimanından şehir merkezine birkaç yol
çizeceğiz ve arabayı yolda kalacak ve engellerden kaçınacak şekilde eğiteceğiz.
Tamam.
Ve gördüğünüz gibi, kumun temizlenmesi için açık düğme var, arabanın beynini kurtarmak için
kaydetme düğmesi var.
Ve aslında bu emniyetten bahsettiğimiz bu çekirdek eğrisi, modelinizi aslında aracınızın
beyininden kurtarıyor ve daha sonra soğukkanlılığınızı terk edip bilgisayarınızı kapatıp tekrar dönmek
isteyeceğinizi biliyor musunuz?
Yük düğmesini kullanarak beyni yüklemek için modunuzu yükleyebilirsiniz ve bu, aracınızın
AI trenlerini alacaktır.
Tamam, şimdi AI yapmaya başlamayı sabırsızlıkla bekliyorum.
Bu çok eğlenceli olacak.
Sinir ağımızı yapacağız ve istediğimizi yapmaz arabayı cezalandırırız.
Bunu bir sonraki ders kitabından yapalım.
Ve o zamana kadar tadını çıkarın.