2023-Q3-AI 3. Linear Regression, Backpropogation - Numpy

3.1. Video / Materials

Video (19 Jul 2023, 10:00): https://youtu.be/cpzNledmu2E

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

Materials: https://www.youtube.com/playlist?list=PL0-GT3co4r2wlh6UHTUeQsrf3mlS2lk6x

https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab

http://mathproofs.blogspot.com/2006/07/dot-product-and-cosine.html

http://152.67.89.169/1629722468-deep-learning-theory/basic%20maths.pdf


Ir iedota pieeja jamboard un ar OBS jāveic screen streaming uz šādu setting

Youtube live key: 90sd-edfr-j2jk-e6jy-cm51 rtmp://a.rtmp.youtube.com/live2

 

Par katru uzdevumu dodam 100 punktus


Iepriekšējo gadu video: https://youtu.be/Nih4r7pmFBA

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


Saturs

  1. Lai iedotu intuīciju no sākuma var parādīt http://playground.tensorflow.org

  2. Izskaidrot uzdevumu, ka no vairākiem auto sludinājumiem (nobraukums, vietu skaits, dzinēja tilpums, ātrumu skaits) mēŗkis ir prognozēt auto cenu un izlauduna gadu

    Izmantojam tikai skalārus inputs: 4 (nobraukums, vietu skaits, dzinēja tilpums, ātrumu skaits) Prognozējam tikai skalārus outputs: 2 (uto cenu un izlauduna gadu) Uzreiz apmācam ar 10 paraugiem reizē! Studenti totāli nesaprot matricu reizinājumus, ja sākotnēji strādājam ar katru paraugu atsevišķi - labāk pat nepiedāvāt tādu iespēju! Bet, ja trāpās slikta grupa, ieteicams tomēr sākt ar aprēķiniem pa vienam paraugam

  3. Sākotnēji izveidojam modeli BEZ apmācības un izskaidrojam kļūdas funkciju - izmantojam random svarus

  4. Obligāti pirms apmācīšanas standartizēt inputs un outputs (jo citādi primitīvi modeļi ļoti slikti apmācās)

  5. Pastāstam par parciālo atvasinājumu jēgu un atpakaļizplatīšanās algoritmu

  6. Parādam pusei vienādojumu risinājumu latex, vismaz 1-2 mainīgajiem piem. Lb1 un LW2 lekcijas laikā paprasam iesūtīt risinājumu - var ar roku uz papīra un nofotogrāfēt vai ar latex. Neparādi atvasinājumus b_1 un W_2 uzreiz, tikai tad, ja paši no W_1 un b_2 piemēriem netiek galā, tad parādi tos

  7. Visbeidzot kopīgi izveidojam python kodu, kurš strādā

  8. Mājās tiek iedots alternatīvs cits modelis un cita datu kopa (vēlams), mājās varētu arī iedot implementēt batches

Pastāstīt par kļūdas funkciajs ietekmi uz gradient descent - MAE vs MSE

image-20210929092531501

 


 

3.2. Implement the model from Jamboard without weight training

Implement the model from Jamboard without weight training (TODOS). Submit the code and screenshot with the best results.

Data: http://share.yellowrobot.xyz/upic/9107b8c805a5cb4e4b44572bd2e7e43e_1675358285.jpg

Model: http://share.yellowrobot.xyz/upic/0ecb8948a61e5024063ca9811d4a09e2_1675358277.jpg

Template:

http://share.yellowrobot.xyz/quick/2023-2-2-6F8B72ED-ECF2-4E9D-A73C-7C7E950F467E.zip

 

img


 

3.3. Implement derivatives and model training

Implement derivatives and model training with SGD

Template: http://share.yellowrobot.xyz/quick/2023-2-2-928FB6AD-BE82-4213-AF13-89D008CDE031.zip

Iesniegt kodu un screenshot ar labākajiem rezultātiem

 


3.4. Homework - Implement a new model

  1. You are only allowed to use numpy and based on the preparation of task 3.3. implement the model: http://share.yellowrobot.xyz/upic/3340e3c11b330f49d79eb2c4f8c72426_1675358207.jpg

  2. Use MSE instead of MAE as the error function

  3. Add an additional feature, mileage, to the X data set, for example, a car with the year of production 2002 and mileage 300k will be a data sample [2.0, 3.0], but a car with the year of production 2011 and mileage 75k will be a data sample [11.0, 0.75]. Choose 4 data samples yourself and predict their price using several input data values.

  4. The model should use matrix weights instead of scalar value weights, for example, W_1.shape = (2, 8)

  5. Train the model, submit the code and screenshot from the loss plot.

 

 

tanh(x)=exexex+exModel(x,W1,b1,W2,b2,W3,b3)=Linear(tanh(Linear(tanh(Linear(x,W1,b1)),W2,b2)),W3,b3)=y

 


(2)LMAE=|yy|LMSE=(yy)2
(3)LMAE(y,y)b1=?LMAE(y,y)b2=?b1=b1LMAE(y,y)b1αb2=b2LMAE(y,y)b2α

MAE derivative

LMAE=|yy|

LMAE=|a|=a2=(a2)12

LMAEy=?

1n=n1

1n10=n10

 

LMAEa=12(a2)121a2a=12(a2)1212a=a(a2)12=a(a2)12=a(a2)=a|a|+ϵ

 

Tanh

(4)tanh(x)=exexex+extanh(x)x=1tanh(x)2

 

 

Linear function

Linear(x,W,b)=Wx+b

Linear(x,W,b)W=x

Linear(x,W,b)x=W

 

Linear(x,W,b)b=1b0=1

 

 

Sigmoid function

σ(x)=11+ex

σ(x)x=11+ex=(1+ex)1=(1+ex)x1(1+ex)2=exxx1(1+ex)2=ex(1+ex)2=σ(x)(1σ(x))

reciprocal rule = chain & power rule dx1f(x)=f(x)1=f(x)2f(x)dx

exponent rule ef(x)dx=ef(x)f(x)dx

https://towardsdatascience.com/derivative-of-the-sigmoid-function-536880cf918e

 

Model

y=Linear(σ(Linear(x,W1,b1)),W2,b2)W2σ((Linear(x,W1,b1))+b2

 

 

Huber loss

https://www.wolframalpha.com/input?i2d=true&i=D%5B%5C%2840%29Power%5Bv%2C2%5D%5C%2840%29Sqrt%5B1+%2B+Power%5B%5C%2840%29Divide%5By+-+z%2Cv%5D%5C%2841%29%2C2%5D%5D-1%5C%2841%29%5C%2841%29%2Cz%5D

(5)LHuber=δ2(1+(yy^δ)21)LHubery^=δ2(1+(yy^δ)2)12=δ2(1+(yy^δ)2)12(1+(yy^δ)2)1+(yy^δ)2(y^)=δ2(1+(yy^δ)2)12(1+(yy^δ)2)(yy^δ)2(yy^δ)yy^δy^=0.5δ2(1+(yy^δ)2)122(yy^δ)1δ=y^y1+(yy^δ)2

 

Model #2

(6)y^=model(x,W1,b1,W2,b2,W3,b3)=Linear(Tanh(Linear(Tanh(Linear(x,W1,b1)),W2,b2)),W3,b3)

 

image-20221023161015611

image-20221023160823600

image-20221023160727947