Nešto je pošlo po zlu prilikom učitavanja potpune inačice ove stranice. Pokušajte nasilno osvježiti ovu stranicu kako biste otklonili grešku.

[NAISP] Gradivo

doakes

TentationeM Odgovor je nemozes….


volimfmos69

Oj vi bogovi NASP-a koji ste prosli pismeni, molim vas za dojam s usmenog xD


micho

debos Znači prošlo je 3 ljudi - ja i kolega, i još jedan lik je uspio na uvidima dobit bodove.

Mene je pitao 2 teme, 5 pitanja svaka, 5 bodova svako.

Protok

  • presjek grafa
  • dopunski put
  • rezidualna mreža
  • max flow min cut teorem
  • protok presjeka

Neuronske mreže

  • koju smo arhitekturu radili na predmetu
  • je li gradijentna optimizacija konveksna ili nekonveksna
  • koju smo funkciju cilja radili na predmetu, za koji je to tip učenja (regresija ili klasifikacija), i koja/e bi bila/e bolja/e
  • koja je poveznica dinamičkog programiranja i backpropagationa
  • za slučaj jednog neurona imamo 3 slučaja, kako učimo u tim slučajevima

Prof mi je rekao da je ostale ljude pitao po ispitu. Mene nije u slučaju da su podijelili pitanja na forumu (ali rekao sam mu da nisu xD).
Prokomentirali smo zadatak s B-stablom - rekao je da je trebalo napisati da je nemoguće izgraditi B-stablo s tim brojem čvorova, i kad sam mu rekao za prazne čvorove rekao je OK, ali da onda ti prazni čvorovi ne mogu imati pointere na dalje (jer nemaju ključeva za usporedbu), dakle mogu biti samo listovi.

Ovo podebljano sam znao i odgovori su redom:

  • svaki put kod određivanja maksimalnog protoka u grafu kojim se od polazišta može doći do odredišta
  • graf koji gradimo prilikom određivanja maksimalnog protoka u grafu pomoću kojeg lakše pratimo iskorištenost kapaciteta svakog brida
  • rekao sam densenet, ali da se izbjegne konfuzija s DenseNetom iz CV-a, točniji odgovor je MLP
  • može biti, ali generalno nije
  • radili smo MSE, to je regresijska funkcija gubitka, bila bi bolja unakrsna entropija (ili binarna unakrsna entropija ako imamo multilabel dataset)
  • backpropagation za neki komad mreže se računa koristeći prethodne gradijente, pa stoga prethodne gradijente jednom izračunate čuvamo i koristimo ih za izračunavanje gradijenata ranijih slojeva mreže, kao i u dinamičkom programiranju

Dobio sam 30 bodova, zapisao mi 3 i to je to. Dost je bilo opušteno, nije bilo frke oko toga kaj nisam znao ove stvari, on je rekao da ne može utvrditi jel čitam prezentacije iako sam morao upaliti kameru, al nisam varao, možda sam mogao izvući 5-10 bodova više, ali to mi stvarno ništa ne znači u životu jer da sam polagao kontinuirano ciljao bih na 2.


volimfmos69

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ Puno hvala za detaljni odgovor!


sara

jeli netko rjesio neuronsku za ljetnog ove godine, idem po formulama sa sluzbenog , matricno, i dobivam grozne brojke pa neznam sta krivo radim


micho

Gragas Ako hoćeš mogu napisati mali guide danas za to ili me nađi na faksu u aleji pa ti objasnim irl, do 10 sam tu


sara

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽

hvala, dodem u aleju za 20ak min


TentationeM

Kako provjeravate jeste točno riješili zadatak s neuronskim?

@M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ Stavite onda ovdje, hvala 😄


micho

TentationeM Skini si Pytorch i možeš svaki gradijent provjeriti.

Npr. za 3×4×1 mrežu sa sigmoidom nakon skrivenog sloja bi moglo ovako nešto:

import torch

l1 = torch.nn.Linear(3, 4)
a1 = torch.nn.Sigmoid()
l2 = torch.nn.Linear(4, 1)

# Ulazi i izlazi
inputs = torch.tensor([[0, 0, 1], [0, 1, 0], [1, 0, 0]])
outputs = torch.tensor([[0], [1], [2]])

loss_f = torch.nn.MSELoss()
optimizer = torch.optim.SGD([l1.parameters(), l2.parameters()], lr=1)

for i, x in enumerate(inputs):
    # Forward pass
    x = l1(x)
    x = a1(x)
    x = l2(x)

    # Backward pass
    loss = 0.5 * loss_f(x, outputs[i])
    loss.backward()

    print(f"Gradijenti l1 težina:\n{l1.weight.grad}")
    print(f"Gradijenti l2 težina:\n{l2.weight.grad}")
    print(f"Gradijenti l1 pomaka:\n{l1.bias.grad}")
    print(f"Gradijenti l2 pomaka:\n{l2.bias.grad}\n")

    # Ažuriranje parametara
    optimizer.step()

    # Reset gradijenata, pomaknuti izvan for petlje ako se radi o grupnom učenju
    optimizer.zero_grad()

Za specifične početne težine, mogu se inicijalizirati s npr.

torch.nn.init.constant_(l1.weight, 1)
torch.nn.init.constant_(l1.bias, 1)

ovo će postaviti težine i pomake 1. sloja na 1.


Kladivec

Zna netko kako riješiti ovaj zadatak? Nije mi jasan ovaj dio s aktivacijskim f-jama za izlaz 1 i 2.


micho

Kladivec Budem stavio to danas (dobio sam sve bodove iz toga), samo mi treba još malo da sredim ELEKRU materijale, a ono što je optimalno raditi je računati gradijente element po element, pa se backprop za različite aktivacije može napisati kao vektor formula i primijeniti elementwise na gradijent po izlazu

U ovom slučaju bi umjesto formule za EA bila:

EA^0 = EI^0 \cdot^* \begin{bmatrix} & \frac{\partial{y}}{\partial{tanh(x)}} & \\\\ & \frac{\partial{y}}{\partial{y}} & \end{bmatrix}


ssbb

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ čisto da bacim svojih 5 centi, kada god se računaju greške matrice EI (za h i za 0, dakle EIh i EI0), ako su svi neuroni sigmoid, onda se koristi ona formula iz podsjetnika EA .* y .* (1 - y). Ono što je bitno zapamtit je da je ovaj y * (1 - y) zapravo derivacija izlaza neurona po ulazu u neuron. Neka je “u” ulaz u neuron, a “y” izlaz iz neurona nakon njegove aktivacijske funkcije. Za sigmoid imamo derivaciju: sigmoid’(u) = sigmoid(u) * (1 - sigmoid(u)) što je jednako y .* (1 - y), pri čemu je y izlaz iz neurona, odnosno sigmoid(u). Zato je formula EI = EA .* y .* (1 - y). Ako je neuron adaline, derivacija je uvijek jedan (adaline je pravac), pa je EI = EA .* 1 = EA. Ako su u sloju dve razlicite funkcije aktivacije, onda ih samo “kombiniramo”. Npr ako je gornji neuron tanh, a donji sigmoid, imamo ovo što je @M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ gore napisao.


TentationeM

Koliko su vam nakraju ispali rezultati neuronke iz ovogodišnjeg JIR-a?


doakes

Moze netko jednostavno napisati rjesenje(postupak) zadatka ovog sa neuronskim mrezama, a ne samo objasnjavati?


micho

doakes Daj mi 1-2 sata, da dođem doma i natipkan to, jučer sam nakon egzorcizma s latexom imao premalo snage napisati


stateboli

doakes rješenje su 0, za svaki izlaz njegovu aktivacijsku fju, tanh znači da se y*(1-y) množi sa 4 zbog derivacije tanh


orb-of-sadder

Jel moze netko objasniti sta se tocno trazi u ovom zadatku ? +


micho

orb-of-sadder Dvofazni simpleks + 2 linearna programa u b (tako je rekao Brčić)


micho

Stavio sam 2. zadatak na materijale, kad dovršim ispitni template ću staviti cijeli ispit:

https://github.com/studosi-fer/NAISP/blob/master/ispiti/rokovi/2019-20/NAISP_2019-20_jir-1_zadatak-2.pdf


sara

zna li netko kako ovo rjesiti?pretpostavljam da moramo skuziti kojim su redom upisana slova, pa po tom skicirati rb stablo , ali kako


micho

Gragas Nemaš baš nešto za skužiti, dali su ti BFS ispis, nacrtaj stablo tako da zadovoljava pravila i čitaj crvene čvorove

Prve 3 razine su ti potpune, A G S U Z O moraš skužiti kak staviti da bi bilo dobro binarno stablo


sara

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽


Dobro znaci ovo je stablo onda, i koji su mi sad tu crveni cvorovi? zar to ne ovisi o redosljedu upisivanja podataka?
Još jedno pitanje, jeli u RB stablu uvijek samo zadnja razina djelomicno popunjena, tj.jeli ono uvijek savrseno uravnotezeno?


« Prethodna stranica Sljedeća stranica »