Opcijska domača naloga: nevronske mreže

Odprto: četrtek, 19. maj 2022, 00.00
Rok za oddajo: torek, 14. junij 2022, 23.59

(1) Implementirajte večnivojsko polno povezano nevronsko mrežo za klasifikajo (za več vrednosti razredov) in za regresijo. Pri tem uporabi "backpropagation": definirajte funkcijo za optimicijo, njen gradient, in z numerično optimizacijo najdite rešitev. Pri tem uporabite enak način optimizacije, kot ga je definirala predloga za domačo naloga s softmaxom. Na vsakem nivoju uporabite "bias", ampak pazite, da ga ne regularizirate. Implementaciji mreže za regresijo in klasifikacijo naj si delita čim več kode; v poročilu opišite, kaj jima je skupnega in kaj ste morali implementirati drugače. Vaša implementacija naj omogoča poljubno število skritih nivojev poljubnih velikosti (velikost vhoda in izhoda tako ali tako definirajo podatki).

(2) Pokažite, da sta gradient in cost kompatibilna (za oba tipa mreže). Opišite postopek in rezultate.

(3) Mrežo uporabite na podatkih housing2r in housing3 in jo tam primerjajte z linearno regresijo in regresijo softmax (multinomsko logistično regresijo).

(4) Z mrežo zgradite čim boljši model za nabor podatkov train.csv.gz, kjer je treba primere uvrstiti v enega od devetih razredov. Model evaluirajte. Poročajte tudi čase izvajanja. Ustvarite datoteko final.txt z napovedmi za test.csv.gz; vso kodo za gradnjo končnega modela in napovedovanje zberite v funkciji create_final_predictions().

Oddajte: vso kodo v eni datoteki hw6.py, poročilo (.pdf; brez omejitev strani) in napovedi final.txt. Vaša koda naj podpira Python 3.8 in mora delovati s testi test_hw6.py (poglejte teste za podrobnosti implementacije). Vaša lastna implementacija nevronske mreže naj bo učinkovita.

**Obvestilo: ** . Ker sem s popravljanjem nalog pozen, vam, če si želite oceno iz nalog spremeniti, dovolim dodatno nalogo oddati kadarkoli do vašega prvega opravljanja pisnega izpita. Naloga se sicer zapre pred prvim izpitnim rokom. Če nanj ne greste, jo lahko oddate tudi kasneje, le pišite mi, da vam oddajo odprem.