S tem kompletom orodij razvijte in primerjajte algoritme učenja za krepitev.

Če ne morete zgraditi modela strojnega učenja iz nič ali nimate infrastrukture, vrzel odpravite zgolj s povezovanjem svoje aplikacije z delujočim modelom.

Umetna inteligenca je tukaj za vsakogar, ki jo uporablja tako ali drugače. Kar zadeva OpenAI Gym, je na voljo veliko raziskovalnih vadbenih področij, na katerih lahko nahranite svoje agente za krepitev učenja.

Kaj je OpenAI Gym, kako deluje in kaj lahko zgradite z njegovo uporabo?

Kaj je OpenAI Gym?

OpenAI Gym je Pythonic API, ki zagotavlja simulirana vadbena okolja za agente za krepitev učenja, da delujejo na podlagi opazovanj okolja; vsako dejanje ima pozitivno ali negativno nagrado, ki se zbere ob vsakem časovnem koraku. Medtem ko si agent prizadeva povečati nagrade, je kaznovan za vsako nepričakovano odločitev.

Časovni korak je diskretni časovni tik za prehod okolja v drugo stanje. Sešteva se, ko agentova dejanja spremenijo stanje okolja.

Kako deluje OpenAI Gym?

Okolja OpenAI Gym temeljijo na Markov Decision Process (MDP), dinamičnem modelu odločanja, ki se uporablja pri učenju s krepitvijo. Iz tega sledi, da nagrade pridejo šele, ko okolje spremeni stanje. In dogodki v naslednjem stanju so odvisni le od trenutnega stanja, saj MDP ne upošteva preteklih dogodkov.

Preden nadaljujemo, se poglobimo v primer za hitro razumevanje aplikacije OpenAI Gym pri učenju s krepitvijo.

Ob predpostavki, da nameravate trenirati avto v dirkalni igri, lahko zavrtite dirkališče v OpenAI Gymu. Pri učenju s krepitvijo lahko vozilo, če zavije desno namesto levo, dobi negativno nagrado -1. Dirkališče se spreminja v vsakem časovnem koraku in lahko postane bolj zapleteno v naslednjih stanjih.

Negativne nagrade ali kazni niso slabe za agenta pri učenju s krepitvijo. V nekaterih primerih ga spodbuja, da hitreje doseže svoj cilj. Tako se avto sčasoma nauči o progi in obvlada njeno navigacijo z uporabo nagradnih nizov.

Na primer, sprožili smo FrozenLake-v1 okolje, kjer je agent kaznovan, ker je padel v ledene luknje, vendar je nagrajen, ker je dobil darilno škatlo.

Naša prva vožnja je povzročila manj kazni brez nagrad:

Vendar pa je tretja ponovitev ustvarila bolj zapleteno okolje. Toda agent je prejel nekaj nagrad:

Zgornji rezultat ne pomeni, da se bo agent v naslednji ponovitvi izboljšal. Čeprav se lahko naslednjič uspešno izogne ​​več luknjam, morda ne bo prejel nagrade. Toda spreminjanje nekaj parametrov lahko izboljša njegovo hitrost učenja.

Komponente OpenAI Gym

OpenAI Gym API se vrti okoli naslednjih komponent:

  • The okoljih kjer usposabljaš agenta. Lahko ga sprožite z uporabo gym.make metoda. OpenAI Gym podpira tudi okolja z več agenti.
  • The ovitki za spreminjanje obstoječega okolja. Čeprav je vsako osnovno okolje privzeto vnaprej ovito, ga lahko spremenite s parametri, kot so max_actions, min_actions in max rewards.
  • An ukrepanje; določa, kaj počne agent, ko opazuje spremembe v svojem okolju. Vsako dejanje v okolju je korak, ki definira agentov odziv na opazovanja. Dokončanje koraka vrne opazovanje, nagrado, informacije in skrajšano ali zaključeno vrednost.
  • The opazovanje; definira agentovo izkušnjo v okolju. Ko je opažanje, sledi dejanje z informacijami. Parameter info je dnevnik izvajanja, ki je priročen za odpravljanje napak. Ko se korak konča, se okolje ponastavi n-krat, odvisno od števila podanih ponovitev.

Kaj lahko naredite z OpenAI Gym?

Ker vam OpenAI Gym omogoča vrtenje učnih okolij po meri, je tukaj nekaj načinov, kako ga uporabiti v resničnem življenju.

1. Igra Simulacija

Izkoristite lahko igralna okolja OpenAI Gym za nagrajevanje želenega vedenja, ustvarjanje igralnih nagrad in povečanje kompleksnosti na stopnjo igre.

2. Prepoznavanje slike

Kjer je količina podatkov, virov in časa omejena, je lahko OpenAI Gym priročen za razvoj sistema za prepoznavanje slik. Na globlji ravni ga lahko prilagodite, da zgradite sistem za prepoznavanje obrazov, ki nagrajuje agenta za pravilno prepoznavanje obrazov.

3. Usposabljanje robotov

OpenAI Gym ponuja tudi intuitivne modele okolja za 3D in 2D simulacije, kjer lahko implementirate želeno vedenje v robote. Robošola je primer prilagojene programske opreme za simulacijo robotov, izdelane z uporabo OpenAI Gym.

4. Trženje

S pomočjo OpenAI Gyma lahko ustvarite tudi trženjske rešitve, kot so oglasni strežniki, roboti za trgovanje z delnicami, roboti za napovedovanje prodaje, sistemi za priporočanje izdelkov in še veliko več. Ustvarite lahko na primer model OpenAI Gym po meri, ki kaznuje oglase na podlagi stopnje prikazov in klikov.

5. Obdelava naravnega jezika

Nekaj ​​načinov uporabe OpenAI Gym v obdelava naravnega jezika so vprašanja z več možnimi odgovori, ki vključujejo dokončanje povedi oz izdelava klasifikatorja neželene pošte. Na primer, agenta lahko naučite, da se nauči različic stavkov, da se izognete pristranskosti pri označevanju udeležencev.

Kako začeti z OpenAI Gym

OpenAI Gym podpira Python 3.7 in novejše različice. Če želite nastaviti okolje OpenAI Gym, boste namestili gimnazija, razcepljena nenehno podprta telovadna različica:

pip namestite telovadnico

Nato zavrtite okolje. Lahko pa ustvarite okolje po meri. Toda začnite z igranjem z obstoječim, da obvladate koncept OpenAI Gym.

Spodnja koda vrti FrozenLake-v1. The env.reset metoda beleži začetno opazovanje:

uvoz gimnazija kot telovadnica
env = gym.make('FrozenLake-v1', render_mode="človek")

opazovanje, info = env.reset()

Nekatera okolja za delovanje zahtevajo dodatne knjižnice. Če morate namestiti drugo knjižnico, jo Python priporoči prek sporočila o izjemi.

Na primer, namestili boste dodatno knjižnico (telovadnica[igrača-besedilo]), da zaženete FrozenLake-v1 okolju.

Gradite na moči OpenAI Gyma

Ena od ovir za razvoj umetne inteligence in strojnega učenja je pomanjkanje infrastrukture in naborov podatkov za usposabljanje. Ko pa želite integrirati modele strojnega učenja v svoje aplikacije ali naprave, je zdaj vse lažje z že pripravljenimi modeli AI, ki letijo po internetu. Medtem ko so nekatera od teh orodij poceni, so druga, vključno z OpenAI Gym, brezplačna in odprtokodna.