2024-Q1-AI-M 11.Laika rindu uzdevumi, Rekurentie neironu tīkli, RNN, LSTM

 

11.1. Video / Materiāli

Video: https://youtube.com/live/-TkcUjdz7sQ?feature=share

Jamboard: https://jamboard.google.com/d/1DilGdMP6RJzNDtOx_YeobyBvB7R6_B2VmmSFfYMZXrc/edit?usp=sharing

Materials:
https://calvinfeng.gitbook.io/machine-learning-notebook/supervised-learning/recurrent-neural-network/recurrent_neural_networks/ https://lanwuwei.github.io/courses/SP19/3521_slides/11-Recurrent_Neural_Networks_2.pdf https://danijar.com/tips-for-training-recurrent-neural-networks/ https://medium.com/datadriveninvestor/attention-in-rnns-321fbcd64f05 https://arxiv.org/abs/1610.09513 https://wiki.pathmind.com/word2vec

 


 

RTMP stream key 14cw-vw7p-7qmv-mrvt-23h4

 

Finished source code: https://share.yellowrobot.xyz/quick/2024-4-15-DC954988-316C-4979-B98D-A79DD96BC944.zip

 

Saturs:

  1. RNN (shared weights)

  2. Language modeling task

  3. Embedding dict

  4. [END] token

  5. ⚠️ [ANY] būtu labi pielikt token any pie visu vārdu vietā, kuri atkārtojas mazāk kā 3 reizes, lai saglabātu teikumu skaitu lielāku datu kopā

  6. Train VS Inference many-to-one (inference), many-to-many (training)

  7. Izstāstīt dažādu garumu teikumu apstrādi vienā batch


 

Iepriekšējā gada lekcija

Video https://youtu.be/-nuoRn1ohzI

Jamboard: https://jamboard.google.com/d/1nEQLzDVjXrK7RfkxifA9jlyVBLTA-x3vQPIFOYuQ1UU/edit?usp=sharing


 

11.2. Implementēt Vanilla RNN

Sekojot video norādēm 11.1. implementēt Vanilla RNN, neizmantojot iebūvētās RNN funkcijas torch.nn.

Iesniegt pirmkodu un screenshots ar rezultātiem.

Sagatave:

http://share.yellowrobot.xyz/quick/2023-4-3-3F68F1D8-DF36-4D8C-BB56-F0407D2A6512.zip


11.3 Implementēt GRU

Izmantojot sagatavi 12.1. uzdevumā un norādes 12.2 uzdevumā, implementēt GRU modeli. Aizstāt RNN šūnu ar jūsu izveidoto. Nedrīkst izmantot iebūvētās torch.nn.GRU utt. Iesniegt pirmkodu un screenshots ar rezultātiem.

GRU vienādojums: http://share.yellowrobot.xyz/upic/8f34c76492d8b3a520255d023e962dc9_1680532330.jpg


 

11.4 Mājasdarbs - Implementēt LSTM

Izmantojot sagatavi 12.1. uzdevumā un norādes 12.2 un 12.3 uzdevumā pārveidot pirmkodu tā, lai tiktu implementēts sekojošais:

  1. Izveidot LSTM. Aizstāt RNN šūnu ar jūsu izveidoto. Nedrīkst izmantot iebūvētās torch.nn.LSTM utt.

  2. Implementēt svaru saglabāšanu pie zemākās test_loss vērtības

  3. Implementēt atsevišķu skirptu, kur var ielādēt modeļa svarus un lieotājs konsolē var ierakstīt teikuma sākumu no vairākiem vārdiem un modelis prognozēs teikuma beigas

  4. Implementēt iebūvēto torch.nn.LSTM modeli un salīdzināt rezultātus ar paša veidoto modeli

  5. Iesniegt kodu un screenshots ar apmācību un rollout rezultātiem

LSTM vienādojums: http://share.yellowrobot.xyz/upic/70d53425be0fec7c7dc0ebb246b6fecb_1680532356.jpg

 


 

Materiāli

RNN exectution

02AD359D-FED7-4551-96B4-4959BF2AF1B7

57EEBF66-AEC4-4E35-A77D-ED3657CE7AC6

 

Language modelling

image-20231215133854091

 

8D97DEFB-AC17-4604-825A-B0AA32C4F178

2AF994F9-72C4-4BBA-9FD6-130254DA0854

Train VS Inference one-to-many

C334D63E-8E6F-4EA1-8AE7-06E749334940

 

Embeddings / Word tokens

6D107ECC-A1EF-4483-94E5-34D981805B1A

EB46FA4B-0CF5-4437-A27E-AB5ACA4EBF3D

image-20220426224626781

 

image-20220426224647903

A2EE798B-61DE-4059-9BC8-EB447F0186F3

 

image-20220426224706104

 

Model structure

RNN cell

A0C7C685-69ED-4DE4-B94D-338DD46AB1A7

 

Loss function CCE

(2)C=1.0ycountiycountjLCCE=1NC[y]log(y[y]+ϵ)

 

27348300-C0F3-46E0-A683-BBAF9F63608E

Different lengths in same batch

8FD81F0E-55DC-4DC0-A700-2F182FEC8D58

 

Dropout Regularization against overfit

76A5CDE8-117C-4957-B60E-7BBDE6D74D4E

 

LSTM

image-20220426224748074

image-20220426224803496

D2BEC799-F5CF-4CE1-B6B9-EDF8E476081E

 

 

SOTA LSTM

image-20220426224816486

Untitled (102)

Untitled (101)

Untitled (100)

Untitled (99)

Untitled (98)

Untitled (97)

Untitled (96)

Untitled (95)

Untitled (94)

Untitled (93)

Untitled (92)

Untitled (91)