QUICK INFO: CU 2h / LAB 1h / 7,5 CREDITE
PROGRAMA ANALITICA
METODA DE EVALUARE
Vor fi niște teme de proiecte la laborator, corespunzătoare capitolelor de la curs, care se vor prezenta pe parcursul semestrului.
Proiectele pentru primele două teme - HMM și ICA se vor prezenta pe 13 decembrie la laborator.
E recomandat să ne luăm nota cu proiectele de laborator, dar pentru cine nu vrea/reușește să le facă, există posibilitatea examenului scris. (cele 2 se exclud)
Laboratorul se ține cu toată lumea odată (nu 2 grupe), câte 2h, în săptămânile impare. Se lucrează în MATLAB.
Temele pentru proiectele de laborator so far:
I. HMM
1. Problema evaluării - algoritmul forward
Detalii:
- 1.a. Folosești un HMM (alegi tu niște parametri, care vrei, a, b, pi) și generezi cu el date.
- 1.b. Alegi alt HMM, cu alți parametri; apoi aplici forward pe fiecare din modele, cu observațiile generate la 1.a; te aștepți să dea mai mare probabilitatea pentru primul model.
2. Problema decodării - algoritmul Viterbi
Detalii: Alegi un model, aplici Viterbi pe el. Și Viterbi produce un alfa care măsoară niște probabilități ca la forward, deci se poate testa ca forwardul.
3. Problema învățării - algoritmul Baum-Welch
Detalii:
- Alegi un model, generezi cu el observații.
- Alegi alt model (preferabil cu parametrii nu foarte departe de cei ai primului model (miu și sigma în special) pentru că altfel e posibil să dea niște probabilități prea aproape de 0 și să explodeze tot.)
- Aplici Baum-Welch pe al doilea model și pe observațiile generate, pentru a îl antrena să se apropie de primul cu care ai generat observațiile.
- Calculezi cantitatea Q (din curs) și te aștepți să crească cu fiecare iterație.
Pentru primele două am folosit inițial modele discrete, s-ar putea să ceară și pentru continue apoi. Pentru 3 am folosit model cu observații în domeniu continuu, distribuite ca mixturi de 2 normale bidimensionale.
O avertizare mai ales pentru 3 - se pot întâmpla lucruri, se poate ca sigma să devină pe parcursul antrenării prea singulară și să dea erori la calculul inversei pe acolo, it's not necessarily your fault, contează mult și cum sunt aleși parametrii, profa e dispusă să se uite pe cod și propune soluții.
II.ICA
1. ICA cu metoda minimizării divergenței Kullback-Leibler
2. ICA cu metoda entropiei maxime
Se testează pe datele din semnale.rar, care conțin fișiere cu șiruri de valori care reprezintă semnalul provenit din câte o sursă pe o durată de timp. Se ia o matrice A oarecare cu care se mixează vreo 3 surse de acolo (3 vectori, fiecare obținut din câte un fișier. Fișierele sunt mari, vectorii pot fi folosiți trunchiați și eventual testată performanța pentru diverse lungimi ale lor), se aplică ICA pe rezultatul mixării.
Algoritmul (cel puțin la 1) s-ar putea să ceară ca datele să fie în [-1,1], deci trebuie aduse în intervalul ăsta. Alte implementări cer ca datele să fie de medie 0 și varianță 1, deci trebuie standardizate așa.
3. Detectarea pulsului
Trebuie folosite niște semnale care reprezintă imagini luate cu o cameră video pentru a găsi pulsul persoanei filmate. Se descompune semnalul (format din 3 surse: R,G,B) în 3 semnale independente folosind ICA; apoi se găsește frecvența corespunzătoare pulsului folosind transformata Fourier și power spectrum. La files există articole care descriu metoda, fișiere de test, niște sampleuri de cod.
III.Procese NARMA
Trebuie implementate procesele NARMA descrise în curs (algoritmii de învățare pentru rețelele neurale recurente).
IV.?
To be continued
Dacă are cineva întrebări poate să întrebe pe grup și poate știu să răspund, e posibil să nu fi dat peste tot suficiente detalii.
BIBLIOGRAFIE
Materialele de curs vor fi trimise pe mail. Sunt încărcate și aici pe măsură ce sunt discutate la curs și le primesc pe mail.