Zadanie 3aPodúloha: MNIST klasifikátor Úloha:Vytvoríte neurónovú sieť na klasifikáciu ručne písaných číslic z dátového súboru MNIST. Súbor údajov pozostáva zo 60 000 obrázkov na trénovanie a 10 000 obrázkov na testovanie, pričom každý obrázok je v odtieňoch sivej, veľkosti 28 x 28 a reprezentuje jednu číslicu od 0 do 9. Zadanie:Na riešenie úlohy použite doprednú neurónovú sieť (viacvrstvový perceptrón) a natrénujte ju pomocou algoritmov SGD, SGD s momentom a ADAM. Okrem trénovacej a testovacej chyby odmerajte aj presnosť modelu (t. j. koľkokrát model predikoval správnu triedu na testovacej množine). Model je možné natrénovať s výslednou presnosťou väčšou ako 97%. V úlohe určite použite knižnicu PyTorch (stačí verzia pre CPU), iné knižnice podľa svojho uváženia. Náčrt modelu:
Dokumentácia:Dokumentácia má obsahovať popis architektúry a tabuľku hyperparametrov (experiment popíšte tak, aby ho bolo na základe textu možné zopakovať), grafy z priebehu tréningu (trénovacia a testovacia chyba) a tiež vývoj presnosti (na testovacej množine) modelu počas tréningu. Vyberte najlepší model a vyhodnoťte ho pomocou confusion matrix pre každé číslo, ktoré pripojíte do dokumentácie. Na záver napíšte stručné zhodnotenie, ako úspešné boli optimalizačné algoritmy a architektúry, ktoré ste vyskúšali. Podúloha: Backpropagation algoritmus Úloha:V tejto úlohe budete implementovať plne funkčný algoritmus backpropagation, ktorý je kľúčovým komponentom tréningu neurónovej siete. Umožňuje jej učiť sa pomocou minimalizácie zadanej chybovej funkcie. Treba implementovať doprednú aj spätnú časť pre jednotlivé operátory a funkcie, ako aj aktualizácie parametrov siete. Algoritmus overíte natrénovaním jednoduchej doprednej neurónovej siete (viacvrstvového perceptrónu). Zadanie:
Na riešenie úlohy použite knižnicu NumPy pre maticové a vektorové operácie.
Použitie knižníc ako PyTorch a TensorFlow, ktoré obsahujú Náčrt modelu:
Dokumentácia:Dokumentácia má obsahovať jednoduchý popis vašej implementácie algoritmu backpropagation. Vyskúšajte sieť s 1 a 2 skrytými vrstvami pre problémy AND, OR a XOR, k dokumentácii priložte grafy z priebehu tréningu (trénovacia chyba). Vyskúšajte rôzne nastavenia tréningu s momentom a bez momentu a aspoň 2 hodnoty rýchlosti učenia pre problém XOR. |