Herkese merhaba ve tekrar hoş geldiniz.
Son derste, modellerimizi eğitmek üzere işlevselliğimizin çekirdeğini gerçekten kurmak için yardımcı işlevlerimizi nasıl kullandığımızı
gördünüz.
Böylece terminal durumumuz, başlangıç konumumuz, bir sonraki eylemimiz, bir sonraki konumumuz
ve en kısa yolumuz, aracımızın veya çevrenin nasıl çalışacağının çoğunu gerçekten tanımlar.
Yapmamız gereken son şey, eğitimimizi kullanmak için eğitimimizi kullanmaktır.
Neleri dahil etmemiz gerektiği konusunda oldukça basit bir konu ancak bunu nasıl yapacağımız farklı bir
hikaye.
Bununla birlikte, farklı bir yaklaşım kullanıyorsanız veya bunu özelleştirmek ve denemek istiyorsanız,
şiddetle tavsiye edilir.
Buna ek olarak, farklı bir yaklaşım kullanıyorsanız ve bunu tartışmak istiyorsanız, lütfen bunu Soru-Cevap bölümünde
paylaşmaktan çekinmeyin.
Bunu sizinle tartışmaktan mutluluk duyarım.
Bu harika bir fikir çünkü bunu çözmenin pek çok yolu var ve çok daha iyi, daha avantajlı
bir yol bulabilirsiniz.
Artıları ve eksileri tekrar gözden geçirebiliriz, bunu tartışmaktan mutluluk duyarız.
Tamam.
Peki ne yapmamız gerekiyor?
Eğitimimizi başlatmak zorundayız.
Eğitimimiz için.
Epsilon'u kullanmak istiyoruz.
Yani temelde rastgele bir eylem yerine bizim için en iyi eylem için alacağımız yüzde.
Şimdi epsilonumuzu ayarlayalım ve 0 olarak belirleyelim. 9 ve iskonto faktörümüz ve öğrenme oranımız için değerlerimizle
benzer bir şey yapacağız.
Öyleyse iskonto faktörünü 0'a eşit yapalım. 9.
Ayrıca öğrenme oranımızı alalım ve 0'a eşit olacak şekilde ayarlayalım. 9.
Temsilcimizin öğreneceği ya da öğrenmesi gereken oran bu olacaktır.
Ayrıca eğitim bölümlerinin sayısını da almak istiyoruz, buna n eğitim bölümü diyelim.
Bu yüzden bir dizi eğitim bölümümüz var.
1000'e ayarlayalım.
Kaç kez eğitilecek ya da kaç bölümde eğitilecek?
Harika.
Şimdi, esasen yapmak istediğimiz şey her bölüm boyunca yinelemek.
Eğitim bölümü sayımızın aralığını almak ve temel olarak epsilonumuzu ayarlamak istiyoruz.
Zamansal farkımızı öğrenmek istiyoruz.
Bunu ayarlamak için önceki bazı Q değerlerine bakmamız gerekir.
Eylem dizinimizdeki başlangıç konumumuzu hesaplamamız gerekir.
Öyleyse başlayalım.
Büyük bir for döngüsü alalım.
Dört bölümümüz var.
Eğitim bölümlerimizin sayısı aralığında.
İşte başlıyoruz.
Herhangi bir sözdizimi hatası yapmadığım sürece, maize sütun indeksimiz için ızgaramızın satır indeksini ve sütun
indeksini almak istiyoruz.
Ve hedef başlangıç konumuna ayarlayın.
Bir başlangıç yerine ihtiyacımız var, bu yüzden her bölümde bu dökümü yapalım.
Şimdi terminal durumumuzu ayarlayabiliriz.
Hayır.
Terminal durumudur.
Satır indeksine ve sütun indeksine bakmak istiyoruz.
Ardından, bir sonraki eylemimiz için eylem indeksimizi ayarlayalım.
Dolayısıyla bir sonraki eylemimize ihtiyacımız var.
Bu ajan eylem indeksimiz için labirentte yineleme yaparken, get next eylemimizi kullanabiliriz.
Ve satır indeksimizi sütun indeksimizi kullanabiliriz ve epsilonumuzu çağıralım.
Rastgele eylemimiz yerine bunu yapmak istiyoruz, sütun dizini kullanalım.
Ve Epsilon'a ihtiyacımız var.
Harika.
Eğer doğru heceleyebilseydim, işte biz.
Epsilon'u mu istiyorsun?
Pekâlâ, şu OC'yi sileyim.
Kodun geri kalanını alayım ve üzerinden geçelim, böylece her satırı yazarken beni izlemek zorunda kalmayız.
Ancak, eski satırı ayarlama konusuna nasıl yaklaşmak istediğimizi aklınızda bulundurun, bir eski satır indeksine ihtiyacımız
olacaktır.
Ayrıca sütunlarımız ve satırlarımız için de ödüllere sahip olmak isteriz.
Kuyruk değerlerine ve eski kuyruk değerlerine bakmamız ve zamansal farkımızı hesaplamamız gerekiyor.
OC Böylece koddaki değişikliği veya koddaki güncellemeyi görüyorsunuz.
Satır indeksimize ve sütun indeksimize bakmak için eski satır indeksimizi ve eski sütun indeksimizi alıyoruz.
Satır dizinimiz sütun dizinimiz bir sonraki konumumuza eşittir ve bir sonraki konumumuz satır dizini, sütun,
dizin ve eyleme ihtiyaç duyacaktır.
Son olarak, bir ödülle karşı karşıyayız.
Eski Q değerlerimiz, eski satır indeksi, eski sütun indeksi ve yine eylem indeksimize ve ödülümüz
olan zamansal farkımızın hesaplanmasına atıfta bulunan Q değerleri, artı indirim faktörü
çarpı satır indeksi ve sütun indeksi ile Q değerleri eksi önceki Q değerinden eski Q değeri olacaktır.
Eski Q değerimiz artı öğrenme oranı, zamanlar, zamansal fark ve eski sütun indeksimizdeki
eski satır indeksi ile yeni Q değerine eşit olan Q değerlerimiz olan yeni Q değerimize ihtiyaç duyduğumuz yerde neredeyse
bitti.
Eğer bu konuyu tekrar tartışmak isterseniz, Soru-Cevap bölümünü şiddetle tavsiye ederim.
Lütfen yazdırmaktan çekinmeyin.
Burada kullanılan tüm değişkenleri denemeye çalışın.
Şekilleri görmek istiyorsanız, nasıl kullanılabileceklerini, neye referans verdiklerini görün.
Şiddetle tavsiye ediyorum ve daha fazla tartışmaktan mutluluk duyarım.
Yapabileceğimiz son bir şey daha var, böylece küçük bir bildirim alabiliriz.
Bir print deyimi ekleyelim, böylece 1000 satırımız için eğitimin ne zaman tamamlandığını bilelim.
Tamam.
Benim açımdan sözdizimi hatası yoksa, gitmeye hazır olmalıyız.
Collab not defteri başlatılır.
Her şeyi yeniden yaptım.
Şunu çalıştırayım.
Sadece numpy kullandığımız için çok hızlı olması gerekir.
Bir anlamda çok optimize edilmiş bir model.
Buna tıklayayım ve ardından en kısa yolu arayalım.
Tamam.
Eğitimimiz tamamlandı.
Bazı başlangıç seçenekleri için en kısa yolu da yazdıralım.
Bu yüzden üçüncü satır, dokuzuncu sütunda en kısa yol seçeneğiyle en kısa yolumuzla başlıyoruz.
Beşinci satıra ve sıfıra bakmak istiyoruz ve dokuzuncu satırdan ve beş numaralı sütundan başlıyoruz.
Şunların çıktısını alalım.
Harika.
En kısa yolu bulduk ama işimiz bitmedi.
Neredeyse geldik.
Postacımızın, şehrimizden konum olarak kabul edebileceğimiz yasal bir yerden ürün paketleme alanına giden en kısa yolu otomatik
olarak aldığını görebiliriz.
Peki ya tersi ya da tam tersi senaryo ne olacak?
Temel olarak postacımız bir ürünü şehrin herhangi bir yerinden paketleme alanına teslim edebilir mi?
Ancak üründen sonra o bölgeden, paketleme alanından şehirdeki başka bir yere gitmesi gerekecektir,
çünkü bir sonraki ürünü alması gerekecektir.
Peki bunu çözmek için ne yapabiliriz?
Ve aslında oldukça basit.
En kısa yolun sırasını gözden geçirebilirsiniz.
Bunu bir an için düşünmeye çalışın ve sonra çözüm bu olacaktır.
En kısa yolu kullanabiliriz.
Beşinci satırı ve ikinci sütunu ele alalım ve sonra tek yapmanız gereken ters seçeneğini kullanmak olsun.
Python ile path reverse kullanırız ve yolu yazdırabiliriz.
Yani beş ve ikiye bakıyoruz.
Ve işte başlıyoruz.
En kısa yola sahibiz ve hücredeki görüntüyü alıp karşılaştırmak ve bu yollara bakmak için aşağı getirmek istiyorsanız
gerçekten yardımcı olur.
Ancak ekstrenin çıktısını alır, sıradaki sütuna bakar ve bu satıcıların nasıl seyahat ettiğini
görürseniz aslında yolları görebilirsiniz.
Kullandığınız iş çok harika.
Q Learning.
Bu kurstan öğrendiklerimiz, gezgin satıcı türünden bir problemi çözmek için biraz bonus ve eğlenceli
bir senaryo ve bölüm içeriyor.
Bu en kısa seçenekleri ve en kısa yolları bulmak için şehirdeki paketleri ve eşyaları teslim eden postacıya
bakıyoruz.
Özelleştirmenizi, diğer seçenekleri test etmenizi, hiper parametreleri değiştirmenizi ve daha iyi bir şey keşfederseniz,
herhangi bir optimize veya kullanılacak en iyi parametreleri keşfederseniz, lütfen bunları Soru-Cevap bölümünde paylaşmaktan
çekinmeyin.
İnanılmaz.
Umarım bunu gerçekten beğenmişsinizdir.
Lütfen özelleştirin, deneyin ve öğrenmeye devam edin.
Onunla çalışmak çok eğlenceli.
Q.
Öğrenmek ve eğlenmek i.