Obsah:

Analýza hlavných komponentov: 4 kroky
Analýza hlavných komponentov: 4 kroky

Video: Analýza hlavných komponentov: 4 kroky

Video: Analýza hlavných komponentov: 4 kroky
Video: TOP 4 LIDÉ Z BUDOUCNOSTI, KTEŘÍ NÁS PŘIŠLI VAROVAT 2024, November
Anonim
Analýza hlavných komponentov
Analýza hlavných komponentov

Analýza hlavných komponentov je štatistická metóda, ktorá pomocou ortogonálnych transformácií prevádza množinu potenciálne korelovaných premenných na množinu lineárne nekorelovaných hodnôt. Jednoducho povedané, vzhľadom na množinu údajov s viacerými dimenziami to pomáha znížiť počet dimenzií, a tým uľahčiť čítanie údajov.

Krok 1: Pôvodné plány

Prišiel som do tejto triedy s myšlienkou, že by som chcel porozumieť a dúfajme, že napíšem algoritmus, ktorý by dokázal dodávať obrázky s rozpoznaním tváre. Nemal som žiadne predchádzajúce skúsenosti ani znalosti o ničom, čo by malo súvisieť s rozpoznávaním tváre, a netušil som, aké ťažké je dosiahnuť niečo také. Po rozhovore s profesorom Mallochom som si uvedomil, že sa musím veľa vecí naučiť, než budem môcť úplne porozumieť úlohe, ktorú som nakoniec plánoval dosiahnuť.

Po troche výskumu som sa nakoniec rozhodol, že viac ako čokoľvek iné, čo potrebujem, aby som sa naučil lineárnu algebru a niektoré základy strojového učenia, a rozhodol som sa pre PCA (analýza základných komponentov), aby to bol môj cieľ pre túto triedu.

Krok 2: Výskum

Výskum
Výskum

Prvým krokom bolo navštíviť knižnicu a nájsť akúkoľvek knihu, ktorá ma zoznámila so strojovým učením a konkrétnejšie so spracovaním obrazu. Ukázalo sa, že je to oveľa ťažšie, ako som si myslel, a nakoniec som z toho nič nemal. Potom som sa rozhodol požiadať priateľa, ktorý pracoval vo Vision Lab, ktorý ma požiadal, aby som sa zaoberal lineárnou algebrou a konkrétnejšie vlastnými vektormi a vlastnými hodnotami. Mal som nejaké skúsenosti s lineárnou algebrou z triedy, ktorú som absolvoval v druhom ročníku, ale nechápal som, ako môžu byť vlastné vektory alebo vlastné hodnoty užitočné pri práci s obrázkami. Keď som viac pátral, pochopil som, že obrázky nie sú ničím iným než obrovskými súbormi údajov, a preto ich možno považovať za matice, a preto mi bolo o niečo jasnejšie, prečo sú vlastné vektory relevantné pre to, čo robím. V tomto mieste som sa rozhodol, že by som sa mal naučiť čítať obrázky pomocou pythonu, pretože som vo svojom projekte použil python. Spočiatku som na čítanie obrázkov používal CV2.imread, ale ukázalo sa, že je to naozaj pomalé, a preto som sa rozhodol použiť glob a PIL.image.open, pretože to je oveľa rýchlejšie. Tento proces na papieri sa zdá byť relatívne časovo nenáročný, ale v skutočnosti zabral veľa času, pretože som sa musel naučiť inštalovať a importovať rôzne knižnice do systému PyCharm (IDE) a potom si prečítať dokumentáciu online pre každú knižnicu. Počas toho som sa tiež naučil používať príkazy pip install v príkazovom riadku.

Potom bolo ďalším krokom zistiť, čo presne by som chcel robiť a naučiť sa pri spracovaní obrazu a pôvodne som plánoval vykonať párovanie šablón, ale keď som to hľadal, dozvedel som sa o PCA a zistil som, že je to zaujímavejšie, a tak som sa rozhodol choďte radšej s PCA. Prvý termín, ktorý sa stále objavoval, bol algoritmus K-NN (K- najbližší sused). Toto bolo moje prvé vystavenie algoritmu strojového učenia. Dozvedel som sa o údajoch o školení a testovaní a o tom, čo znamená „školenie“algoritmu. Pochopenie algoritmu K-NN bolo tiež náročné, ale bolo veľmi uspokojujúce konečne pochopiť, ako funguje. Aktuálne pracujem na tom, aby kód pre K-NN fungoval a som veľmi blízko k dokončeniu.

Krok 3: Tvárou v tvár ťažkostiam a získaným ponaučeniam

Prvou veľkou ťažkosťou bol rozsah samotného projektu. Toto bolo viac zamerané na výskum ako na fyzické. Ako niekoľko týždňov plynulo, pozrel som sa na pokrok, ktorý robili moji rovesníci, a cítil som, že nerobím dosť alebo že nerobím dostatočne rýchly pokrok a to bolo niekedy veľmi demotivujúce. Rozhovor s profesorom Mallochom a ubezpečenie sa, že sa skutočne učím veci, ktoré sú pre mňa veľmi nové, mi pomohli pokračovať. Ďalším problémom bolo, že poznať teoretické veci a aplikovať ich sú dve rôzne veci. Aj keď som vedel, čo musím, v skutočnosti bolo kódovanie v pythone iný príbeh. Tu práve čítanie dokumentácií online a opýtanie sa priateľov, ktorí o tom vedeli viac, pomohli mnohým konečne vypracovať akčný plán.

Osobne si myslím, že väčšia knižnica kníh a dokumentov na M5 by mohla pomôcť ľuďom, ktorí pracujú na projektoch. Pre M5 je tiež dobré mať v reálnom čase digitálny záznam o projektoch, ktoré študenti robia, aby sa na to mohli pozrieť ostatní študenti a zamestnanci a zapojiť sa, ak ich to zaujíma.

Keď sa projekt končí, naučil som sa toho toľko za tak krátky čas. Nadobudol som veľmi pracovné znalosti o strojovom učení a mám pocit, že som urobil prvé kroky, aby som sa do neho viac zapojil. Uvedomil som si, že mám rád počítačové videnie a že by som sa tomu chcel možno venovať aj v budúcnosti. Najdôležitejšie je, že som sa dozvedel, čo je PCA, prečo je taký dôležitý a ako ho používať.

Krok 4: Ďalšie kroky

Pre mňa to bolo len poškriabanie povrchu niečoho oveľa rozsiahlejšieho a niečoho, čo je v dnešnom svete veľmi dôležité, tj. Strojové učenie. V blízkej budúcnosti plánujem absolvovať kurzy súvisiace so strojovým učením. Mám tiež v pláne vybudovať si cestu k rozpoznávaniu tvárí, pretože tam sa celý tento projekt začal. Mám tiež nápady na bezpečnostný systém, ktorý využíva kombinované funkcie (jednou z nich je tvár osoby), aby bol skutočne bezpečný, a na tom chcem v budúcnosti pracovať, keď budem veciam rozumieť širšie..

Pre kohokoľvek ako ja, kto sa zaujíma o strojové učenie a spracovanie obrazu, ale nemá predchádzajúce skúsenosti, dôrazne odporúčam najskôr sa naučiť a porozumieť lineárnej algebre spolu so štatistikami (najmä distribúciami). Za druhé, navrhujem prečítať si Rozpoznávanie vzorov a Strojové učenie od Christophera M. Bishopa. Táto kniha mi pomohla porozumieť základom toho, do čoho som sa dostal, a je veľmi dobre štruktúrovaná.

Odporúča: