2024-Q4-AI-M 6. Regresijas uzdevumi, Klasifikācijas uzdevumi, categorical inputs - PyTorch

 

 

 

 

6.1. Video / Materials (19 Mar 18:00)

Zoom/Video: https://zoom.us/j/3167417956?pwd=Q2NoNWp2a3M2Y2hRSHBKZE1Wcml4Zz09

Whiteboard: https://www.figma.com/board/1dWhIH4o2s3Adhr0ISyywI/2024-Q4-AI-M-6.-Regresijas-uzdevumi%2C-Klasifik%C4%81cijas-uzdevumi%2C-categorical-inputs---PyTorch?node-id=0-1&t=6QlchMkPmtYDaejC-1

Materials: https://pytorch.org/tutorials/beginner/nlp/deep_learning_tutorial.html

 

Whiteboard iedotas tiesības gustavse@gmail.com

Iepriekšējā gada Video: https://youtu.be/Ejv260iiVfo

 

 


 

6.2. Implementēt PyTorch versiju regresijas uzdevumam

Izmantot norādes video 6.1 un sagatavi. Implementēt:

  1. Kategoriskajiem ievades datiem izveidot Embedding Matrix

  2. Implementēt MSE kļūdas funkciju

  3. Implementēt Huber loss kā kļūdas funkciju

    (1)Lδ(y,y)=δ2(1+(yyδ)21)

     

Iesniegt screenshot ar rezultātiem un pirmkodu!

Sagatave:

https://share.yellowrobot.xyz/quick/2025-3-11-732576A0-39F9-4E54-95B5-B3B96D7C9E2E.zip

 


6.3. Implementēt PyTorch versiju klasifikācijas uzdevumam

Uzdevumi:

  1. Implementēt Cross-Entropy Loss (nedrīkst izmantot iebūvēto loss funkciju)

    (2)L=i=1Cwclass,iyilogy^i

     

  2. Implementēt Accuracy (precizitātes) metriku un grafiku

    (3)Accuracy=1ni=1n1(yi=y^i)

     

  3. Implementēt Confusion matrix

    Confusion Matrix

    https://encord.com/glossary/confusion-matrix/

    https://dev.to/overrideveloper/understanding-the-confusion-matrix-264i

     

  4. Implementēt F1-score metriku

    (4)Precision=(yy^)y^Recall=(yy^)yF1=2PrecisionRecallPrecision+RecallF1=2TP2TP+FP+FN

     

Iesniegt screenshot ar rezultātiem un pirmkodu!

Sagatave: https://share.yellowrobot.xyz/quick/2025-3-11-887C70B9-A83E-4476-9478-DAA4A03E72FF.zip


Class weights methods

CleanShot 2025-03-11 at 22.12.41@2x

CleanShot 2025-03-11 at 22.13.10@2x


6.4. Implementēt PyTorch binārās klasifikācijas uzdevumu

Uzdevumi:

  1. Implementēt Binary-Cross-Entropy Loss (nedrīkst izmantot iebūvēto loss funkciju)

    (5)LBCE=wclass[ylog(y^)+(1y)log(1y^)]

     

  2. Implementēt BatchNormalization funkciju PyTorch, neizmantojot gatavu funkciju image-20250311220740098

Iesniegt screenshot ar rezultātiem un pirmkodu!

Sagatave:

https://share.yellowrobot.xyz/quick/2025-3-11-D20D5C91-C312-4F7C-A30D-36B6CC4CFF57.zip

 

🔴 ^ Izskaidrot, ka BatchNorm palīdz novērst dead neurons


 

6.5. Mājasdarbs - Implementēt numpy versiju klasifikācijas uzdevumam

Uzdevumi:

  1. Implementēt SoftMax funkciju un tās atvasinājumu

    (6)SoftMax(x)=exik=1Kexk=[a0a1a2a3a4]SoftMax(x)x=[a0(1a0)a0a1a0a2a0a3a0a4a1a0a1(1a1)a1a2a1a3a1a4a2a0a2a1a2(1a2)a2a3a2a4a3a0a3a1a3a2a3(1a3)a3a4a4a0a4a1a4a2a4a3a4(1a4)]

     

  2. Implementēt CCE loss funckiju un tās atvasinājumu

    (7)LCCE(y,y)=1Nylog(y+ϵ)LCCE(y,y)y=1Ny1y=1Nyy=1Nyy+ϵ

     

Iesniegt screenshot ar rezultātiem un pirmkodu!

Sagatave:

https://share.yellowrobot.xyz/quick/2025-3-11-C9DF4709-2854-4749-8F89-A43546F1F562.zip

 


CleanShot 2025-03-11 at 21.36.52@2x

 

CleanShot 2025-03-11 at 21.36.43@2x

 

 

CleanShot 2025-03-11 at 21.36.31@2x

 

CleanShot 2025-03-11 at 21.36.17@2x

CleanShot 2025-03-11 at 21.35.17@2x

 

CleanShot 2025-03-11 at 21.33.21@2x

 

Modeļa apmācības “recepte”

  1. Dati

    1. Sadalīt Apmācību, Testa un Validācijas datu kopas

    2. Atrast vajadzīgajam uzdevumam vienkāršāko datu kopu un apmācīt modeli uz tās, iegūstot augstāko rezultātu. Piemēram, ja ir jāatpazīst zari dēļu fotogrāfijās, vispirms apmācīt modeli ar COCO datu kopu. Vai tabulāriem datiem ar sklearn sintētiskajām datu kopām

    3. Datu ielādes pirmkodā ieviest Augmentācijas, Normalizācijas

  2. Modelis

    1. Sākt ar jau iepriekš apmācītu modeli vai modeli, kuram ir zināma arhitektūra un rezultāti, nevis izstrādāt uzreiz savu

    2. Sakt ar pēc iespējas lielāku modeli, vairāk parameteriem

  3. Kļūdas funkcija

    1. Izvēlēties pareizu kļūdas funkciju, piemēram, CCE neder, ja prognozējāmās klases nav OHE, kā A=100%, B=0%, C=0%, bet, ja ir A=50%, B=50%, C=0%, tad jāizmanto KL Divergence

    2. Sākt ar jau iepriekš zināmu kļūdas funkciju, piemēram, BCE, CCE, Huber

    3. Noteikti kļūdas funkcijai jāpievieno klašu svari apmācību ciklā, ja klases vai datu daļas nav sabalansētas

  4. Apmācība

    1. Izvēlēties adekvātu novērtējuma rādītāju, kas nebūtu kļūdas funkcijā

 

  1. Augmentācija / normalizācija / izmēru maiņa

  2. Apmācības un testēšanas dati

  3. Testēšana ar vienādu klašu skaitu

  4. Modelis - konvolūcijas neironu tīkls (convnet)

  5. Zuduma funkcija - binārā krosentropija (bce), kategoriskā krosentropija (cce), fokusa funkcija

  6. Svarotā zuduma funkcija

  7. Zuduma grafiks - bez pārapmācīšanās

  8. Optimizators SGD (stohastiskā gradienta nolaišana)

  9. Metrika - precizitāte (Acc), F1 vērtējums

  10. Svaru saglabāšana, darbība bez gradientu uzkrāšanas

 

 

Binārajai klasifikācijai svari šajā pusē

 

 

 

Class weights

(8)wc=α||C||=αcountc
(9)αsparse=10.0αnormal=1.0αcommon=0.5

 

 

Accuracy formula

acc=1Ncorrectall

Huber loss

Lhuber(y,y)=1Nδ2(1+(yyδ)21)

 

CCE formula

LCCE(y,y)=1Nylog(y+ϵ)

LCCE(y,y)=1Nwcylog(y+ϵ)

F1 formula

F1=1N2TP2TP+FP+FN

 

BCE formula

LBCE(y,y)=1Nwnylog(y+ϵ)+(1y)log(1y+ϵ)

 

BatchNormalization formula

CleanShot 2025-03-11 at 21.40.23@2x

 

Softmax formula derivative

SoftMax(x)=exik=1Kexk=[a0a1a2a3a4]SoftMax(x)x=[a0(1a0)a0a1a0a2a0a3a0a4a1a0a1(1a1)a1a2a1a3a1a4a2a0a2a1a2(1a2)a2a3a2a4a3a0a3a1a3a2a3(1a3)a3a4a4a0a4a1a4a2a4a3a4(1a4)]

 

CCE formula derivative

 

LCCE(y,y)=1Nylog(y+ϵ)LCCE(y,y)y=1Ny1y=1Nyy=1Nyy+ϵ

 

 


CleanShot 2025-03-11 at 21.37.47@2x

CleanShot 2025-03-11 at 21.38.02@2x

 

CleanShot 2025-03-11 at 21.38.17@2x

 

CleanShot 2025-03-11 at 21.38.27@2x

CleanShot 2025-03-11 at 21.38.37@2x

 

CleanShot 2025-03-11 at 21.38.46@2x

 

CleanShot 2025-03-11 at 21.39.08@2x

 

CleanShot 2025-03-11 at 21.39.38@2x

 

CleanShot 2025-03-11 at 21.39.49@2x

Nice examples of optimization algorithms https://emiliendupont.github.io/2018/01/24/optimization-visualization/

CleanShot 2025-03-11 at 21.40.02@2x

 

http://www.denizyuret.com/2015/03/alec-radfords-animations-for.html?m=1

img

Ranger (FastAI RAdam + Lookahead) Paratrooper optimizer pytorch https://github.com/unslothai/hyperlearn

https://github.com/lessw2020/Ranger21x