Neurónové siete - informácie o zadaniach
Všeobecné informácie
Cvičenia / konzultácie prebiehajú v učebni TPC. V prípade potreby sa možno dohodnúť individuálne s cvičiacim aj na inom čase.
V 5. a 12. týždni prebieha odovzdávanie prvého zadania a individuálneho projektu.
Oneskorené odovzdanie zadania: -2 body / týždeň
Skoršieho odovzdanie: +2 body / týždeň (max. 4 body)
Výsledok nad rámec očakávaní: cvičiaci môže prideliť bonusové body
Odovzdanie zadania v 5 týždni
Pri odovzdávaní je potrebné demonštrovať funkčnosť implementácie, ukázať a vysvetliť zdrojový kód programu. Na základe požiadaviek cvičiaceho musí byť možné meniť parametre simulácie (rýchlosť učenia, momentum, ukončovaciu podmienku učenia, ...). Pri odovzdávaní musí už študent mať pripravenú draft verziu špecifikácie individuálneho projektu, ktorú budú odovzdávať nasledujúci týždeň. Nesplnenie tejto podmienky bude penalizované.
Zdrojové kódy programov odovzdajte cez AIS.
Odovzdanie špecifikácie individuálneho projektu v 6 týždni
Špecifikácia projektu by sa mala zaoberať tématikou prednášanou v predmete, prípadne inou súvisiacou, ktorú v predchádzajúcich týždňoch skonzultoval a schválil cvičiaci. Tému možno konzultovať s ľubovolným cvičiacim predmetu, prípadne iným zamestnancom fakulty. Zadanie by malo zodpovedať najmä nasledovné otázky:
- Čo idem riešiť?
- Ako to chcem riešiť?
- Aký je očakávaný cieľ projektu?
Špecifikáciu projektu (+-10 viet) musí študent odovzdať svojemu cvičiacemu a následne odovzdať do AIS, ak je téma zadania Hopfieldová sieť alebo Kohonenová mapa (čiže jedno z jednoduchších zadaní), stačí odovzdať iba krátky textový súbor napr. s textom vybral som si Hopfieldovu sieť.
Odovzdanie projektu v 12 týždni
Prezentácia pred cvičiacim vysvetlenie dosiahnutých výsledkov. Súčasťou vypracovaného projektu je aj dokumentácia v elektronickom tvare, ktorá by sa mala zaoberať nasledovnými otázkami.
- Ako som implementoval model / riešenia?
- Aké boli dosiahnuté výsledky? Prečo sú iné ako sme očakávali?
- Aké sú ďalšie možnosti do budúcnosti?
- Výsledkom individuálneho projektu môže byť, aj zistenie, že zvolený prístup pre skúmaný problém nebol najvhodnejší.
Dokumentáciu sa snažte vyhotoviť stručne ale výstižne, najmä v prípade výskumných projektov využívajte možnosti vizualizácie vo forme grafov a tabuliek. Podrobnejšie dodatočné informácie sú uvedené nižšie v sekcií venovanej Individuálnemu projektu.
Dopredná neurónová sieť
V ľubovolnom programovacom jazyku implementujte jednoduchý simulátor doprednej neurónovej siete (vstupy a parametre simulácie sa musia dať meniť bez nutnosti kompilovania). Natrénujte ju algoritmom spätného šírenia chyby na vstupných množinách:
- XOR - 2 vstupné neuróny , 1 výstupný neuron, 4 vstupné vzory
- Binárna parita – 8 vstupných neurónov, 1 výstupný neuron, 256 vstupných vzorov
Sieť trénujte na celej vstupnej množine a počas trénovania zobrazujte percentuálnu úspešnosť klasifikácie (kolko percent zo vstupov je uz správne klasifikovaných).
Poznámky a požiadavky na riešenie:
- riešte obe úlohy (XOR aj parita)
- úlohu XOR musí zvládnuť sieť s dvoma skrytými neurónmi, na paritu je potrebných viac neurónov-experimentujte
- neuróny musia mať prahy
- použite samozrejme rýchlosť učenia ale aj momentový člen, experimentujte s hodnotami pre rýchlosť učenia a momentum, oba parametre voľte z rozsahu (0.0,1.0)
- strmosť sigmoidy majte nastavenú na 1.0 (neuvažujte iné strmosti)
- iniciálne hodnoty váh a prahov voľte náhodne z "malého" intervalu napr. (-0.5,0.5)
- výstupný neurón môže mať sigmoidálnu alebo lineárnu aktivačnú funkciu (zvoľte si sami)
- trénovanie na celej vstupnej množine = trénovanie na všetkých 4 vzoroch pre XOR a 256 vzoroch pre paritu
- zabezpečte aby sa trénovacie vzory prezentovali v náhodnom poradí, napr. po každej epoche premiešajte ich poradie v trénovacej množine
- percentuálna úspešnosť klasifikácie - počet správne klasifikovaných vzorov vzhľadom na celkový počet vzrov. Sami si zvoľte rozumné kritérium, kedy považujete výstup neurónu za "0" (napr. ak je jeho aktivita od 0.0 do 0.3 a "1" ak je jeho aktivita od 0.7 do 1.0, inak považujte výstup za nedefinovaný)
- percentuálna úspešnosť klasifikácie zobrazte po každej epoche - môžete zvoliť jednoduchú ukončovaciu podmienku trénovania, napr. ukončíte trénovanie po zadanom počte epoch
- v priebehu trénovania po každej epoche (epocha = prechod cez všetky vzory z trénovacej množiny) vypisuje percentuálnu úspešnosť a tiež priemernú strednú kvadratickú chybu zodpovedajúcu celej trénovacej množine, čiže cez všetky vzory po každej epoche
- 1. spočítať dobre klasifikované a predeliť počtom vzorov => percentuálna úspešnosť
- 2. spočítať štvorce rozdielov želaných a sieťou vypočítaných hodnôt a túto sumu predeliť počtom vzorov => priemerná stredná kvadratická chyba
- schopnosť siete riešiť úlohu preukážte tak, že sieť po natrénovaní spracuje súbor s testovacou množinou obsahujúcou iba vstupné hodnoty a doplní výstupné hodnoty vypočítané sieťou
Individuálny projekt
Študent na základe dohody s cvičiacim pripraví špecifikáciu (zadanie) individuálneho projektu. V druhej časti semestra ho vypracuje a odprezentuje. Počas prvých 5-tich týždňov prebiehajú konzultácie s cvičiacimi predmetu, prípadne inými zamestnancami fakulty a príprava zadania projektu. Zadanie definujúce zámer a rozsah práce (+-10 viet) musí študent pripraviť a následne odovzdať svojemu cvičiacemu v elektronickom tvare. Môžete si pozrieť riešenia vašich kolegov z minulého obdobia tu;
Študent má na výber z nasledujúce možností:
- Výskumný projekt
- Aplikačný projekt
- Jednoduchšie zadanie (za polovičný počet bodov t.j. 15 bodov)
Poznámky a požiadavky na riešenie:
- Odovzdáva sa v 12 týždni semestra
- PRAVIDELNE KONZULTUJTE. Najmä ak sa vám nedarí získat očakávané výsledky. Predídete tak nedorozumeniu pri hodnotení.
- DOKUMENTÁCIA. Povinnou súčastou výsledku PRI KAŽDOM ZADANÍ je dokument ktorý opíše špecifiká vašej práce a zdokumentuje vami skúmané experimenty, prípadne systém.
- Dokument je velmi dôležitý najmä v prípade, že výsledky nebudú spĺňať očakávania.
- Môže nás tak presvedčiť, že ste pre dosiahnutie uspokojivého výsledku spravili maximum.
- Dokumentáciu netlačte, postačuje elektronická verzia.
- Rozsah nie je určený. Môžu to byť 3 strany ale aj na 10 v závislosti od projektu.
- OBSAH DOKUMENTÁCIE. Kedže druhé zadania sú rozdielne nemôžeme vám poskytnút presné pokyny ako vytvorit dokumentáciu. V zásade by mala dokumentovať nasledovné oblasti:
- Zadanie a ciele
- Stručný opis systému / simulátora, čo dokáže, aké parametre sa dajú nastavoviť, stačí vymenovať
- Postup práce - ako ste sa snažili zabezpečiť aby sieť dosiahla požadované výsledky (rozpoznávala písmená, používateľa, aká bola reprezentácia vstupov / výstupov, postup trénovania a pod.).
- Experimenty - grafy a tabuľky s výsledkami. Každý graf opíšte aby bolo zrejmé, čo znázorňuje.
- Ak vaša aplikácia nefunguje uspokojivo, skúste vysvetliť prečo, resp. uveďte čo by ste spravili inác. Iná reprezentácia vstupov a pod.
- Zhodnotenie
Výskumný projekt
Vybrať na serveri (cez IS v sekcii venovanej dokumentom k predmetu, abstrakty sú tu) alebo nájsť na internete odborný článok, prečítať jeho abstrakt a v prípade záujmu aj celý článok. Navrhnúť konkrétny text zadania projektu založený napríklad na:
- zopakovaní experimentov uvedených v pôvodnom článku,
- navrhnútí modifikácií a doplnenií experimentov,
- porovnaní s inými modelmi,
- atď.
Základom je stanoviť v špecifikácii zadania rozumné cieľe a zdôvodniť, prečo majú vami navrhnuté experimenty zmysel. Hlavným cieľom je experimentálne overiť vami navrhnuté modifikácie a následne dosiahnuté výsledky komentovať. Výsledky sa nemusia zhodovať s očakávanými výsledkami.
Aplikačný projekt
Podľa záujmu zvoliť aplikačnú oblasť a navrhnúť konkrétny text zadania projektu. Napríklad:
- Aplikovanie doprednej neurónovej siete na rozpoznávanie evidenčných čísel. ...
- Aplikovanie doprednej neurónovej siete na rozpoznávanie hlasových povelov. ...
- Ovládanie hráča robotického futbalu neurónovou sieťou – pri činnosti streľba. ...
- Vytvorenie hry, kde bude opponent tvorený rekurentnou neurónovou sieťou. ...
- Rozpoznávanie používateľa na základe frekvencie stlačenia kláves pri písaní hesla / resp. textu
- atď.
Hlavným cieľom je zistiť možnosť aplikovania vybraného modelu na daný problém. Výsledok však môže byť aj zistenie, že váš spôsob aplikovania modelu na problém nebol vhodný. V tom prípade ale treba zdôvodniť, v čom je problém a ako by ste navrhovali postupovať v budúcnosti.
Jednoduchšie zadanie (len za 15 bodov!!!)
Implementácia a demonštracia jednoduchých modelov (proj2.zip):
- Hopfieldová sieť
- Kohonenová mapa