Tensorflow Aracıları ile Güçlendirme Öğrenmesi [222]
Yayınlanan: 2021-01-01Takviye öğrenimi, DeepMind'ın AlphaGo yönteminin dünya şampiyonu Go oyuncusunu yenmek için nispeten yakın tarihli başarısıyla değerli bir popülerlik kazandı. AlphaGo yöntemi, kısmen derin sinir ağlarında pekiştirmeli öğrenme ile eğitildi.
Bu öğrenme stili, makine öğreniminin klasik denetimli ve denetimsiz paradigmalardan farklı bir özelliğidir. Takviyeli öğrenmede, ağ, derin sinir ağlarını kullanarak çevresel verilere (durum denir) yanıt verir ve bir aracının davranışını, bir ödülü optimize etmeye çalışmak için etkiler.
Bu teknik, bir ağın Atari veya diğer video oyunları gibi spor oynamayı veya bir oyun biçimi olarak yeniden yazılabilecek başka bir mücadeleyi öğrenmesine yardımcı olur. Ortak bir pekiştirmeli öğrenme modeli olan bu öğreticide, Q öğrenmenin geniş ilkelerini tanıtacağım ve derin Q öğrenmenin TensorFlow'a nasıl dahil edileceğini göstereceğim.
İçindekiler
Takviyeli öğrenmeye giriş
Yukarıda bahsedildiği gibi, pekiştirmeli öğrenme birkaç temel varlık veya ilkeden oluşur. Bunlar: bir koşul ve ödül yaratan bir ortam ve verilen ortamda eylemler gerçekleştiren bir varlıktır. Aşağıdaki şemada bu etkileşimi görüyorsunuz:
Böyle bir ortamda ajanın görevi, aldığı durumu ve teşvik bilgilerini analiz etmek ve ödülden aldığı girdiyi maksimize eden bir davranış seçmektir. Ajan, dünyayla tekrar tekrar temas kurarak veya başka bir deyişle oyunun tekrar tekrar oynanmasıyla öğrenir.
Başarılı olmak için, temsilcinin şunları yapması gerekir:

1. Durumlar, davranışlar ve ortaya çıkan teşvikler arasındaki bağlantıyı öğrenin
2. Seçim için en iyi hamlenin hangisi olduğunu belirleyin (1)
Uygulama (1), (2)'yi bildirmek için kullanılabilecek belirli bir dizi ilkenin tanımlanmasını gerektirir ve (2), çalışma stratejisi olarak adlandırılır. Derin Q kullanarak (1) ve (2)'yi uygulamanın en yaygın yöntemlerinden biri Derin Q ağı ve epsilon açgözlü politikasıdır.
Öğrenin: Yeni Başlayanlar İçin En Popüler 5 TensorFlow Projesi
Q öğrenme
Q öğrenme, bir aracının hangi eylemi gerçekleştirebileceğini söylemek için veri sağlamanın değer tabanlı bir yoludur. Bir durumdaki birkaç oyun üzerinde eyleme geçmenin faydalarını özetleyen bir tablo oluşturmak, eylemlerin dayandırılacağı ilkeler üretmeye yönelik orijinal olarak sezgisel bir kavramdır. Bu, en faydalı hareketlerin hangileri olduğunu takip edecektir. Yeni başlayanlar için, her eyalette 3 eyalet ve iki potansiyel eylem içeren basit bir oyun düşünelim - bir masa bu oyunun ödüllerini temsil edebilir:
Eylem 1 | Eylem 2 | |
durum 1 | 0 | 10 |
durum 2 | 10 | 0 |
durum 3 | 0 | 10 |
Yukarıdaki tabloda, bu basit oyun için, aracı Durum 1 olduğunda ve Eylem 2'yi yaptığında, Eylem 1'i yaparsa, 10'luk bir ödül alacağını ancak sıfır ödül alacağını görebilirsiniz. Durum 2'de, durum tersine çevrilir ve Durum 3 sonunda Durum 1'e benzer. Bir ajan keyfi olarak bu oyunu araştırdıysa ve üç durumdan herhangi birinde en fazla ödülü elde edilen davranışı saydıysa (örneğin, bu bilgiyi bir dizide depolamak), böylece yukarıdaki tablonun pratik formu etkili bir şekilde bilinecektir.
Diğer bir deyişle, eğer ajan geçmişte öğrendiği ve en yüksek ödülü sağlayan davranışı seçmiş olsaydı (yukarıdaki tablonun bir formunu etkili bir şekilde öğrenerek), oyunu etkili bir şekilde oynamayı öğrenmiş olurdu. Basitçe özetleyerek tablolar oluşturmak uygun olduğunda, neden Q öğrenme ve ardından sinir ağları gibi süslü fikirlere ihtiyacımız var?
ertelenmiş ödül
Görünen ilk cevap, yukarıdaki oyunun sadece 3 durum ve eyalet başına 2 eylem ile çok basit olduğudur. Gerçek oyunlar önemli ölçüde daha karmaşıktır. Yukarıdaki durumda gecikmeli ödül ilkesi, eksik olan diğer önemli kavramdır. Bir temsilci, mutlaka bir ödülle sonuçlanmayabilecek, ancak daha sonra önemli bir ödülle sonuçlanabilecek en gerçekçi oyunları düzgün bir şekilde oynamak için adımlar atabilmeyi öğrenmelidir.
Eylem 1 | Eylem 2 | |
durum 1 | 0 | 5 |
durum 2 | 0 | 5 |
durum 3 | 0 | 5 |
Devlet 4 | 20 | 0 |
Yukarıda bahsedilen oyunda tüm durumlarda Eylem 2 yapılırsa, aracı Durum 1'e geri döner, yani başlangıca geri döner. 1'den 3'e kadar olan Devletlerde, bunu yaptığı gibi 5'lik bir kredi bile alır. Bu nedenle, Eylem 1 1-3 tüm Devletlerde yapılırsa, acente bir sonraki Devlete seyahat edecek, ancak Devlet 4'e girene kadar bir ödül almayacak ve bu noktada kendisine 20 ödül verilecektir.
Başka bir deyişle, bir aracı, anında 5 ödül almak için Eylem 2'yi yapmazsa daha iyi durumdadır, ancak bunun yerine, 20'lik bir ödül almak için durumlar arasında sürekli ilerlemek için Eylem 1'i seçebilir. Gecikmiş ödül değeri çok yüksek olduğunda, gecikmeli ödülle sonuçlanan eylemleri seçmek.
Ayrıca Okuyun: Tensorflow Görüntü Sınıflandırması
Q öğrenme kuralı
Bu bizi Q öğrenme kurallarını netleştirmeye teşvik ediyor. Derin Q öğrenmede, sinir ağının bir vektör olarak mevcut durumu (s) alması ve her potansiyel davranış için bir Q değeri döndürmesi gerekir, a, bu durumda, yani her ikisi için de Q(s, a) döndürmek gerekir s ve a. Bu Q(s, a) aşağıdaki kural aracılığıyla eğitimde revize edilmelidir:
Q(s,a) = Q(s,a) + alp[r+γmax Q(s',a ') – Q(s,a)] + alp[r+ γmax Q(s',a')
Bu yasanın yükseltme için biraz açılması gerekiyor. İkinci olarak, Q(s, a)'nın yeni değerinin, yukarıdaki denklemin sağ tarafına bazı ekstra bitler ekleyerek mevcut değerinin değiştirilmesini gerektirdiğini görebilirsiniz. Soldan sağa geçiş yapın. Bir süre alfayı unutun. Köşeli parantezlerin içinde, eyaletlerde harekete geçmek için kazanılan ödülü temsil eden ilk kelimenin r olduğunu görüyoruz.

Bu anlık ödül; Henüz ertelenmiş bir memnuniyet söz konusu değildir. Sonraki kelime, ertelenmiş teşvik tahminidir. Her şeyden önce, her zaman 0 ile 1 arasında olan gecikmeli ödül etkisini indirgeyen γ değerine sahibiz . Bir sonraki terim maxa'Q(s, 'a'), bir sonraki koşulda kullanılabilen maksimum Q değeridir.
İşleri biraz daha kolaylaştıralım - etmen durumlarda başlar, a eylemini gerçekleştirir, durumlarda bitirir ve sonra kod durumlarda maksimum Q değerini belirtir, yani max a 'Q(s',a'). O halde Max neden bir 'Q(s',a') duygusu dikkate alınır? Eğer yürürlüğe girerse ve s durumunda, işleyiciye giden tüm olası ödülü temsil ettiği bilinmektedir.
Bununla birlikte, γ, olası bir teşviki sonsuza kadar beklemenin acente için istenmediğini dikkate almak için bu değeri indirir - acentenin en kısa sürede en büyük ödülü hedeflemesi daha iyidir. Q(s',a)' değerinin aynı zamanda bundan sonra ekonomi için en yüksek indirimli teşviki, yani Q(s',a)' zımnen koruduğuna dikkat edin, çünkü Q(s',a) durumu için indirimli motivasyonu korur. ' ve bunun gibi.
Bunun nedeni, temsilcinin eylemi yalnızca anlık ödül r temelinde değil, aynı zamanda gelecekteki olası indirimli teşvikler temelinde de seçecek olmasıdır.
Derin Q öğrenme
Derin Q öğrenme, eğitim aşaması boyunca Q öğrenme güncelleme yasasını takip eder. Başka bir deyişle, girdi olarak durum s alan bir sinir ağı oluşturulur ve ardından ağ, s durumundaki her davranış için uygun Q(s, a) değerleri üretmek üzere eğitilir. Aracının eylemi daha sonra en büyük Q(s, a) değerine sahip eylemi alarak (sinir ağının çıktısından bir argmax alarak) seçilecektir. Bu, aşağıdaki diyagramın ilk adımında görülebilir:
Eylem seçme ve eğitim adımları – Derin Q öğrenme

Bu aktarım yapıldıktan ve bir eylem seçildikten sonra, aracı eylemi gerçekleştirecektir. Temsilci daha sonra, bu durumdan eylemi gerçekleştirmek için hangi teşvikin verildiği konusunda geri bildirim alacaktır. Q Öğrenme Kılavuzuna uygun olarak, şimdi yapmak istediğimiz bir sonraki adım, ağı eğitmektir. İkinci bölümde, bu yukarıdaki şemada görülebilir.
Durum vektörü s, ağ eğitimi için x girdi dizisidir ve y çıktı eğitim örneği, eylemin seçim süreci sırasında toplanan Q(s, a) vektörüdür. Bununla birlikte, a eylemine karşılık gelen Q(s,a) değerlerinden biri, yukarıdaki şekilde görülebileceği gibi r+γQ(s',a ') hedefine sahip olacak şekilde ayarlanmıştır. Aracıya uzun vadeli yararı için hangi davranışın seçilmesinin en iyi olacağını söylemek için ağı bu şekilde eğiterek, ağdan Q(s, a) çıktı vektörü zamanla daha da güçlenecektir.
Pekiştirmeli Öğrenmenin Artıları:
- Takviyeli öğrenme, geleneksel yaklaşımlarla üstesinden gelinemeyecek çok zorlu zorlukları çözmek için kullanılabilir.
- Bu strateji, elde edilmesi çok zor olan uzun vadeli sonuçlar üretmek için seçilmiştir.
- Bu öğrenme modeli, insanoğlunun öğrenmesine biraz benzer. Dolayısıyla mükemmele ulaşmaya yakındır.
- Model, test aşamasında meydana gelen hataları düzeltecektir.
- Model tarafından bir hata düzeltilirse, aynı hatanın meydana gelme olasılığı biraz daha düşüktür.
- Çözülecek belirli bir problem için en iyi paradigmayı yaratacaktır.
Pekiştirmeli Öğrenmenin Eksileri
- Bir şema olarak pekiştirmeli öğrenme pek çok açıdan yanlıştır, ancak onu faydalı kılan tam da bu niteliktir.
- Çok fazla pekiştirmeli öğrenme, durumların bunalmasına neden olabilir ve bu da sonuçları azaltabilir.
- Takviyeli öğrenme, temel sorunları çözmek için kullanılmaya tercih edilmez.
- Takviyeli öğrenme, çok fazla zeka ve çok fazla hesaplama gerektirir. Veri açlığı. Bu yüzden video oyunlarına çok iyi uyuyor, bu yüzden oyunu tekrar tekrar oynayabilirsiniz ve birçok ayrıntıyı elde etmek mümkün görünüyor.
- Takviyeli öğrenme, evrenin Markovyen olduğunu varsayar ki bu öyle değildir. Markov modeli, her bir olayın olasılığının yalnızca önceki olayda elde edilen koşula bağlı olduğu bir olası olaylar dizisini tanımlar.
Sıradaki ne?
Makine öğreniminde uzmanlaşmak ve bir aracıyı tic tac toe oynamak, sohbet robotu eğitmek vb. için nasıl eğiteceğinizi öğrenmek istiyorsanız, Grad'ın Makine Öğrenimi ve Yapay Zeka PG Diploması kursuna göz atın.
TensorFlow nedir?
Makine öğreniminde yaygın olarak kullanılan programlama dili Python, geniş bir işlev kitaplığıyla birlikte gelir. TensorFlow, Google tarafından başlatılan, hızlı ve verimli sayısal hesaplamaları destekleyen böyle bir Python kitaplığıdır. Derin Öğrenme modellerini geliştirmek için yaygın olarak kullanılan, Google tarafından oluşturulan ve bakımı yapılan açık kaynaklı bir kitaplıktır. TensorFlow, süreci basitleştirmek için diğer sarmalayıcı kitaplıklarıyla birlikte de kullanılır. Derin Öğrenmede de kullanılan diğer bazı sayısal kitaplıklardan farklı olarak TensorFlow, hem uygulamaların hem de üretim ortamı işlevlerinin araştırılması ve geliştirilmesi için geliştirilmiştir. Tek CPU'lu makinelerde, mobil cihazlarda ve dağıtılmış bilgisayar sistemlerinde çalışabilir.
Makine öğreniminde TensorFlow gibi diğer kütüphaneler nelerdir?
Daha önceki günlerde, makine öğrenimi mühendisleri, farklı makine öğrenimi algoritmalarının tüm kodunu manuel olarak yazardı. Artık benzer algoritmalar, istatistiksel ve matematiksel modeller için her seferinde aynı kod satırlarını yazmak sadece zaman alıcı değil, aynı zamanda verimsiz ve sıkıcıydı. Geçici bir çözüm olarak, işlevleri yeniden kullanmak ve zaman kazanmak için Python kitaplıkları tanıtıldı. Python'un kitaplık koleksiyonu geniş ve çok yönlüdür. Python'un en yaygın kullanılan kitaplıklarından bazıları, TensorFlow dışında Theano, Numpy, Scipy, Pandas, Matplotlib, PyTorch, Keras ve Scikit-learn'dir. Python kitaplıkları, C/C++ kitaplıkları ile de kolayca uyumludur.
TensorFlow kullanmanın avantajları nelerdir?
TensorFlow'un birçok avantajı, onu derin öğrenme ve makine öğreniminde hesaplama modelleri geliştirmek için oldukça popüler bir seçenek haline getiriyor. İlk olarak, grafik sunumu ile gelişmiş veri görselleştirme formatlarını destekleyen açık kaynaklı bir platformdur. Programcılar ayrıca, zaman kazandıran ve sinir ağı kodunun tüm uzunluğunu inceleme ihtiyacını ortadan kaldıran düğümlerde hata ayıklamak için kolayca kullanabilir. TensorFlow her türlü işlemi destekler ve geliştiriciler bu platformda her tür model veya sistem oluşturabilir. Ruby, C++ ve Swift gibi diğer programlama dilleriyle kolayca uyumludur.