Въведение в Q-Learning: засилване на обучението

Тази статия е втората част от поредицата ми „Дълбоко укрепване“. Пълната поредица ще бъде достъпна както в Medium, така и във видеоклипове в моя канал в YouTube.

В първата част на поредицата научихме основите на обучението за подсилване .

Q-обучението е базиран на ценности алгоритъм за обучение при засилване на обучението. В тази статия научаваме за Q-Learning и неговите подробности:

  • Какво е Q-обучение?
  • Математика зад Q-обучението
  • Внедряване с помощта на python

Q-обучение - опростен преглед

Да кажем, че роботът трябва да премине лабиринт и да достигне крайната точка. Има мини и роботът може да движи само по една плочка наведнъж. Ако роботът стъпи на мина, роботът е мъртъв. Роботът трябва да достигне крайната точка за възможно най-кратко време.

Системата за оценяване / награждаване е както по-долу:

  1. Роботът губи по 1 точка на всяка стъпка. Това се прави така, че роботът да поеме по най-краткия път и да достигне целта възможно най-бързо.
  2. Ако роботът настъпи мина, загубата на точки е 100 и играта приключва.
  3. Ако роботът получи мощност ⚡️, той печели 1 точка.
  4. Ако роботът достигне крайната цел, роботът получава 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 за още технически видеоклипове.