
Ez a cikk a „Mély megerősítő tanulás” sorozatom második része. A teljes sorozat elérhető lesz mind a Medium-on, mind pedig a YouTube-csatornám videóin.
A sorozat első részében megtanultuk a megerősítő tanulás alapjait .
A Q-learning egy értékalapú tanulási algoritmus a megerősítő tanulásban. Ebben a cikkben megismerhetjük a Q-Learninget és annak részleteit:
- Mi az a Q-Learning?
- Matematika a Q-Learning mögött
- Megvalósítás python használatával
Q-Learning - leegyszerűsített áttekintés
Tegyük fel, hogy egy robotnak át kell lépnie egy labirintuson, és el kell érnie a végpontot. Aknák vannak , és a robot egyszerre csak egy lapkát tud mozgatni. Ha a robot egy aknára lép, a robot halott. A robotnak a lehető legrövidebb időn belül el kell érnie a végpontot.
A pontozási / jutalmazási rendszer a következő:
- A robot minden lépésnél elveszít 1 pontot. Ez úgy történik, hogy a robot a legrövidebb utat járja be, és a lehető leggyorsabban érje el a célt.
- Ha a robot rálép egy aknára, a pontveszteség 100, és a játék véget ér.
- Ha a robot áramot kap ⚡️, akkor 1 pontot kap.
- Ha a robot eléri a végcélt, a robot 100 pontot kap.
Most nyilvánvaló a kérdés: Hogyan képezzük ki a robotot, hogy a legrövidebb úton érje el a végcélt anélkül, hogy az aknára lépne?

Szóval, hogyan oldjuk meg ezt?
A Q-tábla bemutatása
A Q-Table csak egy fantázianév egy egyszerű keresőtáblának, ahol kiszámoljuk az egyes államok cselekvései várható jövőbeni maximális hasznát. Alapvetően ez a táblázat az egyes államok legjobb cselekedeteihez vezet.

Minden élen kívüli csempénél négy műveletszám lesz. Ha egy robot olyan állapotban van, akkor mozoghat felfelé vagy lefelé, vagy jobbra vagy balra.
Tehát, modellezzük ezt a környezetet a Q-táblázatunkban.
A Q-táblázat oszlopai a műveletek, a sorok pedig az állapotok.

Minden Q-táblázat pontszáma lesz a maximálisan várható jövőbeni jutalom, amelyet a robot kap, ha ezt a műveletet végrehajtja ebben az állapotban. Ez egy iteratív folyamat, mivel minden egyes iterációnál javítanunk kell a Q-táblázatot.
De a kérdések a következők:
- Hogyan számoljuk ki a Q-tábla értékeit?
- Elérhetőek vagy előre definiált értékek?
A Q-tábla egyes értékeinek megismeréséhez a Q-Learning algoritmust használjuk.
Matematika: a Q-Learning algoritmus
Q-függvény
A Q-függvény a Bellman-egyenletet használja, és két bemenetet vesz fel: állapot ( ok ) és művelet ( a ).

A fenti függvény segítségével megkapjuk a táblázat celláinak Q értékeit .
Amikor elkezdjük, a Q-tábla összes értéke nulla.
Az értékek frissítésének iteratív folyamata van. Amint elkezdjük felfedezni a környezetet , a Q-függvény egyre jobb közelítéseket ad nekünk a táblázat Q-értékeinek folyamatos frissítésével.
Most értsük meg, hogyan zajlik a frissítés.
A Q-learning algoritmus folyamatának bemutatása

A színes dobozok mindegyike egy lépés. Értsük meg részletesen ezeket a lépéseket.
1. lépés: inicializálja a Q-táblázatot
Először felépítünk egy Q táblázatot. N oszlop van, ahol n = a műveletek száma. Vannak m sorok, ahol m = állapotok száma. Az értékeket 0-nál inicializáljuk.


Robot példánkban négy műveletet (a = 4) és öt állapotot (s = 5) végezhetünk. Tehát felépítünk egy négy oszlopos és öt soros táblázatot.
2. és 3. lépés: válasszon és hajtson végre egy műveletet
A lépések ezen kombinációja meghatározatlan ideig történik. Ez azt jelenti, hogy ez a lépés addig tart, amíg le nem állítjuk az edzést, vagy az edzéskör leáll a kódban meghatározottak szerint.
Az állapot (ok) ban a Q-táblázat alapján választunk egy műveletet (a). De, mint korábban említettük, az epizód kezdetekor minden Q-érték 0.
Tehát most a feltárás és a kizsákmányolás kompromisszumának fogalma lép életbe. Ez a cikk további részleteket tartalmaz.
Az ún . Epsilon kapzsi stratégiát fogjuk használni .
Kezdetben az epsilon aránya magasabb lesz. A robot feltárja a környezetet, és véletlenszerűen választja meg a műveleteket. Ennek logikája az, hogy a robot semmit sem tud a környezetről.
Amint a robot felfedezi a környezetet, az epsilon sebessége csökken, és a robot elkezdi kiaknázni a környezetet.
A feltárás folyamata során a robot fokozatosan egyre magabiztosabbá válik a Q-értékek becslésében.
A robot példájára négy művelet közül választhatunk : fel, le, balra és jobbra.Most kezdjük az edzést - robotunk nem tud semmit a környezetről. Tehát a robot véletlenszerű akciót választ, mondjuk jól.

A Bellman-egyenlet segítségével most frissíthetjük a Q-értékeket az elején és jobbra haladáshoz.
4. és 5. lépés: értékelje
Most cselekedtünk, és megfigyeltük az eredményt és a jutalmat. Frissítenünk kell a Q (s, a) függvényt.

A robot játék esetében meg kell ismételni a pontozás / jutalom struktúráját:
- teljesítmény = +1
- az enyém = -100
- vége = +100


Ezt addig ismételjük, amíg a tanulás le nem áll. Ily módon frissül a Q-tábla.
A Q-Learning Python implementációja
A koncepciómat és a kód megvalósítását a videómban fejtem ki.
Feliratkozás YouTube csatornámra További AI videókért: ADL .
Végre ... összegezzük újra
- A Q-Learning egy értékalapú megerősítő tanulási algoritmus, amelyet arra használnak, hogy megtalálják az optimális műveletválasztási politikát egy Q függvény segítségével.
- Célunk a Q értékfüggvény maximalizálása.
- A Q táblázat segít megtalálni az egyes államok számára a legjobb cselekvést.
- Segít maximalizálni a várható jutalmat azáltal, hogy kiválasztja az összes lehetséges akció közül a legjobbat.
- Q (állapot, cselekvés) az adott cselekvés várható jövőbeni jutalmát adja vissza abban az állapotban.
- Ezt a funkciót a Q-Learning segítségével lehet megbecsülni, amely a Bell ( X) egyenlet segítségével iteratív módon frissíti a Q (s) -t.
- Kezdetben feltárjuk a környezetet és frissítjük a Q táblázatot. Amikor a Q-tábla készen áll, az ügynök elkezdi kiaknázni a környezetet, és jobb lépéseket tesz.
Legközelebb egy mély Q-tanulási példán dolgozunk .
Addig élvezze az AI-t?
Fontos : Mint korábban említettük, ez a cikk a „Deep Reinforcement Learning” sorozatom második része. A teljes sorozat elérhető lesz a Medium cikkeiben és a YouTube-csatornám videóiban.
Ha tetszett a cikkem, kérjük, kattintson a? t o segítsen nekem motivált maradjon, hogy írjon cikkeket. Kérjük, kövessen engem a M ediumban és más közösségi médiában:



Ha bármilyen kérdése van, kérjük, tudassa velem az alábbi megjegyzésben vagy a Twitteren .
Feliratkozás YouTube-csatornámra további technikai videókért.