Kazalo:

Analiza glavne komponente: 4 koraki
Analiza glavne komponente: 4 koraki

Video: Analiza glavne komponente: 4 koraki

Video: Analiza glavne komponente: 4 koraki
Video: 4/11 Теория. Диагностика автомобиля при помощи осциллографа. Как выбрать осциллограф? 2024, December
Anonim
Analiza glavnih komponent
Analiza glavnih komponent

Analiza glavnih komponent je statistična metoda, ki pretvori niz morebiti koreliranih spremenljivk v niz linearno nekoreliranih vrednosti z uporabo ortogonalnih transformacij. Z enostavnimi besedami z naborom podatkov z več dimenzijami pomaga zmanjšati število dimenzij, kar olajša branje podatkov.

1. korak: Izvirni načrti

V ta razred sem prišel z idejo, da bi rad razumel in upam, da bom napisal algoritem, ki bi lahko izvedel prepoznavanje obraza, če bi bil opremljen s slikami. Nisem imel nobenih predhodnih izkušenj ali znanja o tem, kaj bi bilo povezano s prepoznavanjem obraza, in nisem vedel, kako težko je doseči kaj takega. Po pogovoru s profesorjem Mallochom sem spoznal, da se moram naučiti veliko stvari, preden bom lahko v celoti razumel nalogo, ki sem jo na koncu načrtoval.

Po kratkem raziskovanju sem se končno odločil, da je moj cilj več kot vse, kar potrebujem za učenje linearne algebre in nekaj osnov strojnega učenja, in se odločil za PCA (analiza glavnih komponent).

2. korak: Raziščite

Raziskave
Raziskave

Prvi korak je bil obisk knjižnice in iskanje katere koli knjige, ki me je seznanila s strojnim učenjem in natančneje obdelavo slik. To se je izkazalo za veliko težje, kot sem mislil, in na koncu nisem imel ničesar. Nato sem se odločil, da vprašam prijatelja, ki je delal v laboratoriju Vision, ki me je prosil, naj preučim linearno algebro in natančneje lastne vektorje in lastne vrednosti. Imel sem nekaj izkušenj z linearno algebro iz razreda, ki sem ga opravil v drugem letniku, vendar nisem razumel, kako bi lahko bili lastni vektorji ali lastne vrednosti uporabni pri obravnavi slik. Ko sem bolj raziskoval, sem razumel, da slike niso nič drugega kot ogromni nabori podatkov in jih je zato mogoče obravnavati kot matrike, in postalo mi je nekoliko bolj jasno, zakaj so lastni vektorji pomembni za to, kar počnem. Na tej točki sem se odločil, da se bom moral naučiti brati slike s pomočjo pythona, saj bom python uporabljal za svoj projekt. Sprva sem za branje slik začel z uporabo CV2.imread, vendar se je to izkazalo za zelo počasno, zato sem se odločil za to uporabiti glob in PIL.image.open, saj je to veliko hitreje. Ta postopek na papirju se zdi razmeroma dolgotrajen, vendar je trajal precej časa, saj sem se moral naučiti, kako namestiti in uvoziti različne knjižnice v PyCharm (IDE), nato pa prebrati dokumentacijo na spletu za vsako knjižnico. Pri tem sem se naučil tudi uporabe stavkov pip install v ukaznem pozivu.

Naslednji korak je bil ugotoviti, kaj točno želim početi in se naučiti pri obdelavi slik, na začetku pa sem nameraval narediti ujemanje predlog, vendar sem med raziskovanjem zanj spoznal PCA in ugotovil, da je bolj zanimivo, zato sem se odločil, pojdi raje s PCA. Prvi izraz, ki se je pojavljal, je bil algoritem K-NN (K-najbližji sosed). To je bila moja prva izpostavljenost algoritmu strojnega učenja. Spoznal sem podatke o usposabljanju in testiranju ter kaj pomeni "usposabljanje" algoritma. Razumevanje algoritma K-NN je bilo prav tako zahtevno, vendar je bilo zelo zadovoljivo končno razumeti, kako deluje. Trenutno delam na tem, da bi koda za K-NN delovala, in sem zelo blizu zaključka.

3. korak: Soočene težave in pridobljene lekcije

Prva velika težava je bil obseg samega projekta. To je bilo bolj raziskovalno kot fizično. Ko so tedni minili, sem si ogledal napredek, ki so ga dosegli moji vrstniki, in čutil, da ne delam dovolj oziroma da ne napredujem dovolj hitro, kar je včasih zelo demotiviralo. Pogovor s profesorjem Mallochom in samo pomiritev, da se res učim stvari, ki so mi bile zelo nove, so mi pomagale nadaljevati. Druga težava je bila, da sta poznavanje teoretičnih stvari in njihova uporaba dve različni stvari. Čeprav sem vedel, kaj moram, je bilo dejansko kodiranje v pythonu druga zgodba. Tukaj je samo branje dokumentacije na spletu in spraševanje prijateljev, ki so vedeli za to, veliko pripomoglo k končnemu oblikovanju akcijskega načrta.

Osebno menim, da bi večja knjižnica knjig in dokumentov v M5 lahko pomagala ljudem, ki delajo na projektih. Prav tako je za M5 dobra digitalna evidenca projektov, ki jih izvajajo študentje v realnem času, da si jih lahko ogledajo drugi sodelavci in sodelujejo, če jih to zanima.

Ko se projekt konča, sem se v tako kratkem času toliko naučil. Pridobila sem zelo delovno znanje o strojnem učenju in se mi zdi, da sem naredila prve korake, da bi se vanj bolj vključila. Spoznal sem, da imam rad računalniški vid in da bi se tega morda želel ukvarjati tudi v prihodnje. Najpomembneje je, da sem se naučil, kaj je PCA, zakaj je tako pomemben in kako ga uporabiti.

4. korak: Naslednji koraki

Zame je bilo to samo praskanje po površini nečesa veliko bolj obsežnega in nečesa, kar je v današnjem svetu zelo pomembno, to je strojnega učenja. V bližnji prihodnosti nameravam obiskovati tečaje, povezane s strojnim učenjem. Nameravam tudi graditi svojo pot do prepoznavanja obrazov, saj se je tam začel celoten projekt. Imam tudi ideje za varnostni sistem, ki uporablja kombinacijo funkcij (ena od njih je obraz osebe), da bi bil resnično varen, in na tem bi rad delal v prihodnje, ko bom bolje razumel stvari.

Vsem, kot sem jaz, ki se zanimajo za strojno učenje in obdelavo slik, vendar nimajo predhodnih izkušenj, toplo priporočam prvo učenje in razumevanje linearne algebre skupaj s statistiko (zlasti distribucijami). Drugič, priporočam branje Prepoznavanje vzorcev in strojno učenje avtorja Christopherja M. Bishop. Ta knjiga mi je pomagala razumeti osnove tega, v kar sem se spuščala, in je zelo dobro strukturirana.

Priporočena: