Pembelajaran Q: Semua yang anda perlu ketahui mengenai Pembelajaran Pengukuhan

Artikel ini memberikan pengetahuan terperinci dan komprehensif mengenai Q-Learning melalui analogi indah Pengukuhan Pembelajaran melalui kod Python.

dan adalah beberapa domain yang merupakan kata kunci utama dalam industri dan untuk alasan yang baik. AI akan mewujudkan 2.3 juta pekerjaan pada tahun 2020 dengan mempertimbangkan matlamat utamanya adalah untuk membolehkan mesin meniru tingkah laku manusia. Aneh bukan? Jadi, hari ini kita akan membincangkan Pembelajaran Q, asas pembinaan Pembelajaran Pengukuhan dalam urutan berikut:

Apa itu Pembelajaran Pengukuhan?

Mari kita lihat kehidupan kita sehari-hari. Kami melakukan banyak tugas di persekitaran dan beberapa tugas tersebut memberi kami ganjaran sementara ada yang tidak melakukannya. Kami terus mencari jalan yang berbeza dan cuba mencari jalan mana yang akan membawa kepada ganjaran dan berdasarkan tindakan kami, kami meningkatkan strategi untuk mencapai tujuan. Ini kawan saya adalah salah satu analogi termudah dari Pembelajaran Pengukuhan.





Bidang minat utama:

  • Persekitaran
  • Tindakan
  • Ganjaran
  • Nyatakan

pembelajaran pengukuhan - pembelajaran q



Pengukuhan Pembelajaran adalah cabang pembelajaran mesin yang membolehkan sistem belajar dari hasil keputusan mereka sendiri. Ia menyelesaikan masalah tertentu di mana pengambilan keputusan berurutan, dan tujuannya adalah jangka panjang.

Proses Pembelajaran Q

Mari fahami apa itu pembelajaran Q dengan penyataan masalah kami di sini. Ini akan membantu kita untuk menentukan komponen utama penyelesaian pembelajaran pengukuhan iaitu ejen, persekitaran, tindakan, ganjaran, dan keadaan.

Analogi Kilang Automobil:



Kami berada di Kilang Automobil yang penuh dengan robot. Robot ini menolong pekerja Kilang dengan menyampaikan bahagian yang diperlukan untuk memasang kereta. Bahagian yang berlainan ini terletak di lokasi yang berbeza di kilang di 9 stesen. Bahagian tersebut merangkumi Chassis, Wheels, Dashboard, Engine dan sebagainya. Factory Master telah mengutamakan lokasi di mana casis dipasang sebagai keutamaan tertinggi. Mari lihat persediaan di sini:

Negeri:

Lokasi di mana robot hadir pada kejadian tertentu disebut keadaannya. Oleh kerana ia mudah dikodkan daripada mengingatnya dengan nama. Mari peta lokasi ke nombor.

Tindakan:

Tindakan tidak lain hanyalah gerakan yang dilakukan oleh robot ke mana-mana lokasi. Pertimbangkan, robot berada di lokasi L2 dan lokasi langsung ke mana ia boleh bergerak adalah L5, L1 dan L3. Mari kita fahami ini dengan lebih baik jika kita membayangkannya:

tutorial web ruby ​​on rails

Ganjaran:

Ganjaran akan diberikan kepada robot untuk terus dari satu negeri ke keadaan yang lain. Contohnya, anda boleh mencapai L5 terus dari L2 dan sebaliknya. Jadi, hadiah 1 akan diberikan dalam kedua-dua kes. Mari lihat jadual ganjaran:

Ingat ketika Master Factory Mengutamakan lokasi casis. Itu adalah L7, jadi kami akan memasukkan fakta ini ke dalam jadual ganjaran kami. Oleh itu, kami akan memberikan sejumlah besar (999 dalam kes kami) di lokasi (L7, L7).

Persamaan Bellman

Sekarang andaikan robot perlu pergi dari titik A ke B. Ia akan memilih jalan yang akan memberikan ganjaran positif. Untuk itu anggaplah kami memberikan ganjaran dari segi jejak untuk diikuti.

perpuluhan hingga perduaan dalam python

Tetapi bagaimana jika robot bermula dari suatu tempat di mana ia dapat melihat dua atau lebih jalan. Oleh itu, robot tidak dapat mengambil keputusan dan ini terutama berlaku kerana tidak mempunyai ingatan . Di sinilah persamaan Bellman muncul dalam gambar.

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

Di mana:

  • s = keadaan tertentu
  • a = tindakan
  • s '= menyatakan ke mana robot pergi dari s
  • & # 120632 = faktor diskaun
  • R (s, a) = fungsi ganjaran yang mengambil keadaan dan tindakan (a) dan menghasilkan nilai ganjaran
  • V (s) = nilai berada dalam keadaan tertentu

Sekarang blok di bawah destinasi akan mendapat hadiah 1, yang merupakan ganjaran tertinggi, Tetapi bagaimana dengan blok yang lain? Nah, di sinilah faktor diskaun masuk. Mari kita anggap faktor diskaun 0.9 dan isi semua blok satu persatu.

Proses Keputusan Markov

Bayangkan robot berada di blok oren dan perlu sampai ke destinasi. Tetapi walaupun terdapat sedikit disfungsi, robot akan keliru mengenai jalan mana yang harus diambil daripada naik.

Oleh itu, kita perlu mengubahsuai proses membuat keputusan. Ia mesti Sebahagiannya Rawak dan Sebahagiannya berada di bawah kawalan robot . Sebahagiannya Rawak kerana kita tidak tahu kapan robot akan mati fungsi dan Sebahagiannya terkawal kerana masih menjadi keputusan robot. Dan ini menjadi asas untuk Proses Keputusan Markov.

Proses keputusan Markov (MDP) adalah proses kawalan stokastik masa diskrit. Ini menyediakan kerangka matematik untuk memodelkan pengambilan keputusan dalam situasi di mana hasilnya sebahagiannya rawak dan sebahagiannya berada di bawah kawalan pembuat keputusan.

Oleh itu, kita akan menggunakan persamaan Bellman yang asal dan membuat perubahan di dalamnya. Yang tidak kita ketahui adalah keadaan seterusnya iaitu. s ’. Yang kita tahu adalah semua kemungkinan giliran dan mari kita ubah Persamaan.

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

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

P (s, a, s '): Kebarangkalian berpindah dari negeri s ke s ’ dengan tindakan ke

& Sigmas ’P (s, a, s ') V (s): Jangkaan Rawak Robot

V (s) = maks (R (s, a) + & # 120632 ((0.8V (ruangannaik)) + (0.1V (bilikturun) +….))

Sekarang, mari kita beralih ke Pembelajaran Q. Q-Learning mengemukakan idea untuk menilai kualiti tindakan yang diambil untuk berpindah ke keadaan daripada menentukan kemungkinan nilai keadaan yang sedang dipindahkan.

Inilah yang kita dapat jika kita memasukkan idea menilai kualiti tindakan untuk berpindah ke keadaan tertentu. Daripada Persamaan Bellman yang dikemas kini sekiranya kami menghapusnya maks komponen, kami hanya menganggap satu jejak untuk tindakan yang mungkin dan tidak lain Kualiti tindakan.

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

Dalam persamaan ini yang Mengukur Kualiti tindakan, kita dapat menganggap bahawa 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 ke Persamaan Pembelajaran Q terakhir kami. Kami akan memperkenalkan a Perbezaan Temporal untuk mengira nilai-Q berkenaan dengan perubahan persekitaran dari masa ke masa. Tetapi bagaimana kita memerhatikan perubahan Q?

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

Kami mengira semula Q (s, a) baru dengan formula yang sama dan tolak Q (s, a) yang telah diketahui sebelumnya. Jadi, persamaan di atas menjadi:

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

Qt(s, a) = Nilai Q semasa

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

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

Demo Pembelajaran Q: NumPy

Saya akan menggunakan NumPy untuk menunjukkan bagaimana Pembelajaran Q berfungsi.

Langkah 1: Import, Parameter, Negeri, Tindakan, dan Ganjaran

import numpy sebagai np gamma = 0.75 # Faktor diskaun alpha = 0.9 # Lokasi kadar pembelajaran_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] ganjaran = np.array ( [[0,1,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

state_to_location = dict ((state, location) untuk lokasi, nyatakan di location_to_state.items ())

Langkah 3: Dapatkan Laluan Optimum menggunakan Proses Pembelajaran Q

def get_optimal_route (start_location, end_location): reward_new = np.copy (reward) ending_state = location_to_state [end_location] reward_new [berakhir_state, ending_state] = 999 Q = np.array (np.zeros ([9,9])) # Q- Proses pembelajaran untuk i dalam julat (1000): # Memungut keadaan rawak current_state = np.random.randint (0,9) # Python tidak termasuk playable_actions teratas atas = [] # Mengulangi matriks ganjaran baru untuk j dalam jarak ( 9): if reward_new [current_state, j]> 0: playable_actions.append (j) # Pilih tindakan rawak yang akan membawa kita ke keadaan seterusnya next_state = np.random.choice (playable_actions) # Computing Temporal Perbezaan TD = reward_new [current_state , next_state] + gamma * Q [next_state, np.argmax (Q [next_state,])] - Q [current_state, next_state] # Mengemas kini Nilai-Q menggunakan persamaan Bellman Q [current_state, next_state] + = alpha * TD # Memulakan laluan yang optimum dengan lokasi lokasi permulaan = [start_location] #Initialize next_location dengan lokasi permulaan next_location = star t_lokasi # Kami tidak tahu mengenai jumlah iterasi yang tepat yang diperlukan untuk sampai ke lokasi akhir maka loop akan menjadi pilihan yang baik untuk iteratiing sementara (next_location! = end_location): # Ambil keadaan permulaan mulai_state = location_to_state [start_location] # Ambil nilai Q tertinggi berkaitan dengan keadaan permulaan next_state = np.argmax (Q [start_state,]) # Kami mendapat indeks keadaan seterusnya. Tetapi kita memerlukan surat yang sepadan. next_location = state_to_location [next_state] route.append (next_location) # Kemas kini lokasi permulaan untuk iterasi seterusnya start_location = next_location return route

Langkah 4: Cetak Laluan

tag html untuk pemecahan baris
cetak (get_optimal_route ('L1', 'L9'))

Pengeluaran:

Dengan ini, kita mengakhiri Q-Learning. Saya harap anda dapat mengetahui cara kerja Q Learning bersama dengan pelbagai kebergantungan seperti Perbezaan temporal, Persamaan Bellman dan banyak lagi.

Edureka's menjadikan anda mahir dalam teknik seperti Pembelajaran yang Diawasi, Pembelajaran Tanpa Pengawasan, dan Pemprosesan Bahasa Semula Jadi. Ia merangkumi latihan mengenai kemajuan terkini dan pendekatan teknikal dalam Artificial Intelligence & Machine Learning seperti Pembelajaran Dalam, Model Grafik dan Pembelajaran Pengukuhan.