Skip to content

teodumitrescu/cat_or_not

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Dumitrescu Ioana-Teodora - 315CD

----------------------- PART 3: HOUSEHOLDER PREDICTION -----------------------

Timp de rulare: ~28 secunde
Acuratete de predictie obtinuta: intre ~0,85 - 0,88

 1. rgbHistogram

    Citesc imaginea sub forma de matrice tridimensionala, apoi tabloul aferent
    fiecarei culori e transformat in vector si ii este aplicata functia 'histc'
    cu intervalele formate de punctele date. Vectorii obtinuti se concateneaza 
    pentru a forma vectorul solutie.

 2. hsvHistogram

    Aplic acelasi algoritm ca la functia precedenta (pe intervalul [0,1]), dar
    folosesc o functie auxiliara "rgbHsvTransform" implementata dupa modelul
    prezentat, insa vectorizata pentru a nu mai fi nevoie de parcurgerea matricii
    pixel cu pixel (lucru care consuma foarte mult timp, mai ales pentru un numar
    mare de imagini procesate). Astfel, am lucrat cu toata matricea deodata, 
    realizand transformarile pe toti pixelii care indeplineau conditia necesara,
    in mod simultan.
    
 3. Householder

    Pentru factorizarea cu Householder folosesc unul din algoritmii de la labo-
    rator, de pe Moodle, care urmareste formulele specifice acestei factorizari.

 4. SST

    Deoarece este vorba de o matrice superior triunghiulara, cel mai usor de 
    calculat element este cel de pe ultimul rand, pe care il aflam impartind 
    termenul liber la coeficientul sau. Restul necunoscutelor se afla cate una pe
    fiecare rand, din aproape in aproape, obtinandu-se prin scaderea din termenul
    liber a celorlalti termeni prezenti pe rand (aflati la pasul anterior) si
    impartirea cu coeficientul sau.

 5. preprocess

    Salvez in doua variabile cale catre cele doua foldere cu imagini, apoi obtin
    doua matrici cu imaginile din cele doua foldere. calculez histograma ceruta
    pentru fiecare imagine din cele doua si adaug la rand vectorul de caracteristici
    obtinut in matricea X (intai pozele cu pisici, apoi pozele fara pisici). La
    fiecare pas, adaug si in y 1 sau -1 daca contine pisici sau nu poza respectiva.

 6. learn

    Adaug o coloana de 1 la sfarsitul matricii X primite ca parametru, apoi
    folosesc Householder si SST implementate anterior pentru a rezolva sistemul
    de ecuatii necesar "invatarii" lui w.

 7. evaluate

    Pentru rezolvarea acestei functii, folosesc functia "preprocess" pentru a
    obtine matricea si vectorul de caracteristici aferent setului de imagini.
    Pentru fiecare poza, voi folosi produsul scalar cu w ul gasit anterior,
    obtinand astfel y ul prezis. Compar valoarea obtinuta cu cea din preprocess
    si, daca produsul celor doua valori este mai mare ca 0, atunci inseamna ca
    au acelasi semn, deci raspunsul este corect.

-------------------- PART 4: GRADIENT DESCENT PREDICTION ---------------------

Timp de rulare: ~110 - 120s
Acuratete de predictie obtinuta: ~0,60-0,63

 1. learn

    Initializez cu ajutorul functiei "rand" vectorul w u valori intre [-0.1,0.1],
    scalez coloanele lui X si il formz pe X_tilde. Folosesc, apoi, functia 
    "randperm" pentru a obtine valori intregi random intre 1 si numarul de linii 
    ale lui X, valori ce vor fi considerate indicii random ai liniilor din X si
    y pentru batch. Apoi folosesc formula data pentru a-l obtine pe w.

 2. evaluate

    Functia este aproape identica celei de la task-ul precedent, adaugandu-se
    doar scalarea coloanelor lui X.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages