Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[NAISP] Gradivo

TentationeM

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ m = 2, ceil(m/2) <= k <= m, znači k = [1, 2], barem k - 1 elementata u čvoru daje 0.

Evo sada me baš zanima, nadam se da će objaviti bodove po zadacima.


pero122

TentationeM Yep istina fkt ispada 0… formule su
Max children : m
Max keys : m - 1
Min children : ceil( m/2 )
Min keys : ceil( m/2 ) - 1

A ocito onda vrijedi
min keys : ceil( 2/2 ) - 1
= 1 - 1
= 0

Ali mi je to i dalje precudno i onda to krši ono pravilo da mora biti popunjenost barem 50%


micho

TentationeM Hmmm imaš pravo. Štimalo bi i pod pravilo 3. Samo onda su ove osobitosti krive. Kakav shitfest hahahah



micho

fPolic Zanimljivo, znači po ovome radi

  • on-line dodavanja
  • nemogućnosti stvaranja stabla s 2k - 1 elemenata (mislim da je ovo s 2k elemenata greška, onda nemaš ni puno, kamoli potpuno ili savršeno stablo)

zadatak je krivo zadan i oni bi nam kao trebali dati sve bodove hahahaha

Ali ipak mislim da će tu samo biti prazni čvorovi, to se slaže s njihovom definicijom, iako onda treba mijenjati prezentacije i ovih 50% popunjenosti

Što je najstrašnije, ovaj zadatak bi bio idealan da je bilo B-stablo 3. stupnja, jer onda bi imao savršeno stablo (3 + 3 * 3 = 12)


pero122

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽
Sta znači on-line dodavanje, znam da to postoji u neuronskim mrezama, ali kod stabla nisam čuo, a i na ovom post-u nigdje ne vidim da to netko spominje


micho

teslaFan Online algoritmi su oni koji se obavljaju sekvencijalno, bez da je poznata budućnost. Zadaci s poredanim dodavanjem elemenata su simulacija online algoritma dodavanja elemenata jer ti u nekom danom trenutku ne znaš koji je sljedeći element za dodati u stablo.


doakes

Dosli rezultati… 1 prošao


Bobicki

doakes Koliko vas je ukupno pisalo ako je samo 1 prošao?


micho

BOG JE VELIK


pero122

Bobicki 20 nas je pisalo, i prošla su dvojica.


TentationeM

Može li netko tko je bio na uvidima nakraju ukratko objasniti kako do punih bodova s B-stablom?


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.


« Prethodna stranica Sljedeća stranica »