Qayta o'rgatish ta'limiga kirish

Siz ishlaydigan ba'zi muhitlar
Ushbu maqola Tensorflow bilan chuqurlashtirilgan bilimlarni oshirish kursining bir qismi . O'quv dasturini bu erda tekshiring

Rejalashtirishni o'rganish - bu Machine Learning-ning muhim turi bo'lib, unda agent atrof-muhitda o'zini qanday tutishni o'rganadi va natijalarni ko'radi.

So'nggi yillarda ushbu qiziqarli tadqiqot sohasida juda ko'p yaxshilanishlarga guvoh bo'ldik. Bunga misol sifatida DeepMind va Deep Q arxitekturasini o'rganish, 2016 yilda Go bilan AlphaGo o'yinlari chempioni, 2016 yilda OpenAI va 2017 yilda PPO g'oliblari va boshqalar kiradi.

Ushbu maqolalar seriyasida biz bugungi kunda kuchaytirishni o'rganish muammolarini hal qilishda ishlatiladigan turli xil arxitekturalarni o'rganishga e'tibor qaratamiz. Bular qatoriga Q -learning, De-Q-learning, Policy Gradients, Aktyor tanqidchilari va PPO kiradi.

Ushbu birinchi maqolada quyidagilarni bilib olasiz:

  • Qayta o'rganish o'rganish nima va bu mukofot markaziy g'oyadir
  • Qayta o'qitishning uchta usuli
  • Chuqur qayta o'rgatishda "chuqur" tushunchasi nimani anglatadi

Chuqur qayta o'rgatish o'quv agentlarini tatbiq etishdan oldin ushbu elementlarni o'zlashtirish juda muhimdir.

Reinforcement Learning g'oyasi shundaki, agent atrof-muhitdan u bilan o'zaro aloqa qilish va harakatlar uchun mukofot olish orqali o'rganadi.

Atrof-muhit bilan o'zaro munosabatlarni o'rganish bizning tabiiy tajribamizdan kelib chiqadi. Farzandingiz xonasida ekanligingizni tasavvur qiling. Siz kaminni ko'rasiz va unga yaqinlashasiz.

Issiq, ijobiy, siz o'zingizni yaxshi his qilasiz (Ijobiy mukofot +1). Siz olov ijobiy narsa ekanligini tushunasiz.

Ammo keyin siz olovga tegishga harakat qilasiz. Juda yaxshi! Bu sizning qo'lingizni yondiradi (Salbiy mukofot -1). Siz shunchaki tushundingizki, olov yetarli masofada bo'lganingizda ijobiy bo'ladi, chunki u issiqlikni keltirib chiqaradi. Ammo unga juda yaqinlashing va siz kuyib ketasiz.

Odamlar o'zaro ta'sir o'tkazish orqali shunday o'rganishadi. Qayta o'qitish - bu harakatni o'rganishning shunchaki hisoblash usuli.

Qayta o'qitish jarayoni

Tasavvur qilaylik, agent Super Mario Brosni o'ynashni ishlaydigan misol sifatida o'rganmoqda. Reinforcement Learning (RL) jarayoni quyidagicha ishlaydigan ko'chadan sifatida modellashtirilishi mumkin:

  • Bizning agentimiz S0 atrof-muhitdan S0-ni oladi (bizning holatlarimizda Super Mario Bros (atrof-muhit) dan o'yinimizning birinchi holatini (holatini) olamiz)
  • Ushbu S0 holatiga asoslanib, agent A0 harakatini amalga oshiradi (agentimiz to'g'ri harakat qiladi)
  • Atrof muhitning yangi S1 holatiga o'tishi (yangi kadr)
  • Atrof muhit agentga R1 mukofotini beradi (o'lik emas: +1)

Ushbu RL ko'chadan davlat, harakatlar va mukofotlar ketma-ketligini chiqaradi.

Agentning maqsadi - kutilgan jamlama mukofotni maksimal darajada oshirish.

Mukofot Gipotezasining markaziy g'oyasi

Nima uchun agentning maqsadi kutilgan jamlama mukofotni maksimal darajada oshirishdir?

Xo'sh, Reinforcement Learning mukofot gipotezasi g'oyasiga asoslanadi. Barcha maqsadlarni kutilayotgan jamg'armani maksimal darajada oshirish bilan tavsiflash mumkin.

Shuning uchun, Reinfor таълимmida eng yaxshi xulq-atvorga ega bo'lish uchun kutilgan jamlangan mukofotni maksimal darajada oshirishimiz kerak.

Har qadam t bosqichida yig'ilgan mukofot quyidagicha yozilishi mumkin:

Qaysi biriga teng keladi:

Tuzatish uchun Per-Lyuk Bekonga rahmat

Ammo, aslida, biz shunchaki mukofotlarni qo'sha olmaymiz. Tez orada (o'yin boshida) keladigan mukofotlar ko'proq ehtimollik bilan kutib olinadi, chunki ular kelajakdagi mukofotdan ko'ra ko'proq taxmin qilinadi.

Aytaylik, sizning agentingiz bu kichkina sichqonchani va sizning raqibingiz mushuk. Sizning maqsadingiz mushuk tomonidan ovqatlanishdan oldin maksimal miqdordagi pishloqni iste'mol qilishdir.

Diagrammada ko'rib turganimizdek, mushukga yaqin pishloqdan ko'ra bizning yonimizdagi pishloqni iste'mol qilish ehtimoli ko'proq (biz mushukka qanchalik yaqin bo'lsa, shunchalik xavfli).

Natijada, mushuk yaqinidagi mukofot, hatto u kattaroq bo'lsa (ko'proq pishloq), chegirma olinadi. Biz uni eya olishimizga amin emasmiz.

Mukofotlarni chegirma qilish uchun biz quyidagicha davom etamiz:

Biz гамma deb nomlangan chegirma stavkasini aniqlaymiz. U 0 dan 1 gacha bo'lishi kerak.

  • Gamma qanchalik katta bo'lsa, chegirma shunchalik kichik bo'ladi. Bu shuni anglatadiki, o'quv agenti uzoq muddatli mukofot haqida ko'proq qayg'uradi.
  • Boshqa tomondan, gamma qanchalik kichik bo'lsa, chegirma ham katta bo'ladi. Bu bizning agentimiz qisqa muddatli mukofot (eng yaqin pishloq) haqida ko'proq qayg'urishini anglatadi.

Kutilayotgan jamlangan mukofotlarimiz:

Tuzatish uchun Per-Lyuk Bekonga rahmat

Oddiy qilib aytganda, har bir mukofot vaqt bosqichi ko'rsatkichiga qarab gamma bilan chegiriladi. Vaqt qadamining oshishi bilan mushuk bizga yaqinlashadi, shuning uchun kelajakdagi mukofot kamroq va kamroq bo'ladi.

Epizodik yoki davom etadigan vazifalar

Vazifa - bu bilimlarni mustahkamlash muammosi misolidir. Biz ikkita vazifaga ega bo'lishimiz mumkin: epizodik va uzluksiz.

Epizodik vazifa

Bunday holda bizda boshlang'ich va tugatish nuqtalari (terminal holati) mavjud. Bu epizodni yaratadi: davlatlar, harakatlar, mukofotlar va yangi shtatlar ro'yxati.

Masalan, Super Mario Bros haqida o'ylab ko'ring, yangi Mario chiqishi bilan boshlanadi va tugaydi: siz o'ldirganingizda yoki darajangiz oxiriga etganingizda.

Yangi qismning boshlanishi

Doimiy vazifalar

Bu abadiy davom etadigan vazifalar (terminal holati yo'q). Bunday holda, agent eng yaxshi harakatlarni tanlashni o'rganishi kerak va bir vaqtning o'zida atrof-muhit bilan o'zaro ta'sir qiladi.

Masalan, avtomatlashtirilgan birja savdosini amalga oshiruvchi agent. Ushbu vazifa uchun boshlang'ich va terminal holati mavjud emas. Agent uni to'xtatishga qaror qilgunimizcha ishlaydi.

Monte Karlo va TD Ta'lim usullari

Bizda ikkita o'rganish usuli mavjud:

  • Qism oxirida mukofot to'plash va kelajakda kutilgan maksimal mukofotni hisoblash: Monte-Karlo uslubi
  • Har qadamda mukofotni hisoblang: vaqtincha farqni o'rganish

Monte-Karlo

Qism tugaganida (agent "terminal holatiga" etadi), agent uning qanchalik yaxshi bajarganligini ko'rish uchun jami mukofotni ko'rib chiqadi. Monte-Karlo uslubida mukofotlar faqat o'yin oxirida olinadi.

Keyin, biz qo'shimcha bilimlar bilan yangi o'yinni boshlaymiz. Agent har bir iteratsiya bilan yaxshiroq qaror qabul qiladi.

Bir misol keltiraylik:

Agar labirent muhitini olsak:

  • Biz har doim bir xil boshlang'ich nuqtadan boshlaymiz.
  • Mushuk bizni yeb qo'ysa yoki biz 20 qadam bossak, biz epizodni to'xtatamiz.
  • Qism oxirida bizda shtat, harakatlar, mukofotlar va yangi shtatlar ro'yxati mavjud.
  • Agent Gtning umumiy mukofotlarini yig'adi (bu qanchalik yaxshi bajarilganligini ko'rish uchun).
  • Keyin V (st) ni yuqoridagi formulaga asosan yangilaydi.
  • Keyin ushbu yangi bilim bilan yangi o'yinni boshlang.

Ko'proq epizodlarni ishlatsangiz, agent yaxshiroq va yaxshiroq o'ynashni o'rganadi.

Vaqtinchalik farqni o'rganish: har qadamda o'rganish

Boshqa tomondan, TD Learning kelajakda kutilgan maksimal mukofotni yangilashni epizodning oxiriga qadar kutib o'tirmaydi: ushbu tajribada yuzaga kelgan St bo'lmagan terminal holatlar uchun V qiymatini yangilaydi.

Ushbu usul TD (0) yoki bir bosqichli TD (har qanday alohida qadamdan keyin qiymat funktsiyasini yangilash) deb nomlanadi.

TD usullari faqat qiymatlar smetasini yangilash uchun faqat keyingi safarni kuting. T + 1 vaqtida ular darhol Rt + 1 mukofotidan va joriy V (St + 1) dan foydalanib, TD nishonini hosil qiladilar.

TD maqsadi - bu taxmin qilish: aslida siz avvalgi V (St) smetasini yangilash orqali uni bir bosqichli maqsadga yo'naltirasiz.

Geologiya-qidiruv ishlari

Qayta o'qitish muammolarini hal qilishning turli xil strategiyalarini ko'rib chiqishdan oldin, biz yana bir muhim mavzuni - qidirish / ekspluatatsiya qilishni to'xtatishimiz kerak.

  • Tadqiqot atrof-muhit haqida ko'proq ma'lumot topadi.
  • Ekspluatatsiya ma'lum ma'lumotlardan mukofotni maksimal darajada oshirish uchun foydalanadi.

Yodingizda bo'lsin, bizning radio agentimiz maqsadi kutilgan jamlama mukofotni maksimal darajada oshirishdir. Biroq, biz umumiy tuzoqqa tushishimiz mumkin.

Ushbu o'yinda bizning sichqonchamiz cheksiz miqdordagi mayda pishloqga ega bo'lishi mumkin (har biri +1). Ammo labirentning yuqori qismida juda katta miqdordagi pishloq (+1000) mavjud.

Ammo, agar biz faqat mukofotga e'tibor qaratadigan bo'lsak, bizning agentimiz hech qachon ulkan pishloq miqdoriga erisha olmaydi. Buning o'rniga, u faqat ushbu manba kichik bo'lsa ham (ekspluatatsiya) bo'lsa ham, eng yaqin mukofot manbalaridan foydalanadi.

Ammo bizning agentimiz biroz izlanish olib borsa, u katta mukofotni topishi mumkin.

Bu biz qidiruv / ekspluatatsiya savdosi deb ataydigan narsadir. Ushbu savdoni hal qilishga yordam beradigan qoidani aniqlashimiz kerak. Kelgusi maqolalarda uni qanday hal qilishning turli usullarini ko'rib chiqamiz.

Qayta o'qitishning uchta usuli

Endi biz kuchaytirishni o'rganishning asosiy elementlarini aniqladik, keling, kuchaytirishni o'rganish muammosini hal qilish uchun uchta yondashuvga o'taylik. Bular qiymatga asoslangan, siyosatga asoslangan va modelga asoslangan.

Qiymatga asoslangan

Qiymatga asoslangan RLda maqsad V (lar) qiymat funktsiyasini optimallashtirishdir.

Qiymat funktsiyasi bu har bir holatda agentning kelajakda kutadigan eng katta mukofotini aytib beradigan funktsiya.

Har bir davlatning qiymati bu agentning kelajakda to'plashi mumkin bo'lgan mukofotning umumiy miqdoridir, shu holatdan boshlab.

Agent har bir bosqichda qaysi holatni tanlashni tanlash uchun ushbu qiymat funktsiyasidan foydalanadi. Agent eng katta qiymatga ega bo'lgan davlatni oladi.

Labirint misolida, biz har bir qadamda maqsadga erishish uchun eng katta qiymatni olamiz: -7, keyin -6, keyin -5 (va hokazo).

Siyosatga asoslangan

Siyosatga asoslangan RLda biz qiymat funktsiyasidan foydalanmasdan siyosat funktsiyalarini to'g'ridan-to'g'ri optimallashtirmoqchimiz.

Siyosat ma'lum bir vaqtdagi agent xatti-harakatlarini belgilaydi.

harakat = siyosat (holat)

Biz siyosat funktsiyasini o'rganamiz. Bu bizga har bir holatni eng yaxshi mos keladigan xaritani xaritalashga imkon beradi.

Bizda ikki xil siyosat mavjud:

  • Deterministik: ma'lum bir davlatdagi siyosat har doim bir xil harakatni qaytaradi.
  • Stoxastik: harakatlar bo'yicha taqsimlanish ehtimolini chiqaradi.

Ko'rinib turibdiki, siyosat har bir qadam uchun qilinadigan eng yaxshi harakatni to'g'ridan-to'g'ri ko'rsatadi.

Modelga asoslangan

Modelga asoslangan RL-da biz atrof-muhitni modellashtiramiz. Bu biz atrof-muhit xatti-harakatlarining modelini yaratganimizni anglatadi.

Muammo shundaki, har bir muhit har xil model vakillikiga muhtoj bo'ladi. Shuning uchun biz kelgusi maqolalarda ushbu turdagi mustahkamlashni o'rganish haqida gapirmaymiz.

Chuqur qayta o'rgatish ta'limini joriy etish

Deep Reforformissions Learning, chuqur bilimlarni kuchaytirish uchun, muammolarni hal qilish uchun chuqur neyron tarmoqlarni joriy etadi, shuning uchun "chuqur" nomi.

Masalan, keyingi maqolada biz Q-Learning (klassik qayta o'rganish) va Deep Q-Learning ustida ishlaymiz.

Farqni ko'rasiz, birinchi yondashuvda biz an'anaviy algoritmdan foydalanib, Q jadvalni tuzish orqali har bir davlat uchun qanday harakatlarni bajarishga yordam beradi.

Ikkinchi yondashuvda biz Neyron tarmog'idan foydalanamiz (davlat asosida mukofotni taxmin qilish uchun: q qiymati).

Udacity tomonidan Q o'rganish daftaridan ilhomlangan sxema

Tabriklaymiz! Ushbu maqolada juda ko'p ma'lumotlar bor edi. Davom etishdan oldin materialni yaxshi tushunganingizga ishonch hosil qiling. Ko'ngil ochish qismiga kirishdan oldin ushbu elementlarni o'zlashtirish juda muhim: video o'yinlarni o'ynaydigan AI yaratish.

Muhim: ushbu maqola chuqurlashtirishni o'rganish bo'yicha bloglardagi bepul xabarlarning birinchi qismi. Qo'shimcha ma'lumot va qo'shimcha manbalar uchun o'quv dasturini ko'rib chiqing.

Keyingi safar "Muzlagan ko'l" o'yinini o'ynashni o'rganadigan Q-o'quv agenti ustida ishlaymiz.

FrozenLake

Agar siz mening maqolamni yoqtirgan bo'lsangiz, iltimos quyida ni bosing, maqolani sizga shuncha yoqdi, shuning uchun boshqalar bu erda Medium-da ko'rishadi. Va menga ergashishni unutmang!

Agar sizda biron bir fikr, sharh, savol bo'lsa, quyida izoh qoldiring yoki menga elektron pochta orqali yuboring: hello@simoninithomas.com yoki menga @ThomasSimonini-ni yuboring.

Xursand bo'ling!

Malaka oshirish kursini chuqur o'rganish:

Biz Tensorflow yordamida chuqur bilimlarni oshirish kursining video versiyasini tayyorlamoqdamiz, bu erda biz bu erda tensorflow bilan amalga oshirish qismiga e'tibor qaratamiz.

1-qism: Armaturani o'rganishga kirish

2-qism: Q-Learning yordamida bilimlarni chuqurroq o'rganish

3-qism: Chuqur Q-Learning-ga kirish: keling Doom o'ynaymiz

3+ Qism: Chuqur o'rganishni takomillashtirish: Ikkita DQN dueli, ustuvor tajribani takrorlash va belgilangan Q-maqsadlar

4-qism: Doom va Cartpole bilan siyosat gradyanlariga kirish

5-qism: Aktyorni tanqid qilish usullari bilan tanishtirish: keling Sonic Kirpi o'ynaymiz!

6-qism: Sonic kirpi 2 va 3 bilan Proksimal siyosatni optimallashtirish (PPO)

7-qism: Qiziqishni o'rganishni o'rganish I qismni osonlashtirdi