Cuprins:

Analiza componentei principale: 4 pași
Analiza componentei principale: 4 pași

Video: Analiza componentei principale: 4 pași

Video: Analiza componentei principale: 4 pași
Video: PCA Eigenvalues 2024, Noiembrie
Anonim
Analiza componentelor principale
Analiza componentelor principale

Analiza componentelor principale este o metodă statistică care convertește un set de variabile posibil corelate într-un set de valori liniar necorelate utilizând transformări ortogonale. În cuvinte simple, date unui set de date cu mai multe dimensiuni, ajută la reducerea numărului de dimensiuni, facilitând astfel citirea datelor.

Pasul 1: Planuri originale

Am venit în această clasă cu ideea că vreau să înțeleg și să sper că scriu un algoritm care să poată efectua recunoașterea facială atunci când este furnizat cu imagini. Nu aveam experiență sau cunoștințe anterioare despre nimic de-a face cu recunoașterea facială și nu aveam idee cât de greu este să realizezi așa ceva. După ce am vorbit cu profesorul Malloch, mi-am dat seama că trebuie să învăț o mulțime de lucruri înainte de a putea înțelege pe deplin sarcina pe care am planificat-o în cele din urmă.

După un pic de cercetare, am decis în cele din urmă că mai mult decât orice aveam nevoie să învăț algebra liniară și câteva elemente de bază ale învățării automate și m-am bazat pe PCA (analiza componentelor principale) pentru a fi scopul meu pentru această clasă.

Pasul 2: Cercetare

Cercetare
Cercetare

Primul pas a fost să vizitez Biblioteca și să găsesc orice carte care m-a introdus în învățarea automată și mai precis în procesarea imaginilor. Acest lucru s-a dovedit a fi mult mai greu decât credeam și am ajuns să nu am nimic din asta. Am decis apoi să întreb un prieten care a lucrat în Vision Lab, care mi-a cerut să mă uit în algebră liniară și mai precis în vectorii proprii și valorile proprii. Am avut o oarecare experiență cu algebra liniară de la o clasă pe care o luasem în anul doi, dar nu înțelegeam cum vectorii proprii sau valorile proprii ar putea fi utile atunci când ne ocupăm de imagini. Pe măsură ce cercetam mai multe, am înțeles că imaginile nu erau altceva decât seturi de date uriașe și, prin urmare, puteau fi tratate ca matrici și mi-a devenit puțin mai clar de ce vectorii proprii erau relevanți pentru ceea ce făceam. În acest moment, am decis că ar trebui să învăț cum să citesc imagini folosind python, deoarece voi folosi python pentru proiectul meu. Inițial, am început folosind CV2.imread pentru a citi imaginile, dar acest lucru sa dovedit a fi foarte lent și, prin urmare, am decis să folosesc glob și PIL.image.open pentru a face acest lucru, deoarece acest lucru este mult mai rapid. Acest proces pe hârtie pare relativ lipsit de timp, dar, de fapt, a durat mult, deoarece am trebuit să învăț cum să instalez și să import diferite biblioteci în PyCharm (IDE) și apoi să citesc documentația online pentru fiecare bibliotecă. În procesul de a face acest lucru, am învățat, de asemenea, cum să folosesc instrucțiunile pip install în promptul de comandă.

După aceasta, următorul pas a fost să îmi dau seama ce anume voiam să fac și să învăț în procesarea imaginilor și, inițial, plănuiam să fac potrivirea șabloanelor, dar în timp ce cercetam pentru asta, am aflat despre PCA și mi s-a părut mai interesant, așa că am decis să mergi cu PCA în schimb. Primul termen care a continuat să apară a fost algoritmul K-NN (K- cel mai apropiat vecin). Aceasta a fost prima mea expunere vreodată la un algoritm de învățare automată. Am aflat despre datele de formare și testare și despre ce înseamnă „antrenarea” unui algoritm. Înțelegerea algoritmului K-NN a fost, de asemenea, o provocare, dar a fost foarte satisfăcător să înțelegem în cele din urmă cum funcționează. În prezent lucrez la codul pentru funcționarea K-NN și sunt foarte aproape de finalizare.

Pasul 3: Dificultăți cu care se confruntă și lecții învățate

Prima mare dificultate a fost scopul proiectului în sine. Aceasta a fost mai mult orientată spre cercetare decât fizică. Pe măsură ce săptămânile treceau de câteva ori, mă uitam la progresele făcute de colegii mei și simțeam că nu fac suficient sau că nu fac progrese suficient de rapide și că uneori era foarte demotivant. Vorbind cu profesorul Malloch și doar asigurându-mă că învăț lucruri care erau foarte noi pentru mine, m-a ajutat să continui. O altă problemă a fost că cunoașterea lucrurilor teoretice și aplicarea acesteia sunt două lucruri diferite. Deși știam ce trebuie, codificarea lui în python era o poveste diferită. Aici citirea documentațiilor online și întrebarea prietenilor care știau mai multe despre asta au ajutat foarte mult să-și dea seama în cele din urmă un plan de acțiune.

Eu personal cred că a avea o bibliotecă mai mare de cărți și documente la M5 ar putea ajuta oamenii care lucrează la proiecte. De asemenea, este o idee bună pentru M5 să ai o înregistrare digitală în timp real a proiectelor realizate de studenți, astfel încât alți studenți și personal să poată privi și să se implice dacă îi interesează.

Pe măsură ce proiectul se încheie, am învățat atât de multe într-un interval de timp atât de scurt. Am câștigat o cunoaștere foarte activă a învățării automate și simt că am făcut primii pași pentru a mă implica mai mult în ea. Mi-am dat seama că îmi place viziunea pe computer și că aș putea dori să urmăresc acest lucru chiar și în viitor. Cel mai important, am învățat ce este PCA, de ce este atât de important și cum să-l folosesc.

Pasul 4: Pașii următori

Pentru mine, acest lucru a fost doar zgârierea suprafeței a ceva mult mai vast și ceva foarte important în lumea de astăzi, adică învățarea automată. Plănuiesc să urmez cursuri legate de învățarea automată în viitorul apropiat. De asemenea, intenționez să-mi construiesc drumul spre recunoașterea facială, deoarece de aici a început întregul proiect. Am, de asemenea, idei pentru un sistem de securitate care utilizează o combinație de caracteristici (una dintre ele fiind fața persoanei) pentru a-l face cu adevărat sigur și acest lucru este ceva pe care vreau să lucrez în viitor, atunci când am o înțelegere mai largă a lucrurilor.

Pentru oricine ca mine care este interesat de învățarea automată și de procesarea imaginilor, dar care nu are experiență anterioară, aș sugera foarte întâi să înveți și să înțelegi algebra liniară împreună cu statisticile (în special distribuțiile). În al doilea rând, aș sugera citirea Recunoașterii modelelor și învățarea automată de Christopher M. Bishop. Această carte m-a ajutat să înțeleg elementele de bază în ceea ce mă aflam și este structurată foarte bine.

Recomandat: