Sadržaj:

Analiza glavnih komponenti: 4 koraka
Analiza glavnih komponenti: 4 koraka

Video: Analiza glavnih komponenti: 4 koraka

Video: Analiza glavnih komponenti: 4 koraka
Video: Состав слова. Как сделать разбор слова по составу? 2024, Novembar
Anonim
Analiza glavnih komponenti
Analiza glavnih komponenti

Analiza glavnih komponenti je statistička metoda koja pretvara skup moguće koreliranih varijabli u skup linearno nekoreliranih vrijednosti pomoću ortogonalnih transformacija. Jednostavnim riječima dat je skup podataka s više dimenzija, pomaže u smanjenju broja dimenzija, pa se podaci lakše čitaju.

Korak 1: Originalni planovi

Došao sam u ovaj razred s idejom da želim razumjeti i nadam se da ću napisati algoritam koji će moći izvršiti prepoznavanje lica kada se isporuči sa slikama. Nisam imao nikakvo prethodno iskustvo niti znanje o bilo čemu u vezi sa prepoznavanjem lica i nisam imao pojma koliko je teško postići ovako nešto. Nakon razgovora s profesorom Mallochom shvatio sam da moram naučiti mnogo stvari prije nego što mogu potpuno razumjeti zadatak koji sam na kraju planirao postići.

Nakon malo istraživanja, konačno sam odlučio da mi je cilj više od svega što mi je potrebno za učenje linearne algebre i nekih osnova strojnog učenja, te sam se odlučio za PCA (analiza glavnih komponenti).

Korak 2: Istraživanje

Istraživanje
Istraživanje

Prvi korak je bio posjetiti Biblioteku i pronaći bilo koju knjigu koja me je upoznala sa mašinskim učenjem i konkretnije obradom slika. Ispostavilo se da je ovo mnogo teže nego što sam mislio i na kraju nisam imao ništa posebno. Odlučio sam tada pitati prijatelja koji je radio u Vision Lab -u koji me zamolio da proučim linearnu algebru i tačnije vlastite vektore i vlastite vrijednosti. Imao sam određeno iskustvo s linearnom algebrom iz razreda koji sam pohađao na drugoj godini, ali nisam razumio kako bi vlastiti vektori ili vlastite vrijednosti mogle biti korisne pri bavljenju slikama. Kako sam više istraživao, shvatio sam da slike nisu ništa drugo do ogromni skupovi podataka i da se stoga mogu tretirati kao matrice i postalo mi je malo jasnije zašto su vlastiti vektori relevantni za ono što radim. U ovom trenutku sam odlučio da bih trebao naučiti čitati slike pomoću pythona jer ću koristiti python za svoj projekt. U početku sam počeo koristeći CV2.imread za čitanje slika, ali to se pokazalo jako sporo i stoga sam odlučio koristiti glob i PIL.image.open da to učinim jer je to mnogo brže. Čini se da ovaj proces na papiru relativno ne oduzima puno vremena, ali zapravo mi je oduzeo dosta vremena jer sam morao naučiti kako instalirati i uvesti različite biblioteke na PyCharm (IDE), a zatim pročitati dokumentaciju na mreži za svaku biblioteku. U tom procesu sam naučio i kako da koristim pip install naredbe u komandnoj liniji.

Nakon toga, sljedeći korak je bio shvatiti što točno želim raditi i naučiti u obradi slika, a u početku sam planirao raditi podudaranje predložaka, ali dok sam to istraživao, naučio sam o PCA -i i otkrio da je to zanimljivije pa sam odlučio umjesto toga idite sa PCA -om. Prvi pojam koji se stalno pojavljivao bio je K-NN (K-najbliži susjed) algoritam. Ovo je bila moja prva izloženost algoritmu strojnog učenja. Naučio sam o podacima o obuci i testiranju i o tome šta znači 'obuka' algoritma. Razumijevanje K-NN algoritma također je bilo izazovno, ali bilo je zadovoljavajuće konačno shvatiti kako funkcionira. Trenutno radim na tome da šifra za K-NN radi i vrlo sam blizu završetka.

Korak 3: Suočavanje s teškoćama i naučene lekcije

Prva velika poteškoća bio je opseg samog projekta. Ovo je više bilo istraživačko nego fizičko. Nekoliko su sedmica prolazile gledajući napredak koji su moji vršnjaci ostvarili i osjećao sam da ne radim dovoljno ili da ne napredujem dovoljno brzo, što je ponekad bilo vrlo demotivirajuće. Razgovor sa profesorom Mallochom i samo uvjeravanje sebe da zaista učim stvari koje su mi bile jako nove pomoglo mi je da nastavim. Drugi problem je bio u tome što su poznavanje teorijskih stvari i njihova primjena dvije različite stvari. Iako sam znao šta moram, zapravo kodiranje u pythonu bila je druga priča. Ovdje je samo čitanje dokumentacije na internetu i traženje prijatelja koji znaju više o tome puno pomoglo da se konačno smisli plan akcije.

Lično mislim da bi veća biblioteka knjiga i dokumenata u M5 mogla pomoći ljudima koji rade na projektima. Dobra ideja za M5 je i imati digitalni zapis o projektima koje studenti rade u stvarnom vremenu, tako da ih drugi studenti i osoblje mogu pogledati i uključiti se ako ih to zanima.

Kako se projekat bliži kraju, toliko sam naučio u tako kratkom roku. Stekao sam vrlo radno znanje o strojnom učenju i osjećam se kao da sam poduzeo prve korake da se u to više uključim. Shvatio sam da volim kompjuterski vid i da bih se time mogao baviti čak i u budućnosti. Ono što je najvažnije naučio sam šta je PCA, zašto je toliko važna i kako je iskoristiti.

Korak 4: Sljedeći koraci

Za mene je ovo bilo samo grebanje po površini nečeg mnogo opsežnijeg i nečeg što je vrlo važno u današnjem svijetu, odnosno mašinskog učenja. Planiram u bliskoj budućnosti pohađati kurseve vezane za mašinsko učenje. Planiram i izgraditi svoj put do prepoznavanja lica jer je tu počeo cijeli ovaj projekt. Imam i ideje za sigurnosni sistem koji koristi kombinirane funkcije (jedna od njih je lice osobe) kako bi bio zaista siguran i to je nešto na čemu želim raditi u budućnosti kada budem imao šire razumijevanje stvari.

Za svakoga poput mene koji je zainteresiran za mašinsko učenje i obradu slika, ali nema prethodno iskustvo, toplo bih predložio prvo učenje i razumijevanje linearne algebre zajedno sa statistikom (posebno distribucijama). Drugo, predložio bih čitanje Prepoznavanje uzoraka i Strojno učenje autora Christopher M. Bishop. Ova knjiga mi je pomogla da razumijem osnove onoga u što se upuštam i vrlo je dobro strukturirana.

Preporučuje se: