Povežite se s nama

AI 101

Što je smanjenje dimenzionalnosti?

mm

Što je smanjenje dimenzionalnosti?

Smanjenje dimenzionalnosti je proces koji se koristi za smanjenje dimenzionalnosti skupa podataka, uzimajući mnoge značajke i predstavljajući ih kao manje značajki. Na primjer, smanjenje dimenzionalnosti može se koristiti za smanjenje skupa podataka od dvadeset značajki na samo nekoliko značajki. Redukcija dimenzionalnosti obično se koristi u učenje bez nadzora zadatke za automatsko stvaranje klasa iz mnogih značajki. U cilju boljeg razumijevanja zašto i kako se koristi smanjenje dimenzionalnosti, pogledat ćemo probleme povezane s visokodimenzionalnim podacima i najpopularnije metode smanjenja dimenzionalnosti.

Više dimenzija dovodi do pretjeranog opremanja

Dimenzionalnost se odnosi na broj značajki/stupaca unutar skupa podataka.

Često se pretpostavlja da je kod strojnog učenja više značajki bolje jer stvara točniji model. Međutim, više značajki ne znači nužno i bolji model.

Značajke skupa podataka mogu uvelike varirati s obzirom na to koliko su korisne za model, pri čemu su mnoge značajke od male važnosti. Osim toga, što skup podataka sadrži više značajki, potrebno je više uzoraka kako bi se osiguralo da su različite kombinacije značajki dobro predstavljene unutar podataka. Stoga se broj uzoraka povećava proporcionalno broju značajki. Više uzoraka i više značajki znači da model treba biti složeniji, a kako modeli postaju složeniji, postaju osjetljiviji na prekomjerno opremanje. Model predobro uči obrasce u podacima o obuci i ne uspijeva generalizirati podatke izvan uzorka.

Smanjenje dimenzionalnosti skupa podataka ima nekoliko prednosti. Kao što je spomenuto, jednostavniji modeli manje su skloni pretjeranom opremanju, budući da model mora napraviti manje pretpostavki o tome kako su značajke međusobno povezane. Osim toga, manje dimenzija znači manje računalne snage potrebne za treniranje algoritama. Slično, potrebno je manje prostora za pohranu za skup podataka manje dimenzionalnosti. Smanjenje dimenzionalnosti skupa podataka također vam može omogućiti upotrebu algoritama koji nisu prikladni za skupove podataka s mnogo značajki.

Uobičajene metode smanjenja dimenzionalnosti

Smanjenje dimenzionalnosti može biti odabirom značajki ili inženjeringom značajki. Odabir značajki je mjesto gdje inženjer identificira najrelevantnije značajke skupa podataka, dok inženjering značajki je proces stvaranja novih značajki kombiniranjem ili transformacijom drugih značajki.

Odabir značajki i inženjering mogu se obaviti programski ili ručno. Prilikom ručnog odabira i projektiranja značajki, tipična je vizualizacija podataka radi otkrivanja korelacija između značajki i klasa. Provođenje smanjenja dimenzionalnosti na ovaj način može biti prilično vremenski zahtjevno i stoga neki od najčešćih načina smanjenja dimenzionalnosti uključuju korištenje algoritama dostupnih u bibliotekama poput Scikit-learn za Python. Ovi uobičajeni algoritmi za smanjenje dimenzionalnosti uključuju: analizu glavnih komponenti (PCA), dekompoziciju singularne vrijednosti (SVD) i linearnu diskriminantnu analizu (LDA).

Algoritmi koji se koriste za smanjenje dimenzionalnosti za zadatke nenadziranog učenja obično su PCA i SVD, dok su oni koji se koriste za smanjenje dimenzionalnosti nadziranog učenja obično LDA i PCA. U slučaju modela nadziranog učenja, novogenerirane značajke samo se unose u klasifikator strojnog učenja. Imajte na umu da su ovdje opisane upotrebe samo opći slučajevi upotrebe, a ne jedini uvjeti u kojima se ove tehnike mogu koristiti. Gore opisani algoritmi za smanjenje dimenzionalnosti jednostavno su statističke metode i koriste se izvan modela strojnog učenja.

Analiza glavne komponente

Fotografija: Matrica s identificiranim glavnim komponentama

Analiza glavne komponente (PCA) je statistička metoda koja analizira karakteristike/značajke skupa podataka i sažima značajke koje su najutjecajnije. Značajke skupa podataka kombiniraju se zajedno u prikaze koji zadržavaju većinu karakteristika podataka, ali su raspoređeni na manje dimenzija. Ovo možete zamisliti kao "prebacivanje" podataka iz višedimenzionalnog prikaza u onaj sa samo nekoliko dimenzija.

Kao primjer situacije u kojoj PCA može biti koristan, razmislite o različitim načinima na koje bi se moglo opisati vino. Iako je moguće opisati vino pomoću mnogih vrlo specifičnih značajki kao što su razine CO2, razine prozračivanja itd., takve specifične značajke mogu biti relativno beskorisne kada se pokušava identificirati određena vrsta vina. Umjesto toga, bilo bi mudrije identificirati vrstu na temelju općenitijih značajki poput okusa, boje i starosti. PCA se može koristiti za kombiniranje specifičnijih značajki i stvaranje značajki koje su općenitije, korisnije i s manjom vjerojatnošću da će uzrokovati prekomjerno opremanje.

PCA se provodi određivanjem kako ulazne značajke variraju od srednje vrijednosti jedna u odnosu na drugu, određujući postoje li ikakvi odnosi između značajki. Kako bi se to postiglo, stvara se kovarijantna matrica, uspostavljajući matricu sastavljenu od kovarijanci s obzirom na moguće parove značajki skupa podataka. Ovo se koristi za određivanje korelacija između varijabli, pri čemu negativna kovarijanca ukazuje na inverznu korelaciju, a pozitivna korelacija ukazuje na pozitivnu korelaciju.

Glavne (najutjecajnije) komponente skupa podataka stvaraju se stvaranjem linearnih kombinacija početnih varijabli, što se radi uz pomoć koncepata linearne algebre tzv. svojstvene vrijednosti i svojstveni vektori. Kombinacije su stvorene tako da glavne komponente nisu u korelaciji jedna s drugom. Većina informacija sadržanih u početnim varijablama komprimirana je u prvih nekoliko glavnih komponenti, što znači da su stvorene nove značajke (glavne komponente) koje sadrže informacije iz izvornog skupa podataka u manjem dimenzionalnom prostoru.

Dekompozicija singularne vrijednosti

Fotografija: autor Cmglee – vlastiti rad, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Dekompozicija singularne vrijednosti (SVD) is koristi se za pojednostavljenje vrijednosti unutar matrice, smanjujući matricu na sastavne dijelove i čineći izračune s tom matricom lakšim. SVD se može koristiti i za matrice stvarne vrijednosti i za složene matrice, ali za potrebe ovog objašnjenja ispitat ćemo kako dekomponirati matricu stvarnih vrijednosti.

Pretpostavimo da imamo matricu sastavljenu od podataka stvarnih vrijednosti i naš je cilj smanjiti broj stupaca/značajki unutar matrice, slično cilju PCA. Poput PCA, SVD će komprimirati dimenzionalnost matrice uz očuvanje što veće varijabilnosti matrice. Ako želimo operirati na matrici A, možemo predstaviti matricu A kao tri druge matrice nazvane U, D i V. Matrica A sastoji se od izvornih elemenata x * y, dok se matrica U sastoji od elemenata X * X (to je ortogonalna matrica). Matrica V je drugačija ortogonalna matrica koja sadrži elemente y * y. Matrica D sadrži elemente x * y i to je dijagonalna matrica.

Kako bismo rastavili vrijednosti za matricu A, trebamo pretvoriti izvorne vrijednosti singularne matrice u dijagonalne vrijednosti koje se nalaze unutar nove matrice. Pri radu s ortogonalnim matricama njihova se svojstva ne mijenjaju ako se pomnože s drugim brojevima. Stoga možemo aproksimirati matricu A koristeći ovo svojstvo. Kada pomnožimo ortogonalne matrice zajedno s transponiranjem matrice V, rezultat je matrica ekvivalentna našoj izvornoj A.

Kada se matrica a dekomponira na matrice U, D i V, one sadrže podatke koji se nalaze unutar matrice A. Međutim, krajnji lijevi stupci matrica sadržavat će većinu podataka. Možemo uzeti samo ovih prvih nekoliko stupaca i imati reprezentaciju matrice A koja ima mnogo manje dimenzija i većinu podataka unutar A.

Linearna diskriminantna analiza

 

Lijevo: Matrica prije LDA, Desno: Os nakon LDA, sada se može odvojiti

Linearna diskriminantna analiza (LDA) je proces koji uzima podatke iz višedimenzionalnog grafikona i reprojicira ga na linearni graf. To možete zamisliti razmišljajući o dvodimenzionalnom grafikonu ispunjenom podatkovnim točkama koje pripadaju dvjema različitim klasama. Pretpostavimo da su točke razbacane uokolo tako da se ne može nacrtati crta koja bi uredno odvojila dvije različite klase. Kako bi se riješila ova situacija, točke koje se nalaze na 2D grafikonu mogu se svesti na 1D grafikon (linija). Ova linija će imati sve podatkovne točke raspoređene po sebi i nadamo se da se može podijeliti u dva odjeljka koji predstavljaju najbolje moguće odvajanje podataka.

Prilikom provođenja LDA postoje dva primarna cilja. Prvi cilj je minimiziranje varijance za klase, dok je drugi cilj maksimiziranje udaljenosti između sredina dviju klasa. Ovi se ciljevi postižu stvaranjem nove osi koja će postojati u 2D grafikonu. Novostvorena os djeluje tako da razdvaja dvije klase na temelju prethodno opisanih ciljeva. Nakon što je os kreirana, točke koje se nalaze na 2D grafikonu postavljaju se duž osi.

Tri su koraka potrebna za premještanje izvornih točaka na novi položaj duž nove osi. U prvom koraku, srednja vrijednost udaljenosti između pojedinačnih klasa (varijanca između klasa) koristi se za izračun odvojivosti klasa. U drugom koraku izračunava se varijanca unutar različitih klasa, što se radi određivanjem udaljenosti između uzorka i srednje vrijednosti za predmetnu klasu. U završnom koraku stvara se nižedimenzionalni prostor koji maksimizira varijancu između klasa.

LDA tehnika postiže najbolje rezultate kada su sredstva za ciljne klase udaljena jedno od drugog. LDA ne može učinkovito razdvojiti klase linearnom osi ako se sredstva za distribucije preklapaju.

 

Bloger i programer sa specijalnošću u Strojno učenje i Duboko učenje temama. Daniel se nada pomoći drugima da iskoriste snagu umjetne inteligencije za društveno dobro.