Pääkomponenttien analyysi: 4 vaihetta
Pääkomponenttien analyysi: 4 vaihetta
Anonim
Pääkomponenttianalyysi
Pääkomponenttianalyysi

Pääkomponenttien analyysi on tilastollinen menetelmä, joka muuntaa mahdollisesti korreloivien muuttujien joukon lineaarisesti korreloimattomia arvoja käyttäen ortogonaalisia muunnoksia. Yksinkertaisesti sanottuna, kun datajoukko sisältää useita ulottuvuuksia, se auttaa vähentämään ulottuvuuksien määrää ja helpottaa siten tietojen lukemista.

Vaihe 1: Alkuperäiset suunnitelmat

Tulin tähän luokkaan ajatuksella, että halusin ymmärtää ja toivottavasti kirjoittaa algoritmin, joka pystyy suorittamaan kasvojentunnistuksen, kun se toimitetaan kuvien kanssa. Minulla ei ollut aikaisempaa kokemusta tai tietoa kasvojen tunnistamisesta, eikä minulla ollut aavistustakaan siitä, kuinka vaikeaa on saavuttaa jotain tällaista. Puhuessani professori Mallochin kanssa tajusin, että minun on opittava paljon asioita, ennen kuin voin ymmärtää täysin tehtäväni, jonka lopulta suunnittelin saavuttavani.

Pienen tutkimuksen jälkeen päätin vihdoin, että ennen kaikkea minun tarvitsi oppia lineaarinen algebra ja joitain koneoppimisen perusteita, ja päädyin PCA: han (pääkomponenttien analyysi) ollakseni tämän luokan tavoite.

Vaihe 2: Tutkimus

Tutkimus
Tutkimus

Ensimmäinen askel oli käydä kirjastossa ja löytää kirja, joka esitteli minut koneoppimiseen ja erityisesti kuvankäsittelyyn. Tämä osoittautui paljon vaikeammaksi kuin luulin, eikä minulla ollut siitä paljon mitään. Päätin sitten kysyä ystävältäni, joka työskenteli Vision Labissa, joka pyysi minua tutkimaan lineaarista algebraa ja tarkemmin ominaisvektoreita ja ominaisarvoja. Minulla oli jonkin verran kokemusta lineaarisesta algebrasta luokalta, jonka olin suorittanut toisen vuoden kurssillani, mutta en ymmärtänyt, kuinka ominaisvektorit tai ominaisarvot voisivat olla hyödyllisiä käsiteltäessä kuvia. Tutkiessani enemmän ymmärsin, että kuvat olivat vain valtavia tietojoukkoja ja niitä voitaisiin siksi käsitellä matriiseina, ja minulle tuli hieman selkeämmäksi, miksi ominaisvektorit olivat merkityksellisiä tekemissäni. Tässä vaiheessa päätin, että minun pitäisi oppia lukemaan kuvia pythonilla, kun aion käyttää pythonia projektissani. Aluksi aloin käyttää CV2.imread -ohjelmaa kuvien lukemiseen, mutta se osoittautui todella hitaaksi ja siksi päätin käyttää glob- ja PIL.image.open -tiedostoja, koska tämä on paljon nopeampaa. Tämä prosessi paperilla vaikuttaa suhteellisen aikaa vievältä, mutta kesti todella paljon aikaa, koska minun piti oppia asentamaan ja tuomaan erilaisia kirjastoja PyCharmiin (IDE) ja lukemaan sitten kunkin kirjaston online-dokumentaatio. Samalla opin myös käyttämään pip install -käskyjä komentokehotteessa.

Tämän jälkeen seuraava askel oli selvittää, mitä tarkalleen haluan tehdä ja oppia kuvankäsittelyssä, ja aluksi suunnittelin mallien sovittamista, mutta tutkiessani sitä opin PCA: sta ja löysin sen mielenkiintoisemmaksi, joten päätin mene sen sijaan PCA: n kanssa. Ensimmäinen termi, joka ilmestyi jatkuvasti, oli K-NN (K-lähin naapuri) -algoritmi. Tämä oli ensimmäinen kokemukseni koneoppimisalgoritmista. Opin koulutus- ja testaustiedoista sekä siitä, mitä algoritmin "koulutus" tarkoittaa. K-NN-algoritmin ymmärtäminen oli myös haastavaa, mutta oli erittäin tyydyttävää lopulta ymmärtää, miten se toimii. Työskentelen parhaillaan K-NN-koodin toimimisen puolesta ja olen hyvin lähellä valmistumista.

Vaihe 3: Vaikeudet ja opitut kokemukset

Ensimmäinen suuri vaikeus oli itse hankkeen laajuus. Tämä oli enemmän tutkimuslähtöistä kuin fyysistä. Viikkojen kulutuessa joskus katsoin ikäisieni edistystä ja minusta tuntui, että en tehnyt tarpeeksi tai etkä edistynyt tarpeeksi nopeasti ja se oli toisinaan hyvin masentavaa. Puhuminen professori Mallochin kanssa ja vain vakuuttaminen itselleni siitä, että opin todella asioita, jotka olivat minulle hyvin uusia, auttoi minua jatkamaan. Toinen ongelma oli, että teoreettisten asioiden tunteminen ja niiden soveltaminen ovat kaksi eri asiaa. Vaikka tiesin, mitä minun piti, sen koodaaminen pythonissa oli eri tarina. Tässä vain asiakirjojen lukeminen verkossa ja kysymällä ystäviltä, jotka tiesivät asiasta enemmän, auttoi lopulta selvittämään toimintasuunnitelman.

Uskon henkilökohtaisesti, että M5: n laajempi kirja- ja asiakirjakirjasto voisi auttaa ihmisiä, jotka työskentelevät hankkeiden parissa. Myös reaaliaikainen digitaalinen tallenne opiskelijoiden tekemistä projekteista, jotta muut opiskelijat ja henkilökunta voivat katsoa sitä ja osallistua, jos se kiinnostaa heitä, on hyvä idea M5: lle.

Kun projekti päättyy, olen oppinut niin paljon niin lyhyessä ajassa. Olen saanut erittäin toimivan tiedon koneoppimisesta ja minusta tuntuu, että olen ottanut ensimmäiset askeleet osallistuakseni siihen enemmän. Olen ymmärtänyt, että pidän tietokonenäköstä ja että ehkä haluan jatkaa tätä myös tulevaisuudessa. Ennen kaikkea olen oppinut, mikä PCA on, miksi se on niin tärkeä ja miten sitä käytetään.

Vaihe 4: Seuraavat vaiheet

Minulle tämä oli vain raapiminen pintaan jotain paljon laajempaa ja jotain, joka on erittäin tärkeä nykymaailmassa, eli koneoppiminen. Aion osallistua koneoppimiseen liittyville kursseille lähitulevaisuudessa. Aion myös rakentaa tietäni kasvojentunnistukseen, koska tästä koko projekti alkoi. Minulla on myös ideoita turvajärjestelmästä, joka käyttää yhdistelmäominaisuuksia (yksi niistä on henkilön kasvot), jotta se olisi todella turvallinen, ja haluan työskennellä tulevaisuudessa, kun ymmärrän asioita laajemmin.

Kaikille kaltaisilleni, jotka ovat kiinnostuneita koneoppimisesta ja kuvankäsittelystä, mutta joilla ei ole aiempaa kokemusta, suosittelen lämpimästi lineaarisen algebran oppimista ja ymmärtämistä sekä tilastoja (erityisesti jakaumia). Toiseksi ehdottaisin, että luet Christopher M. Bishopin mallintunnistuksen ja koneoppimisen. Tämä kirja auttoi minua ymmärtämään perusteet siihen, mihin olin ryhtymässä, ja sen rakenne on erittäin hyvä.