11 Reinforcement Learning

Warning

🚧 Not finished. This chapter has not been taught yet, and the page below was drafted by Claude rather than written up from a delivered lecture. Treat it as a preview: expect gaps and mistakes until it has been reviewed.

Warning

🚧 Յոթ դասախոսության սլայդերը պատրաստ են, գործնականի նախագիծը՝ նույնպես (ներքևում)։ Տեսանյութերը դեռ չեն ձայնագրվել։

🎲 Random

TBD

📚 Նյութը

Յոթ դասախոսություն (սլայդերը ml/ch11_rl/ պանակում)։ Գլուխը կառուցված է այնպես, որ ամեն դասը հիմնվի նախորդի վրա․ վերջին երկուսը՝ LLM-ների մասին, պարզապես կիրառում են 1–4 դասերի հավասարումները տեքստի վրա։

  • 1 — The RL problem — ինչո՞ւ ոչ մի բան 1–10 գլուխներից այստեղ չի աշխատում։ Bandit-ներ (regret, UCB, Thompson sampling), MDP, Bellman-ի հավասարումը՝ ամբողջական արտածմամբ, ապա dynamic programming՝ policy evaluation, policy iteration, value iteration և GPI։ PDF
  • 2 — Learning from experience — \(P\)-ն վերցնում են ձեռքից։ Monte Carlo ընդդեմ TD-ի, \(n\)-step և TD(\(\lambda\)), SARSA ընդդեմ Q-learning-ի (cliff walking), և importance sampling՝ արտածմամբ։ Այդ հարաբերությունն է, որ չորս դաս անց դառնում է PPO-ի ratio-ն։ PDF
  • 3 — Deep value-based RL — աղյուսակը չի տեղավորվում։ Function approximation, deadly triad-ը, DQN-ը և իր երկու հնարքը, ապա Double/Dueling/PER/Rainbow։ Ազնիվ մասը՝ 50 մլն կադր մեկ խաղի համար և seed-երի խնդիրը։ PDF
  • 4 — Policy gradients — policy gradient թեորեմը արտածված (log-derivative trick), REINFORCE, baseline-ի թեորեմը (նույնպես արտածված), actor-critic, GAE, ապա TRPO → PPO-ն վեց frame-ով, ոչ թե մեկով։ Վերջում՝ DDPG/TD3/SAC։ PDF
  • 5 — Planning, self-play, and the real world — MCTS (և UCT-ն՝ որպես 1-ին դասի UCB-ն ծառի վրա), AlphaGo → AlphaZero → MuZero, self-play, ապա այն, ինչ իրականում պատահում է․ offline RL, off-policy evaluation, imitation learning (BC = SFT), reward shaping և the bitter lesson։ PDF
  • 6 — RL for LLMs I: alignment — լեզվական մոդելը policy է։ Bradley-Terry, reward model, RLHF-ը KL leash-ով, ապա DPO-ն ամբողջությամբ արտածված՝ փակ լուծումից մինչև loss (որտեղ \(Z(x)\)-ը կրճատվում է)։ Վերջում՝ IPO, KTO, ORPO, SimPO։ PDF
  • 7 — RL for LLMs II: reasoning — RLVR, GRPO-ն արտածված PPO-ից (ջնջում ենք critic-ը, baseline-ը դառնում է խմբի միջինը), DeepSeek-R1, ապա 2025-ի բոլոր խափանումներն ու դրանց լուծումները՝ Dr. GRPO (length bias), DAPO (entropy collapse, մեռած խմբեր), GSPO (sequence-level ratio, MoE)։ Plus PRM ընդդեմ ORM-ի և agentic RL։ PDF
Note

Գլխի առաջին տարբերակը՝ L32 — Reinforcement Learning (44 էջ, մեկ դասախոսություն), պահվում է որպես արխիվ։ Վերևի յոթ դասը փոխարինում են այն․ ամբողջ բովանդակությունը տեղափոխված է, plus bandit-ներ, dynamic programming, MC/TD, importance sampling, deadly triad-ը, DQN-ի ընտանիքը, TRPO, SAC, MCTS/MuZero, offline RL, imitation learning, RLHF-ը մանրամասն, DPO-ն, GRPO-ն և 2025-ի ողջ շարքը։

TipԻնչու է այս դասը գոյություն ունի

ml/llm_training/-ը 12 հոդվածի սեմինար է՝ կառուցված PPO, GRPO, DPO, InstructGPT և R1-ի վրա — բոլորը reinforcement learning։ Բայց RL-ը դասընթացում ոչ մի տեղ չէր դասավանդվում, այսինքն ուսանողները կարդում էին այդ հոդվածները առանց հիմքի։ Այս դասը փակում է հենց այդ բացը, և ավարտվում է ուղիղ հղումով դեպի այդ գլուխը։

Ինչ կա դասի մեջ, որ սկզբնաղբյուրում չկար․

  • «Reward-ը loss չէ» — ուշացած, նոսր և ոչ-դիֆերենցելի ազդանշան, plus այն, որ տվյալները կախված են քաղաքականությունից (i.i.d. ենթադրությունը վերանում է)։
  • Ձեռքով հաշված Q-update իրական թվերով։
  • Exploration vs exploitation — \(\epsilon\)-ի գինը ճշգրիտ հաշված մեր gridworld-ի վրա (0.208 → 0.152 → −0.418)։
  • Predict-first frame — ո՞ր ուղղությամբ է նայում փոսի տակի վանդակը։ (Պատասխանը՝ ձախ, ոչ թե վեր — քանի որ 10% սայթաքումը փոսի մեջ է գցում։)
  • The bitter lesson (Sutton, 2019) — և՛ ինչու է ճիշտ, և՛ ինչու չի նշանակում «կառուցվածքը երբեք չի օգնում»։

Բոլոր թվերը չափված են, ոչ թե պնդված․ figure-ները գեներացվում են py_src/-ից։ Օրինակ՝ baseline-ը REINFORCE-ի սխալ ուղղության հաճախությունը իջեցնում է 33.9%-ից 0%։

Եվ agent-ը իսկապես սովորում է։ py_src/q_learning_demo.py-ում tabular Q-learning-ը նույն gridworld-ի վրա տեսնում է միայն sampled անցումներ (ոչ մի P(s'|s,a)), և՝

  • 135-րդ էպիզոդին նրա քաղաքականությունը համընկնում է ճշգրիտ պատասխանի հետ, վերջում՝ 12/13 վանդակ ճիշտ (մեկը իսկական «ոչ-ոքի» է՝ 0.018 տարբերությամբ, և ամեն դեպքում փոսի կողքով չի անցնում)։
  • Սխալը կանգ է առնում ~0.12-ի վրա, ոչ թե 0։ Պատճառը՝ 13/13 վիճակ գերագնահատված է (միջինը +0.079) — դա maximisation bias-ն է, և դասը դրա համար առանձին frame ունի (plus Double Q-learning)։

📝 Թեմայի վերաբերյալ հարցաշար (Google Form): TBD

🏡 Գործնական

Նախագիծ — սովորել «X-O» self-play-ով, հետո գնահատել կատարյալ խաղի դեմ 🧀🧀

Գործնականի պարապմունքի համար։ Ինչու հենց «X-O»․ դա ամենամեծ խաղն է, որը դեռ լուծվում է ճշգրիտ minimax-ով, ուստի ամեն դիրքի համար ունենք ճշմարիտ պատասխան։ Ճիշտ այնպես, ինչպես դասին Q-learning-ը համեմատում էինք value iteration-ի V*-ի հետ։

Ինը մաս, tabular, առանց լրացուցիչ գրադարանների, ~5 րոպե CPU-ի վրա։ Ամենակարևոր պահերը․

  • Ծուղակը (Part 3). Պատահական հակառակորդի դեմ սովորած agent-ը հաղթում է 95.4% (X) և 88.0% (O) դեպքերում։ Հետո կատարյալ խաղացողի դեմ՝ որպես O պարտվում է 16.6%, մինչդեռ self-play-ի agent-ը՝ 0%։ Win rate-ը թույլ հակառակորդի դեմ դա չէր ցույց տալիս։
  • Self-play-ը լուծում է դա. կատարյալ խաղի դեմ 100% ոչ-ոքի և՛ X-ով, և՛ O-ով։
  • Ground truth-ով գնահատում. minimax-ը լուծում է բոլոր 5478 դիրքերը, ուստի ամեն քայլը ստուգվում է․ 93.5% ընդդեմ 99.6% օպտիմալ քայլերի։ Բայց ավելի հետաքրքիրն այն է, թե որտեղ են սխալները — պատահականի դեմ սովորածինը ամենավատն է բացման փուլում, ոչ թե վերջում, որովհետև պատահական հակառակորդը երբեք չի պատժում վաղ սխալը։
  • ε = 0-ի փլուզումը. 120,000 խաղում այցելում է ընդամենը 41 դիրք 4520-ից (խաղի ծառի <1%-ը)։
  • Reward shaping-ի սահմանը. նույն էվրիստիկան, միայն մեծությունը փոխած․ bonus 0.3 → գործնականում ոչինչ չի փոխում, bonus 3.0 → պարտվում է կատարյալ խաղին 50.7% (X) և 62.4% (O), որովհետև «արգելափակելը» սկսում է ավելի շատ վճարել, քան հաղթելը։

Լուծումը (ամբողջական walkthrough): L32_tictactoe_project_solution.ipynb (download) · view on GitHub

Flag Counter