Q učenje: vse, kar morate vedeti o učenju ojačitve



Ta članek ponuja podrobno in izčrpno znanje Q-učenja s čudovito analogijo ojačevalnega učenja s kodo Python.

in je nekaj domen, ki so med najboljšimi modnimi besedami v industriji in z dobrim razlogom. AI bo do leta 2020 ustvaril 2,3 milijona delovnih mest, saj je njen glavni cilj omogočiti strojem posnemanje človeškega vedenja. Čudno, kajne? Torej, danes bomo razpravljali o Q Learning, gradniku ojačevalnega učenja v naslednjem vrstnem redu:

Kaj je krepitveno učenje?

Oglejmo si naše vsakdanje življenje. Številne naloge opravljamo v okolju in nekatere od njih nam prinesejo nagrade, druge pa ne. Neprestano iščemo različne poti in poskušamo ugotoviti, katera pot bo vodila do nagrad, in na podlagi našega delovanja izboljšujemo strategije za doseganje ciljev. To so moji prijatelji ena najpreprostejših analogij ojačevalnega učenja.





Ključna zanimiva področja:

  • Okolje
  • Ukrepanje
  • Nagrada
  • Država

okrepitveno učenje - q učenje



Okrepitveno učenje je veja strojnega učenja, ki sistemom omogoča, da se učijo iz rezultatov lastnih odločitev. Rešuje določeno vrsto težav, kadar je odločanje zaporedno in je cilj dolgoročen.

Proces Q-učenja

Razumejmo, kaj je učenje Q z našo izjavo tukaj. Pomagal nam bo pri opredelitvi glavnih komponent ojačevalne učne rešitve, to so agenti, okolje, dejanja, nagrade in stanja.

kaj je scipy v pythonu

Analogija tovarne avtomobilov:



Smo v avtomobilski tovarni, napolnjeni z roboti. Ti roboti pomagajo delavcem v tovarni s prenosom potrebnih delov, ki so potrebni za sestavljanje avtomobila. Ti različni deli se nahajajo na različnih lokacijah v tovarni na 9 postajah. Deli vključujejo podvozje, platišča, armaturno ploščo, motor itd. Factory Master je prednostno določil mesto namestitve šasije. Oglejmo si nastavitev tukaj:

Države:

Lokacija, kjer je robot prisoten v določenem primerku, se imenuje njegovo stanje. Ker ga je enostavno kodirati, namesto da bi si ga zapomnili z imeni. Locirajmo lokacijo na številke.

Dejanja:

Ukrepi niso nič drugega kot premiki robotov na katero koli lokacijo. Razmislite, robot je na lokaciji L2 in neposredne lokacije, kamor se lahko premakne, so L5, L1 in L3. Naj to bolje razumemo, če si to vizualiziramo:

Nagrade:

Nagrado bo prejel robot za prehod neposredno iz enega stanja v drugega. Na primer, do L5 lahko pridete neposredno iz L2 in obratno. Torej bo v obeh primerih zagotovljena nagrada v višini 1. Oglejmo si tabelo nagrad:

Spomnite se, kdaj je tovarniški mojster določil lokacijo šasije. Bil je L7, zato bomo to dejstvo vključili v svojo tabelo nagrad. Tako bomo dodelili zelo veliko število (v našem primeru 999) na lokaciji (L7, L7).

Bellmanova enačba

Zdaj predpostavimo, da mora robot iti od točke A do B. Izbral bo pot, ki bo prinesla pozitivno nagrado. Recimo, da zagotovimo nagrado v smislu odtisa, da bo sledila.

Kaj pa, če se robot začne od nekje vmes, kjer lahko vidi dve ali več poti. Robot tako ne more sprejeti odločitve in to se zgodi predvsem zato, ker nima a spomin . Tu nastopi enačba Bellman.

V (s) = največ (R (s, a) + & # 120632V (s ’))

Kje:

  • s = določeno stanje
  • a = dejanje
  • s '= stanje, v katero robot prehaja iz s
  • & # 120632 = popustni faktor
  • R (s, a) = funkcija nagrajevanja, ki sprejme stanje (stanja) in dejanje (a) ter prikaže vrednost nagrade
  • V (s) = vrednost bivanja v določenem stanju

Zdaj bo blok pod ciljem imel nagrado 1, kar je najvišja nagrada. Kaj pa drugi blok? No, tu nastopi diskontni faktor. Predpostavimo diskontni faktor 0,9 in izpolnimo vse bloke enega za drugim.

Postopek odločanja Markov

Predstavljajte si, da je robot na oranžnem bloku in mora priti do cilja. Toda tudi če pride do rahle disfunkcije, se bo robot zmedel, po kateri poti bo šel, namesto da bi šel gor.

kaj je kuhar in lutka

Zato moramo spremeniti postopek odločanja. Mora se Delno naključno in Delno pod nadzorom robota . Delno naključno, ker ne vemo, kdaj bo robot motil in delno pod nadzorom, ker je še vedno odločitev robota. In to je osnova za postopek odločanja o Markovu.

Markovov postopek odločanja (MDP) je distančni stohastični nadzorni proces. Zagotavlja matematični okvir za modeliranje odločanja v situacijah, ko so rezultati delno naključni in deloma pod nadzorom odločevalca.

Torej bomo uporabili prvotno Bellmanovo enačbo in jo spremenili. Česar ne vemo, je naslednje stanje, tj. s ’. Vemo, da so vse možnosti zavoja in spremenimo enačbo.

V (s) = največ (R (s, a) + & # 120632 V (s ’))

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

P (s, a, s ’): Verjetnost prehoda iz stanja s do s ’ z akcijo do

& Sigmas ’P (s, a, s ’) V (s): Naključnost Pričakovanja robota

V (s) = največ (R (s, a) + & # 120632 ((0,8 V (sobagor)) + (0,1 V (sobadol) +….))

Zdaj pa preidimo na Q učenje. Q-Learning postavlja zamisel o oceni kakovosti dejanja, ki se izvede za prehod v neko državo, namesto da bi ugotovili možno vrednost stanja, v katero se preseli.

To dobimo, če vključimo idejo ocenjevanja kakovosti ukrepov za prehod v določeno stanje. Iz posodobljene enačbe Bellman, če jih odstranimo maks komponenta, predvidevamo samo en odtis za morebitno ukrepanje, ki ni nič drugega kot Kakovost akcije.

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

V tej enačbi, ki kvantificira kakovost delovanja, lahko domnevamo, da je V (s) največja možna vrednost Q (s, a). Zamenjajmo torej v (s ’) s funkcijo Q ().

Q (s, a) = (R (s, a) + & # 120632 & Sigmas ’P (s, a, s ’) največ Q (s ’, a’))

storitev zdaj usposabljanje sistema izdajanja vozovnic

Smo le en korak blizu naše končne enačbe Q učenja. Predstavili bomo a Časovna razlika za izračun vrednosti Q glede na spremembe v okolju skozi čas. Kako pa opazimo spremembo Q?

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

Novi Q (s, a) preračunamo z isto formulo in od njega odštejemo prej znane Q (s, a). Torej, zgornja enačba postane:

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

Vprašanjet(s, a) = Trenutna vrednost Q

Vt-1(s, a) = Prejšnja vrednost Q

Vt(s, a) = Qt-1(s, a) + α (R (s, a) + & # 120632 max Q (s ’, a’)-Vprašanjet-1(s, a))

Predstavitev Q učenja: NumPy

Uporabil bom NumPy, da dokaže, kako deluje Q Learning.

1. korak: Uvozi, parametri, stanja, dejanja in nagrade

uvozi numpy kot np gama = 0,75 # Faktor popusta alpha = 0,9 # Učna stopnja location_to_state = {'L1': 0, 'L2': 1, 'L3': 2, 'L4': 3, 'L5': 4, ' L6 ': 5,' L7 ': 6,' L8 ': 7,' L9 ': 8} dejanja = [0,1,2,3,4,5,6,7,8] nagrade = 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,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,0,1,0]])

2. korak: Preslikava indeksov na lokacije

state_to_location = dict ((stanje, lokacija) za lokacijo, stanje v location_to_state.items ())

3. korak: Pridobite optimalno pot z uporabo Q procesa učenja

def get_optimal_route (start_location, end_location): rewards_new = np.copy (rewards) END_STATE = location_to_state [end_location] rewards_new [END_STATE, END_STATE] = 999 Q = np.array (np.Zerole ([9,9])) # Q- Učni proces za i v obsegu (1000): # Pobiranje naključnega stanja current_state = np.random.randint (0,9) # Python izključuje zgornjo mejo playable_actions = [] # Ponavljanje skozi novo matriko nagrad za j v območju ( 9): če je rewards_new [current_state, j]> 0: playable_actions.append (j) # Izberite naključno dejanje, ki nas bo vodilo v naslednje stanje next_state = np.random.choice (playable_actions) # Izračun časovne razlike TD = rewards_new [current_state , next_state] + gama * Q [next_state, np.argmax (Q [next_state,])] - Q [current_state, next_state] # Posodabljanje vrednosti Q z uporabo Bellmanove enačbe Q [current_state, next_state] + = alpha * TD # Inicializirajte optimalno pot z začetno lokacijo route = [start_location] # Inicializirajte next_location z začetno lokacijo next_location = star t_location # Ne vemo natančnega števila ponovitev, potrebnih za dosego končne lokacije, zato bo zanka dobra izbira za iteracijo, medtem ko (next_location! = end_location): # Pridobite začetno stanje start_state = location_to_state [start_location] # Pridobi najvišjo vrednost Q, ki se nanaša na začetno stanje next_state = np.argmax (Q [start_state,]) # Dobili smo indeks naslednjega stanja. Vendar potrebujemo ustrezno pismo. next_location = state_to_location [next_state] route.append (next_location) # Posodobite začetno lokacijo za naslednjo ponovitev start_location = next_location return route

4. korak: Natisnite pot

tiskanje (get_optimal_route ('L1', 'L9'))

Izhod:

S tem smo zaključili Q-učenje. Upam, da ste spoznali delovanje Q učenja skupaj z različnimi odvisnostmi, kot so časovna razlika, Bellmanova enačba in še več.

Edureka vas usposobi za tehnike, kot so nadzorovano učenje, nenadzorovano učenje in obdelava naravnega jezika. Vključuje usposabljanje o najnovejših dosežkih in tehničnih pristopih na področju umetne inteligence in strojnega učenja, kot so globoko učenje, grafični modeli in učenje okrepitve.