
Тази статия е втората част от поредицата ми „Дълбоко укрепване“. Пълната поредица ще бъде достъпна както в Medium, така и във видеоклипове в моя канал в YouTube.
В първата част на поредицата научихме основите на обучението за подсилване .
Q-обучението е базиран на ценности алгоритъм за обучение при засилване на обучението. В тази статия научаваме за Q-Learning и неговите подробности:
- Какво е Q-обучение?
- Математика зад Q-обучението
- Внедряване с помощта на python
Q-обучение - опростен преглед
Да кажем, че роботът трябва да премине лабиринт и да достигне крайната точка. Има мини и роботът може да движи само по една плочка наведнъж. Ако роботът стъпи на мина, роботът е мъртъв. Роботът трябва да достигне крайната точка за възможно най-кратко време.
Системата за оценяване / награждаване е както по-долу:
- Роботът губи по 1 точка на всяка стъпка. Това се прави така, че роботът да поеме по най-краткия път и да достигне целта възможно най-бързо.
- Ако роботът настъпи мина, загубата на точки е 100 и играта приключва.
- Ако роботът получи мощност ⚡️, той печели 1 точка.
- Ако роботът достигне крайната цел, роботът получава 100 точки.
Сега очевидният въпрос е: Как да обучим робота, за да достигне крайната цел с най-кратък път, без да стъпваме на мина?

И така, как да решим това?
Представяме ви Q-таблицата
Q-Table е просто изискано име за проста таблица за търсене, където изчисляваме максималните очаквани бъдещи награди за действие във всяко състояние. По принцип тази таблица ще ни насочи към най-добрите действия във всяка държава.

Ще има четири броя действия на всяка плочка без ръб. Когато роботът е в състояние, той може да се движи нагоре или надолу или надясно или наляво.
Така че, нека моделираме тази среда в нашата Q-таблица.
В Q-таблицата колоните са действията, а редовете са състоянията.

Всеки резултат от Q-таблицата ще бъде максималната очаквана бъдеща награда, която роботът ще получи, ако предприеме това действие в това състояние. Това е итеративен процес, тъй като трябва да подобряваме Q-таблицата при всяка итерация.
Но въпросите са:
- Как да изчислим стойностите на Q-таблицата?
- Налични ли са стойностите или предварително дефинирани?
За да научим всяка стойност на Q-таблицата, използваме алгоритъма Q-Learning.
Математика: Q-Learning алгоритъм
Q-функция
В Q-функцията използва уравнението Белман и се два входа: състояние ( S ) и действие ( а ).

Използвайки горната функция, получаваме стойностите на Q за клетките в таблицата.
Когато започнем, всички стойности в Q-таблицата са нули.
Има итеративен процес на актуализиране на стойностите. Когато започнем да изследваме околната среда , Q-функцията ни дава все по-добри приближения чрез непрекъснато актуализиране на Q-стойностите в таблицата.
Сега нека разберем как се извършва актуализирането.
Представяне на процеса на Q-обучение алгоритъм

Всяка от цветните кутии е една стъпка. Нека разберем всяка от тези стъпки в детайли.
Стъпка 1: инициализирайте Q-таблицата
Първо ще изградим Q-таблица. Има n колони, където n = брой действия. Има m редове, където m = брой състояния. Ще инициализираме стойностите на 0.


В нашия пример за робот имаме четири действия (a = 4) и пет състояния (s = 5). Така че ще изградим таблица с четири колони и пет реда.
Стъпки 2 и 3: изберете и извършете действие
Тази комбинация от стъпки се прави за неопределено време. Това означава, че тази стъпка се изпълнява до момента, в който спрем обучението или тренировъчният цикъл спре, както е определено в кода.
Ще изберем действие (а) в състоянието (ята) въз основа на Q-таблицата. Но, както бе споменато по-рано, когато първоначално епизодът започне, всяка Q-стойност е 0.
Така че сега в играта влиза концепцията за проучване и компромис при експлоатация. Тази статия има повече подробности.
Ще използваме нещо, наречено epsilon алчна стратегия .
В началото нивата на епсилон ще бъдат по-високи. Роботът ще изследва околната среда и ще избира на случаен принцип действия. Логиката зад това е, че роботът не знае нищо за околната среда.
Докато роботът изследва околната среда, скоростта на епсилон намалява и роботът започва да експлоатира околната среда.
По време на процеса на изследване, роботът постепенно става все по-уверен в оценката на Q-стойностите.
За примера на робота има четири действия, от които можете да избирате : нагоре, надолу, наляво и надясно.Започваме обучението сега - нашият робот не знае нищо за околната среда. Така че роботът избира произволно действие, кажете правилно.

Вече можем да актуализираме Q-стойностите за това, че сме в началото и се движим вдясно, използвайки уравнението на Белман.
Стъпки 4 и 5: оценете
Сега предприехме действие и наблюдавахме резултат и награда. Трябва да актуализираме функцията Q (s, a).

В случая на играта робот, за да повторите структурата за оценяване / награждаване е:
- мощност = +1
- мина = -100
- край = +100


Ще повтаряме това отново и отново, докато обучението не бъде спряно. По този начин Q-таблицата ще бъде актуализирана.
Внедряване на Python на Q-Learning
Концепцията и изпълнението на кода са обяснени в моето видео.
Абонирайте се за моя канал в YouTube За повече видеоклипове с AI: ADL .
Най-накрая ... нека да обобщим
- Q-Learning е базиран на стойности алгоритъм за засилване на обучението, който се използва за намиране на оптималната политика за избор на действие, използвайки Q функция.
- Нашата цел е да увеличим максимално стойността на функцията Q.
- Q таблицата ни помага да намерим най-доброто действие за всяко състояние.
- Той помага да се увеличи максимално очакваната награда, като се избере най-доброто от всички възможни действия.
- Q (състояние, действие) връща очакваната бъдеща награда за това действие при това състояние.
- Тази функция може да бъде оценена с помощта на Q-Learning, която итеративно актуализира Q (s, a), използвайки уравнението на Bellman.
- Първоначално изследваме околната среда и актуализираме Q-таблицата. Когато Q-таблицата е готова, агентът ще започне да експлоатира околната среда и ще започне да предприема по-добри действия.
Следващият път ще работим върху задълбочен пример за Q-обучение .
Дотогава се наслаждавайте на AI?
Важно : Както беше посочено по-рано, тази статия е втората част от моята поредица „Дълбоко подсилване“. Пълната поредица ще бъде достъпна както в статии на Medium, така и във видеоклипове в моя канал в YouTube.
Ако харесате статията ми, моля, кликнете върху? т о ми помогне останете мотивирани да пишат статии. Моля, следвайте ме в M edium и други социални медии:



Ако имате някакви въпроси, моля, уведомете ме в коментар по-долу или в Twitter .
Абонирайте се за моя канал в YouTube за още технически видеоклипове.