Skip to main content

13 Recurrent Neural Networks

Warning

🚧 Not finished. Both lectures have been taught ([53] on 2026-10-21, [54] on 2026-10-23), but the page below was drafted by Claude rather than written up from them. Treat it as a preview: expect gaps and mistakes until it has been reviewed.

Warning

🚧 Երկու դասախոսության սլայդերը պատրաստ են ([53], [54]), նախագիծը՝ նույնպես (առաջադրանք + լուծում)։ Տեսանյութերը դեռ չեն ձայնագրվել։

🎲 Random

TBD

📚 Նյութը

Երկու դասախոսություն (սլայդերը ml/13_rnns/ պանակում)։ Գլուխը կամուրջն է CNN-ից attention․ [48]-[51] (CNN) → [53]/[54] (RNN) → LLM-3 (attention)։

  • [53] RNN Foundations: ինչու՞ է տեքստը հրաժարվում տեղավորվել fixed-size input-ի մեջ։ Shuffle test-ը ցույց է տալիս, թե ինչ է կորչում, երբ հերթականությունն անտեսվում է, իսկ «shoehorn» հնարքները ցույց են տալիս, թե ինչու կիսատ լուծումները չեն աշխատում, ներառյալ ֆիքսված պատուհանը ([48]-ի 1D conv-ը, ch11-ի name inventor-ը)։ Հետո՝ [29]-ի exponential smoothing-ը՝ որպես recurrence, որը դուք արդեն օգտագործել եք, ապա մեկ նոր սլաք (hidden state-ը վերադառնում է իր վրա), մեկ RNN քայլի անատոմիան, ամբողջական forward pass իրական թվերով, ինչու՞ tanh, unrolling (օղակը՝ բացված ժամանակի մեջ), parameter sharing, padding + mask (ինչու՞ pad-երը չեզոք չեն, և ինչպես է mask-ը դա շտկում), և bidirectional RNN-ները։ Երկրորդ կեսը backprop through time-ն է և ճակատագրական թերությունը․ predict-first frame՝ մարող թվի մասին, ապա ամբողջական արտածում մինչև սեփական արժեքները, ինչու՞ է exploding-ը հեշտ կեսը, և empirical ապացույց, որ գրադիենտն իրոք մարում է։ PDF · PDF (նշումներով)
  • [54] The Road to Attention: LSTM-ը որպես գումարման (ոչ բազմապատկման) ուղղում — cell state-ը, մեկ քայլի անատոմիան, ինչու՞ է պետք candidate-ը (\(\tilde{c}\)) և ինչու՞ sigmoid, խաղալիք բջիջ՝ ինչն է սովորվում (կշիռները) և ինչն է հաշվարկվում ամեն բառի վրա, gate-երը գործողության մեջ (հիշողության մեկ բջիջ կարդում է նախադասությունը՝ բառ առ բառ), չորս հավասարումները, ինչու՞ է գումարումը պահում գրադիենտը (forget gate-ը՝ որպես հիշողության կարգավորիչ), և «աշխատու՞մ է» հարցի պատասխանը՝ չափված (և ինչու PyTorch-ի default init-ով LSTM-ը մոռանում է RNN-ի պես արագ)։ Վերջում՝ seq2seq, bottleneck-ը, alignment grid-ը (ամեն քայլի պետք է մուտքի տարբեր մասը, բայց բոլորը ստանում են նույն \(C\)-ն), երկու պատ, և cliffhanger-ը, որը բացվում է LLM-3-ում։ Tokenization-ը և embeddings-ը LLM գլխում են։ PDF · PDF (նշումներով)
TipԵրկու դասի կարմիր թելը

[53]-ը ախտորոշում է հիվանդությունը (գրադիենտը մարում է, ուստի երկար կապերը չեն սովորվում), [54]-ը տալիս է երկու դեղամիջոց՝ LSTM-ը, որը մեղմացնում է այն, և encoder-decoder-ի bottleneck-ը, որը նոր խնդիր է ստեղծում։ Հենց այդ երկրորդ խնդիրն է, որ attention-ը լուծում է — այնպես որ LLM-3-ը պատահական հաջորդ քայլ չէ, այլ պատասխան կոնկրետ հարցի, որը դրվում է այստեղ։

🏡 Տնային - Նախագիծ. «Two networks, one vector»

Encoder-decoder (delayed seq2seq)՝ երկու հայերեն խնդրի վրա․ ամսաթիվը բառերով → 2026-09-05, և առանց բացատների տեքստ (Վիքիպեդիայից) → նույն տեքստը՝ բացատներով։ Ամսաթվերը մոդելը սովորում է 100%-ով, բայց 2050-ականները, որոնք երբեք չի տեսել, գրում է որպես «2005»։ Բացատների խնդրում չափում եք [54]-ի պատը․ սխալը մեծանում է մուտքի երկարությանը զուգընթաց \(C\)-ի ցանկացած չափի դեպքում, իսկ տառ առ տառ աշխատող tagger-ը պատ չունի։

Աշխատեցրեք Google Colab-ում՝ T4 GPU-ով (Runtime → Change runtime type → T4 GPU)․ ամբողջ notebook-ը մոտ 11 րոպե է։

Առաջադրանք: seq2seq_dates_and_spaces.ipynb (download) · view on GitHub

Լուծում: seq2seq_dates_and_spaces_solution.ipynb (download) · view on GitHub

Flag Counter