AI:n perusteet

MitÃĪ on Dimensioanalennus?

mm
LisÃĪÃĪ Unite.AI suosikkilÃĪhteisiisi Google-palvelussa

MitÃĪ on Dimensioanalennus?

Dimensioanalennus on prosessi, jolla aineiston ulottuvuutta voidaan vÃĪhentÃĪÃĪ, ottamalla monia ominaisuuksia ja edustamalla niitÃĪ vÃĪhemmÃĪllÃĪ ominaisuuksilla. Esimerkiksi dimensioanalennusta voidaan kÃĪyttÃĪÃĪ vÃĪhentÃĪmÃĪÃĪn 20 ominaisuuden aineistoa muutamaksi ominaisuudeksi. Dimensioanalennusta kÃĪytetÃĪÃĪn yleisesti valvomattomissa oppimistehtÃĪvissÃĪ luomaan luokat automaattisesti monista ominaisuuksista. Jotta voisimme paremmin ymmÃĪrtÃĪÃĪ miksi ja miten dimensioanalennusta kÃĪytetÃĪÃĪn, tarkastelemme ongelmia, jotka liittyvÃĪt korkean ulottuvuuden aineistoihin ja tavanomaisiin menetelmiin, joilla ulottuvuutta voidaan vÃĪhentÃĪÃĪ.

LisÃĪÃĪ ulottuvuuksia johtaa ylioppimiseen

Ulottuvuus viittaa aineiston ominaisuuksien/ sarakkeiden mÃĪÃĪrÃĪÃĪn.

Usein oletetaan, ettÃĪ koneoppimisessa enemmÃĪn ominaisuuksia on parempaa, koska se luo tarkemman mallin. Kuitenkin enemmÃĪn ominaisuuksia ei vÃĪlttÃĪmÃĪttÃĪ tarkoita parempaa mallia.

Aineiston ominaisuudet voivat vaihdella suuresti sen suhteen, kuinka hyÃķdyllisiÃĪ ne ovat mallille, ja useat ominaisuudet ovat vain vÃĪhÃĪn merkityksellisiÃĪ. LisÃĪksi mitÃĪ enemmÃĪn aineistossa on ominaisuuksia, sitÃĪ enemmÃĪn nÃĪytteitÃĪ tarvitaan varmistamaan, ettÃĪ eri ominaisuuksien yhdistelmÃĪt ovat hyvin edustettuina aineistossa. TÃĪmÃĪn seurauksena nÃĪytteiden mÃĪÃĪrÃĪ kasvaa suhteessa ominaisuuksien mÃĪÃĪrÃĪÃĪn. EnemmÃĪn nÃĪytteitÃĪ ja enemmÃĪn ominaisuuksia tarkoittaa, ettÃĪ mallin on oltava monimutkaisempi, ja mitÃĪ monimutkaisemmaksi mallit tulevat, sitÃĪ herkemmin ne altistuvat ylioppimiselle. Malli oppii liian hyvin koulutusaineistosta ja se ei pysty yleistÃĪmÃĪÃĪn aineistoon, jota ei ole koulutettu.

Aineiston ulottuvuuden vÃĪhentÃĪminen on useita etuja. Kuten mainittiin, yksinkertaisemmat mallit ovat vÃĪhemmÃĪn alttiita ylioppimiselle, koska mallin on tehtÃĪvÃĪ vÃĪhemmÃĪn oletuksia siitÃĪ, miten ominaisuudet liittyvÃĪt toisiinsa. LisÃĪksi vÃĪhemmÃĪn ulottuvuuksia tarkoittaa, ettÃĪ vÃĪhemmÃĪn laskentakapasiteettia tarvitaan algoritmien kouluttamiseen. Samoin vÃĪhemmÃĪn ulottuvuuksia tarkoittaa, ettÃĪ vÃĪhemmÃĪn tallennustilaa tarvitaan aineistolle, jolla on pienempi ulottuvuus. Aineiston ulottuvuuden vÃĪhentÃĪminen voi myÃķs mahdollistaa algoritmien kÃĪytÃķn, jotka eivÃĪt sovellu aineistoihin, joissa on paljon ominaisuuksia.

Yleiset dimensioanalennusmenetelmÃĪt

Dimensioanalennusta voidaan tehdÃĪ joko ominaisuuden valinnalla tai ominaisuuden suunnittelulla. Ominaisuuden valinta on prosessi, jossa insinÃķÃķri tunnistaa aineiston merkittÃĪvimmÃĪt ominaisuudet, kun taas ominaisuuden suunnittelu on prosessi, jossa luodaan uusia ominaisuuksia yhdistÃĪmÃĪllÃĪ tai muokkaamalla muita ominaisuuksia.

Ominaisuuden valinta ja suunnittelu voidaan tehdÃĪ ohjelmallisesti tai manuaalisesti. Kun ominaisuuksia valitaan ja suunnitellaan manuaalisesti, on tyypillistÃĪ visualisoida aineisto havainnollistamaan ominaisuuksien ja luokkien vÃĪlisiÃĪ korrelaatioita. Dimensioanalennuksen suorittaminen tÃĪllÃĪ tavoin voi olla hyvin aikaa vievÃĪÃĪ, ja siksi yleisimmissÃĪ tapauksissa dimensioanalennusta varten kÃĪytetÃĪÃĪn kirjastojen, kuten Scikit-learnin, algoritmeja. NÃĪmÃĪ yleiset dimensioanalennusalgoritmit ovat pÃĪÃĪkomponenttianalyysi (PCA), yksinkertainen arvojen hajotelma (SVD) ja lineaariset erotteluanalyysit (LDA).

Valvomattomissa oppimistehtÃĪvissÃĪ kÃĪytettÃĪvÃĪt dimensioanalennusalgoritmit ovat tyypillisesti PCA ja SVD, kun taas valvottujen oppimistehtÃĪvien dimensioanalennuksessa kÃĪytetÃĪÃĪn tyypillisesti LDA:ta ja PCA:ta. Valvottujen oppimistehtÃĪvien mallien tapauksessa uudet ominaisuudet syÃķtetÃĪÃĪn suoraan koneoppimismalliin. Huomaa, ettÃĪ tÃĪssÃĪ kuvatut kÃĪytÃķt ovat yleisiÃĪ kÃĪyttÃķtarkoituksia eivÃĪtkÃĪ ainoita tilanteita, joissa nÃĪitÃĪ tekniikoita voidaan kÃĪyttÃĪÃĪ. Dimensioanalennusalgoritmit, joita on kuvattu yllÃĪ, ovat pelkÃĪstÃĪÃĪn tilastollisia menetelmiÃĪ, ja niitÃĪ kÃĪytetÃĪÃĪn koneoppimismallien ulkopuolella.

PÃĪÃĪkomponenttianalyysi

Kuva: Matriisi, jossa on pÃĪÃĪkomponentit

PÃĪÃĪkomponenttianalyysi (PCA) on tilastollinen menetelmÃĪ, joka analysoi aineiston ominaisuuksia ja tiivistÃĪÃĪ ne ominaisuuksiksi, jotka ovat merkittÃĪvimmÃĪt. Aineiston ominaisuudet yhdistetÃĪÃĪn edustamaan niitÃĪ vÃĪhemmÃĪn ulottuvuuksilla. Voit ajatella tÃĪtÃĪ â€œpakkaamalla” aineistoa alempaan ulottuvuuteen.

EsimerkkinÃĪ tilanteesta, jossa PCA:ta voisi olla hyÃķdyllistÃĪ, voit ajatella eri tavoja, joilla voit kuvailla viiniÃĪ. Vaikka on mahdollista kuvailla viiniÃĪ monilla erityisen tarkoilla ominaisuuksilla, kuten CO2-tasolla, happamuudella jne., nÃĪmÃĪ ominaisuudet voivat olla melko hyÃķdyttÃķmiÃĪ, kun yritetÃĪÃĪn tunnistaa tietynlainen viini. Sen sijaan olisi jÃĪrkevÃĪmpÃĪÃĪ tunnistaa viinin tyyppi yleisemmillÃĪ ominaisuuksilla, kuten maulla, vÃĪrillÃĪ ja iÃĪllÃĪ. PCA:ta voidaan kÃĪyttÃĪÃĪ yhdistÃĪmÃĪllÃĪ tarkempia ominaisuuksia ja luomalla ominaisuuksia, jotka ovat yleisempiÃĪ, hyÃķdyllisempiÃĪ ja vÃĪhemmÃĪn alttiita ylioppimiselle.

PCA suoritetaan mÃĪÃĪrittÃĪmÃĪllÃĪ, miten syÃķte-ominaisuudet poikkeavat keskiarvon suhteen toisiinsa nÃĪhden, ja mÃĪÃĪrittÃĪmÃĪllÃĪ, onko ominaisuuksien vÃĪlillÃĪ suhteita. TÃĪtÃĪ varten luodaan kovarianssimatriisi, joka koostuu ominaisuuksien keskinÃĪisistÃĪ kovariansseista. TÃĪmÃĪ kÃĪytetÃĪÃĪn mÃĪÃĪrittÃĪmÃĪÃĪn muuttujien vÃĪliset korrelaatiot, joissa negatiivinen kovarianssi osoittaa kÃĪÃĪnteisen korrelaation ja positiivinen korrelaatio osoittaa positiivisen korrelaation.

Aineiston pÃĪÃĪkomponentit (vaikutusvaltaisimmat ominaisuudet) luodaan luomalla lineaarisia yhdistelmiÃĪ alkuperÃĪisistÃĪ muuttujista, mikÃĪ tehdÃĪÃĪn lineaarialgebran kÃĪsitteiden, ominaisarvojen ja omivektoreiden, avulla. YhdistelmÃĪt luodaan siten, ettÃĪ pÃĪÃĪkomponentit eivÃĪt ole korreloivia toisiinsa. AlkuperÃĪisistÃĪ muuttujista suurin osa tiedosta on pakattu ensimmÃĪisiin pÃĪÃĪkomponentteihin, mikÃĪ tarkoittaa, ettÃĪ on luotu uusia ominaisuuksia (pÃĪÃĪkomponentteja), jotka sisÃĪltÃĪvÃĪt alkuperÃĪisen aineiston tiedon pienemmÃĪssÃĪ ulottuvuudessa.

Yksinkertainen arvojen hajotelma

Kuva: Yksinkertainen arvojen hajotelma

Yksinkertainen arvojen hajotelma (SVD) on menetelmÃĪ, jolla voidaan yksinkertaisuttaa matriisin arvoja ja tehdÃĪ laskutoimitukset helpommaksi. SVD voidaan kÃĪyttÃĪÃĪ sekÃĪ reaalisten ettÃĪ kompleksisten matriisien kanssa, mutta tÃĪssÃĪ selityksessÃĪ tarkastelemme, miten reaalisten arvojen matriisia voidaan hajottaa.

Oletetaan, ettÃĪ meillÃĪ on matriisi, joka koostuu reaaliluvuista, ja tavoitteemme on vÃĪhentÃĪÃĪ matriisin sarakkeiden/ominaisuuksien mÃĪÃĪrÃĪÃĪ. Kuten PCA:ssa, SVD:ssÃĪ pyritÃĪÃĪn pakkaamaan matriisin ulottuvuus siten, ettÃĪ sÃĪilytetÃĪÃĪn mahdollisimman paljon matriisin vaihtelua. Jos haluamme toimia matriisi A:lla, voimme edustaa matriisia A kolmena muuna matriisina, U, D ja V. Matriisi A koostuu alkuperÃĪisistÃĪ x * y -alkioista, kun taas matriisi U koostuu ortogonaalisista alkioista, jotka ovat kooltaan X * X. Matriisi V on toinen ortogonaalinen matriisi, joka koostuu y * y -alkioista. Matriisi D sisÃĪltÃĪÃĪ x * y -alkiot, ja se on diagonaali-matriisi.

Jotta voisimme hajottaa matriisi A:n arvot, meidÃĪn on muunnettava alkuperÃĪiset yksinkertaiset matriisiarvot uuden matriisin diagonaaliarvoiksi. Koska ortogonaalisten matriisien ominaisuudet eivÃĪt muutu, kun ne kerrotaan toisilla luvuilla, voimme approksimoida matriisia A ottamalla hyÃķdyksi tÃĪtÃĪ ominaisuutta. Kun ortogonaaliset matriisit kerrotaan toistensa kanssa ja matriisi V transponoidaan, tuloksena on matriisi, joka on vastaava kuin alkuperÃĪinen matriisi A.

Kun matriisi A on hajotettu matriisien U, D ja V avulla, ne sisÃĪltÃĪvÃĪt tiedon, joka on matriisissa A. Kuitenkin vasemmanpuoleiset sarakkeet nÃĪissÃĪ matriiseissa sisÃĪltÃĪvÃĪt suurimman osan tiedosta. Voimme ottaa vain nÃĪmÃĪ ensimmÃĪiset sarakkeet ja saada edustuksen matriisista A, jolla on paljon vÃĪhemmÃĪn ulottuvuuksia ja suurin osa tiedosta A:sta.

Lineaariset erotteluanalyysit

 

Vasen: Matriisi ennen LDA:ta, Oikea: Akseleita LDA:n jÃĪlkeen, nyt erottuvat</caption]

Lineaariset erotteluanalyysit (LDA) on prosessi, joka ottaa dataa moniulotteisesta kaaviosta ja projisoi sen lineaariseen kaavioon. Voit kuvitella tÃĪmÃĪn ajattelemalla kaksiulotteista kaaviota, jossa on data-pisteitÃĪ, jotka kuuluvat kahteen eri luokkaan. Oletetaan, ettÃĪ pisteet ovat hajallaan siten, ettÃĪ mikÃĪÃĪn viiva ei voi erottaa kahta luokkaa. TÃĪssÃĪ tapauksessa 2D-kaavion pisteet voidaan vÃĪhentÃĪÃĪ 1D-kaavioon (viivaan). TÃĪmÃĪ viiva sisÃĪltÃĪÃĪ kaikki data-pisteet, ja se voidaan jakaa kahteen osaan, jotka edustavat parasta mahdollista datan erottelua.

Kun suoritetaan LDA, on kaksi pÃĪÃĪmaalia. EnsimmÃĪinen tavoite on minimoida luokkien vaihtelu, ja toinen tavoite on maksimoida etÃĪisyys luokkien keskiarvojen vÃĪlillÃĪ. NÃĪmÃĪ tavoitteet saavutetaan luomalla uusi aksele, joka erottaa kaksi luokkaa edellÃĪ kuvattujen tavoitteiden mukaisesti. Uuden akselin luomisen jÃĪlkeen 2D-kaavion pisteet asetetaan akselelle.

On kolme askelta, joita on tehtÃĪvÃĪ siirtÃĪÃĪksesi alkuperÃĪiset pisteet uudelle akselelle. EnsimmÃĪisessÃĪ vaiheessa lasketaan luokkien keskiarvojen (luokkien vÃĪlinen vaihtelu) etÃĪisyys, jotta voidaan laskea luokkien erottuvuus. Toisessa vaiheessa lasketaan luokkien sisÃĪinen vaihtelu mÃĪÃĪrittÃĪmÃĪllÃĪ etÃĪisyys nÃĪyte- ja luokan keskiarvon vÃĪlillÃĪ. Lopullisessa vaiheessa luodaan alempiulotteinen avaruus, joka maksimoi vaihtelun luokkien vÃĪlillÃĪ.

LDA-teknologia saa parhaat tuloksensa, kun kohdeluokkien keskiarvot ovat kaukana toisistaan. LDA ei voi erottaa luokkia lineaarisella akselella, jos keskiarvot jakautuvat.

Blogger ja ohjelmoija, jolla on erityisalat Machine Learning ja Deep Learning -aiheissa. Daniel toivoo pystyvÃĪnsÃĪ auttamaan muita kÃĪyttÃĪmÃĪÃĪn tekoÃĪlyn voimaa sosiaaliseen hyvÃĪÃĪn.