Q Learning: Semua yang perlu Anda ketahui tentang Reinforcement Learning



Artikel ini memberikan pengetahuan rinci dan komprehensif tentang Q-Learning melalui analogi yang indah dari Reinforcement Learning melalui kode Python.

dan adalah beberapa domain yang berada di antara kata kunci teratas di industri dan untuk alasan yang bagus. AI akan menciptakan 2,3 juta pekerjaan pada tahun 2020 mengingat tujuan utamanya adalah memungkinkan mesin untuk meniru perilaku manusia. Aneh bukan? Jadi, hari ini kita akan membahas Pembelajaran Q, blok bangunan Pembelajaran Penguatan dengan urutan sebagai berikut:

Apa itu Reinforcement Learning?

Mari kita lihat kehidupan sehari-hari kita. Kami melakukan banyak tugas di lingkungan dan beberapa dari tugas tersebut memberi kami penghargaan sementara beberapa tidak. Kami terus mencari jalur yang berbeda dan mencoba mencari tahu jalur mana yang akan menghasilkan penghargaan dan berdasarkan tindakan kami, kami meningkatkan strategi kami untuk mencapai tujuan. Ini teman-teman saya adalah salah satu analogi yang paling sederhana dari Reinforcement Learning.





Bidang minat utama:

  • Lingkungan Hidup
  • Tindakan
  • Penghargaan
  • Negara

pembelajaran penguatan - pembelajaran q



Pembelajaran Penguatan adalah cabang pembelajaran mesin yang memungkinkan sistem untuk belajar dari hasil keputusan mereka sendiri. Ini memecahkan jenis masalah tertentu di mana pengambilan keputusan berurutan, dan tujuannya adalah jangka panjang.

Proses Q-Learning

Mari kita pahami apa itu pembelajaran Q dengan pernyataan masalah kita di sini. Ini akan membantu kita untuk menentukan komponen utama dari solusi pembelajaran penguatan yaitu agen, lingkungan, tindakan, penghargaan, dan status.

Analogi Pabrik Mobil:



Kami berada di Pabrik Mobil yang penuh dengan robot. Robot-robot ini membantu para pekerja Pabrik dengan mengirimkan suku cadang yang diperlukan untuk merakit mobil. Komponen berbeda ini terletak di lokasi berbeda di dalam pabrik di 9 stasiun. Bagian-bagiannya termasuk Chassis, Wheels, Dashboard, Engine dan sebagainya. Factory Master telah memprioritaskan lokasi pemasangan sasis sebagai prioritas tertinggi. Mari kita lihat penyiapannya di sini:

Serikat:

Lokasi di mana robot berada pada kejadian tertentu disebut statusnya. Karena lebih mudah untuk mengkodekannya daripada mengingatnya dengan nama. Mari petakan lokasi ke angka.

Tindakan:

Tindakan tidak lain adalah gerakan yang dilakukan oleh robot ke lokasi manapun. Pertimbangkan, robot berada di lokasi L2 dan lokasi langsung ke mana ia dapat bergerak adalah L5, L1 dan L3. Mari kita pahami ini lebih baik jika kita memvisualisasikan ini:

kelas __init__ python

Imbalan:

Hadiah akan diberikan kepada robot karena berpindah langsung dari satu keadaan ke keadaan lain. Misalnya, Anda dapat menjangkau L5 langsung dari L2 dan sebaliknya. Jadi, hadiah 1 akan diberikan dalam kedua kasus tersebut. Mari kita lihat tabel reward:

Ingat ketika Master Pabrik Memprioritaskan lokasi sasis. Itu L7, jadi kami akan memasukkan fakta ini ke dalam tabel hadiah kami. Jadi, kami akan menetapkan angka yang sangat besar (dalam kasus kami 999) di lokasi (L7, L7).

Persamaan Bellman

Sekarang misalkan robot perlu pergi dari titik A ke B. Ia akan memilih jalur yang akan menghasilkan hadiah positif. Untuk itu misalkan kita memberikan reward dalam hal footprint untuk di ikuti.

Tetapi bagaimana jika robot mulai dari suatu tempat di mana ia dapat melihat dua atau lebih jalur. Dengan demikian, robot tidak dapat mengambil keputusan dan ini terutama terjadi karena tidak memiliki Penyimpanan . Di sinilah Persamaan Bellman masuk ke dalam gambar.

V (s) = max (R (s, a) + & # 120632V (s '))

Dimana:

bagaimana menangani popup di selenium webdriver
  • s = keadaan tertentu
  • a = tindakan
  • s '= keadaan dari mana robot pergi s
  • & # 120632 = faktor diskon
  • R (s, a) = fungsi reward yang mengambil status dan tindakan (a) dan menghasilkan nilai reward
  • V (s) = nilai berada dalam keadaan tertentu

Sekarang blok di bawah tujuan akan mendapat hadiah 1, yang merupakan hadiah tertinggi, Tapi bagaimana dengan blok lainnya? Nah, di sinilah faktor diskon berperan. Mari kita asumsikan faktor diskon 0,9 dan isi semua blok satu per satu.

Proses Keputusan Markov

Bayangkan robot ada di blok oranye dan perlu mencapai tujuan. Tetapi bahkan jika ada sedikit disfungsi, robot akan bingung jalan mana yang harus diambil daripada naik.

Jadi kita perlu memodifikasi proses pengambilan keputusan. Itu harus Sebagian Acak dan Sebagian di bawah kendali robot . Sebagian Acak karena kita tidak tahu kapan robot akan disfungsi dan sebagian terkendali karena itu masih keputusan robot. Dan ini membentuk dasar untuk Proses Keputusan Markov.

Proses keputusan Markov (MDP) adalah proses kontrol stokastik waktu diskrit. Ini menyediakan kerangka kerja matematika untuk memodelkan pengambilan keputusan dalam situasi di mana hasil sebagian acak dan sebagian di bawah kendali pembuat keputusan.

Jadi kita akan menggunakan persamaan Bellman asli kita dan mengubahnya. Apa yang tidak kita ketahui adalah keadaan selanjutnya yaitu. s '. Apa yang kita tahu adalah semua kemungkinan belokan dan mari kita ubah Persamaannya.

V (s) = max (R (s, a) + & # 120632 V (s '))

V (s) = max (R (s, a) + & # 120632 & Sigmas 'P (s, a, s ') V (s '))

P (s, a, s '): Kemungkinan pindah dari keadaan s untuk s ' dengan aksi untuk

& Sigmas 'P (s, a, s ') V (s '): Harapan Keacakan Robot

V (s) = max (R (s, a) + & # 120632 ((0.8V (ruangannaik)) + (0.1V (ruangan.)turun) +….))

Sekarang, mari beralih ke Pembelajaran Q. Q-Learning mengajukan gagasan untuk menilai kualitas suatu tindakan yang diambil untuk pindah ke suatu keadaan daripada menentukan nilai yang mungkin dari keadaan itu dipindahkan.

Inilah yang kita dapatkan jika kita memasukkan gagasan menilai kualitas tindakan untuk pindah ke negara bagian tertentu. Dari Persamaan Bellman yang diperbarui jika kita menghapusnya maks komponen, kami mengasumsikan hanya satu footprint untuk kemungkinan tindakan yang tidak lain adalah Kualitas dari aksi tersebut.

Q (s, a) = (R (s, a) + & # 120632 & Sigmas 'P (s, a, s ') V (s '))

Dalam persamaan Kuantifikasi Kualitas tindakan ini, kita dapat mengasumsikan bahwa V (s) adalah maksimum dari semua kemungkinan nilai Q (s, a). Jadi mari kita ganti v (s ') dengan fungsi Q ().

Q (s, a) = (R (s, a) + & # 120632 & Sigmas 'P (s, a, s ') maks Q (s ’, a’))

Kami hanya selangkah lebih dekat dengan Persamaan Pembelajaran Q terakhir kami. Kami akan memperkenalkan file Perbedaan Temporal untuk menghitung nilai-Q sehubungan dengan perubahan lingkungan dari waktu ke waktu. Tapi bagaimana kita mengamati perubahan di Q?

TD (s, a) = (R (s, a) + & # 120632 & Sigmas 'P (s, a, s ') maks Q (s ', a')) - Q (s, a)

Kami menghitung ulang Q baru (s, a) dengan rumus yang sama dan mengurangi Q (s, a) yang sebelumnya diketahui darinya. Jadi persamaan di atas menjadi:

Qt(s, a) = Qt-1(s, a) + α TDt(s, a)

Qt(s, a) = Nilai Q saat ini

Qt-1(s, a) = Nilai-Q sebelumnya

Qt(s, a) = Qt-1(s, a) + α (R (s, a) + & # 120632 max Q (s ', a')-Qt-1(s, a))

Demo Pembelajaran Q: NumPy

Saya akan menggunakan NumPy untuk mendemonstrasikan cara kerja Pembelajaran Q.

Langkah 1: Impor, Parameter, Status, Tindakan, dan Hadiah

impor numpy sebagai np gamma = 0.75 # Faktor diskon alpha = 0.9 # Tingkat pembelajaran location_to_state = {'L1': 0, 'L2': 1, 'L3': 2, 'L4': 3, 'L5': 4, ' L6 ': 5,' L7 ': 6,' L8 ': 7,' L9 ': 8} tindakan = [0,1,2,3,4,5,6,7,8] hadiah = np.array ( [[0,1,0,0,0,0,0,0,0], [1,0,1,0,0,0,0,0,0], [0,1,0,0, 0,1,0,0,0], [0,0,0,0,0,0,1,0,0], [0,1,0,0,0,0,0,1,0] , [0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,0,1,0], [0,0,0,0, 1,0,1,0,1], [0,0,0,0,0,0,0,1,0]])

Langkah 2: Petakan Indeks ke lokasi

perbedaan antara metode overloading dan overriding
state_to_location = dict ((state, location) for location, state in location_to_state.items ())

Langkah 3: Dapatkan Rute Optimal menggunakan Proses Pembelajaran Q.

def get_optimal_route (lokasi_mulai, lokasi_akhir): rewards_new = np.copy (rewards) ending_state = location_to_state [end_location] rewards_new [ending_state, ending_state] = 999 Q = np.array (np.zeros ([9,9])) # Q- Proses pembelajaran untuk i dalam rentang (1000): # Mengambil status acak current_state = np.random.randint (0,9) # Python mengecualikan playable_actions = [] # Iterasi melalui matriks hadiah baru untuk j dalam rentang ( 9): jika rewards_new [current_state, j]> 0: playable_actions.append (j) # Pilih tindakan acak yang akan membawa kita ke status berikutnya next_state = np.random.choice (playable_actions) # Menghitung Perbedaan Temporal TD = rewards_new [current_state , next_state] + gamma * Q [next_state, np.argmax (Q [next_state,])] - Q [current_state, next_state] # Memperbarui Q-Value menggunakan persamaan Bellman Q [kondisi_sini, status_sini] + = alpha * TD # Inisialisasi rute optimal dengan lokasi awal route = [start_location] #Inisialisasi next_location dengan lokasi awal next_location = bintang t_location # Kami tidak tahu tentang jumlah pasti dari iterasi yang diperlukan untuk mencapai lokasi akhir sehingga sementara loop akan menjadi pilihan yang baik untuk iterasi sementara (next_location! = end_location): # Ambil status awal starting_state = location_to_state [start_location] # Ambil nilai-Q tertinggi yang berkaitan dengan status awal next_state = np.argmax (Q [kondisi_mulai,]) # Kami mendapatkan indeks dari status berikutnya. Tapi kami membutuhkan surat yang sesuai. next_location = state_to_location [next_state] route.append (next_location) # Perbarui lokasi awal untuk iterasi berikutnya start_location = rute kembali lokasi_lokasi

Langkah 4: Cetak Rute

cetak (get_optimal_route ('L1', 'L9'))

Keluaran:

Dengan ini, kita mengakhiri Q-Learning. Saya harap Anda mengetahui cara kerja Pembelajaran Q bersama dengan berbagai dependensi yang ada seperti Perbedaan Waktu, Persamaan Bellman, dan banyak lagi.

Edureka's membuat Anda mahir dalam teknik-teknik seperti Supervised Learning, Unsupervised Learning, dan Natural Language Processing. Ini mencakup pelatihan tentang kemajuan terbaru dan pendekatan teknis dalam Kecerdasan Buatan & Pembelajaran Mesin seperti Pembelajaran Mendalam, Model Grafis, dan Pembelajaran Penguatan.