Spojte se s námi

AI 101

Co je redukce rozměrů?

mm

Co je redukce rozměrů?

Redukce rozměrů je proces, který se používá ke snížení rozměrů datové sady, přičemž bere mnoho funkcí a představuje je jako méně funkcí. Například redukce rozměrů by mohla být použita k redukci datové sady dvaceti prvků na pouhých několik prvků. Redukce rozměrů se běžně používá v učení bez dozoru úkoly k automatickému vytváření tříd z mnoha funkcí. Abychom lépe rozuměli proč a jak se používá redukce rozměrů, podíváme se na problémy spojené s vysokorozměrnými daty a nejoblíbenějšími metodami snižování dimenzionality.

Více rozměrů vede k nadměrné montáži

Rozměrnost se týká počtu prvků/sloupců v datové sadě.

Často se předpokládá, že ve strojovém učení je lepších více funkcí, protože vytváří přesnější model. Více funkcí však nemusí nutně znamenat lepší model.

Funkce datové sady se mohou značně lišit v tom, jak užitečné jsou pro model, přičemž mnoho funkcí je málo důležitých. Navíc, čím více funkcí datová sada obsahuje, tím více vzorků je potřeba k zajištění toho, že různé kombinace funkcí jsou v datech dobře zastoupeny. Proto se počet vzorků zvyšuje úměrně s počtem znaků. Více vzorků a více funkcí znamená, že model musí být složitější, a jak se modely stávají složitějšími, stávají se citlivějšími na přemontování. Model se příliš dobře učí vzory v trénovacích datech a nedokáže zobecnit na mimo vzorová data.

Snížení rozměrů datové sady má několik výhod. Jak již bylo zmíněno, jednodušší modely jsou méně náchylné k přemontování, protože model musí vytvářet méně předpokladů ohledně toho, jak spolu funkce souvisí. Méně rozměrů navíc znamená, že k trénování algoritmů je potřeba méně výpočetního výkonu. Podobně je potřeba méně úložného prostoru pro datovou sadu, která má menší rozměr. Snížení dimenzionality datové sady vám také umožní používat algoritmy, které nejsou vhodné pro datové sady s mnoha funkcemi.

Společné metody redukce rozměrů

Snížení rozměrů může být provedeno výběrem prvku nebo konstrukčním řešením prvku. Výběr funkcí je místo, kde technik identifikuje nejdůležitější vlastnosti datové sady funkce inženýrství je proces vytváření nových funkcí kombinací nebo transformací jiných funkcí.

Výběr funkcí a inženýrství lze provádět programově nebo ručně. Při ručním výběru a konstrukci prvků je typická vizualizace dat za účelem zjištění korelací mezi prvky a třídami. Provádění redukce dimenzionality tímto způsobem může být poměrně časově náročné, a proto některé z nejběžnějších způsobů redukce dimenzionality zahrnují použití algoritmů dostupných v knihovnách, jako je Scikit-learn pro Python. Mezi tyto běžné algoritmy snižování dimenzionality patří: hlavní komponentová analýza (PCA), singulární rozklad hodnoty (SVD) a lineární diskriminační analýza (LDA).

Algoritmy používané při snižování dimenzionality u úloh učení bez dozoru jsou typicky PCA a SVD, zatímco algoritmy využívané pro snižování dimenzionality učení pod dohledem jsou typicky LDA a PCA. V případě modelů učení pod dohledem jsou nově vygenerované funkce pouze vloženy do klasifikátoru strojového učení. Vezměte na vědomí, že zde popsaná použití jsou pouze obecné případy použití a nikoli jediné podmínky, za kterých lze tyto techniky použít. Algoritmy redukce rozměrů popsané výše jsou jednoduše statistické metody a používají se mimo modely strojového učení.

Analýza hlavních komponent

Foto: Matice s identifikovanými hlavními součástmi

Analýza hlavních komponent (PCA) je statistická metoda, která analyzuje charakteristiky/funkce souboru dat a shrnuje vlastnosti, které jsou nejvlivnější. Funkce datové sady jsou zkombinovány do reprezentací, které zachovávají většinu charakteristik dat, ale jsou rozloženy do menšího počtu dimenzí. Můžete si to představit jako „stlačení“ dat z reprezentace vyšších dimenzí na reprezentaci s několika dimenzemi.

Jako příklad situace, kdy by PCA mohla být užitečná, zamyslete se nad různými způsoby, jak by se dalo popsat víno. I když je možné popsat víno pomocí mnoha vysoce specifických vlastností, jako jsou úrovně CO2, úrovně provzdušnění atd., tyto specifické vlastnosti mohou být při pokusu o identifikaci konkrétního typu vína relativně k ničemu. Místo toho by bylo prozíravější určit typ na základě obecnějších znaků, jako je chuť, barva a věk. PCA lze použít ke kombinaci specifičtějších funkcí a vytváření funkcí, které jsou obecnější, užitečnější a méně pravděpodobné, že způsobí přemontování.

PCA se provádí určením, jak se vstupní znaky liší od střední hodnoty vůči sobě navzájem, přičemž se určí, zda mezi znaky existují nějaké vztahy. Za tímto účelem je vytvořena kovariantní matice, která ustanoví matici složenou z kovariancí s ohledem na možné páry vlastností datové sady. To se používá k určení korelací mezi proměnnými, přičemž negativní kovariance indikuje inverzní korelaci a pozitivní korelace indikuje pozitivní korelaci.

Hlavní (nejvlivnější) složky datového souboru jsou vytvořeny vytvořením lineárních kombinací počátečních proměnných, což se provádí pomocí konceptů lineární algebry tzv. vlastní čísla a vlastní vektory. Kombinace jsou vytvořeny tak, že hlavní komponenty spolu nekorelují. Většina informací obsažených v počátečních proměnných je komprimována do několika prvních hlavních komponent, což znamená, že byly vytvořeny nové funkce (hlavní komponenty), které obsahují informace z původní datové sady v menším rozměrovém prostoru.

Dekompozice singulární hodnoty

Foto: Autor Cmglee – Vlastní dílo, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Dekompozice singulární hodnoty (SVD) is slouží ke zjednodušení hodnot v matici, redukuje matici na její jednotlivé části a usnadňuje výpočty s touto maticí. SVD lze použít jak pro matice reálné hodnoty, tak pro komplexní matice, ale pro účely tohoto vysvětlení bude zkoumat, jak rozložit matici reálných hodnot.

Předpokládejme, že máme matici složenou z dat reálné hodnoty a naším cílem je snížit počet sloupců/prvků v matici, podobně jako cíl PCA. Stejně jako PCA bude SVD komprimovat dimenzionalitu matice při zachování co největší variability matice. Pokud chceme pracovat s maticí A, můžeme matici A reprezentovat jako tři další matice zvané U, D a V. Matice A se skládá z původních x * y prvků, zatímco matice U se skládá z prvků X * X (je ortogonální matice). Matice V je jiná ortogonální matice obsahující y * y prvků. Matice D obsahuje prvky x * y a je to diagonální matice.

Abychom mohli rozložit hodnoty pro matici A, musíme převést původní singulární hodnoty matice na hodnoty diagonální nalezené v nové matici. Při práci s ortogonálními maticemi se jejich vlastnosti nemění, pokud jsou vynásobeny jinými čísly. Proto můžeme matici A aproximovat využitím této vlastnosti. Když vynásobíme ortogonální matice spolu s transpozicí matice V, výsledkem je ekvivalentní matice s naší původní A.

Když je matice a rozložena na matice U, D a V, obsahují data nalezená v matici A. Sloupce matice zcela vlevo však obsahují většinu dat. Můžeme vzít jen těchto prvních několik sloupců a mít reprezentaci matice A, která má mnohem méně dimenzí a většinu dat v A.

Lineární diskriminační analýza

 

Vlevo: Matrix před LDA, Vpravo: Osa za LDA, nyní oddělitelná

Lineární diskriminační analýza (LDA) je proces, který bere data z vícerozměrného grafu a přepromítne jej do lineárního grafu. Můžete si to představit tak, že si představíte dvourozměrný graf naplněný datovými body patřícími do dvou různých tříd. Předpokládejme, že body jsou rozmístěny kolem, takže nelze nakreslit žádnou čáru, která by úhledně oddělila dvě různé třídy. Aby bylo možné tuto situaci zvládnout, body nalezené ve 2D grafu lze zredukovat na 1D graf (čáru). Tento řádek bude mít rozmístěny všechny datové body a doufejme, že jej lze rozdělit na dvě části, které představují nejlepší možné oddělení dat.

Při provádění LDA existují dva hlavní cíle. Prvním cílem je minimalizace rozptylu pro třídy, zatímco druhým cílem je maximalizace vzdálenosti mezi průměry těchto dvou tříd. Těchto cílů je dosaženo vytvořením nové osy, která bude existovat ve 2D grafu. Nově vytvořená osa slouží k oddělení dvou tříd na základě výše popsaných cílů. Po vytvoření osy jsou body nalezené ve 2D grafu umístěny podél osy.

K přesunutí původních bodů do nové polohy podél nové osy jsou potřeba tři kroky. V prvním kroku se pro výpočet separability tříd použije vzdálenost mezi jednotlivými třídami (mezitřídní rozptyl). Ve druhém kroku se vypočítá rozptyl v rámci různých tříd, provede se určením vzdálenosti mezi vzorkem a průměrem pro danou třídu. V posledním kroku je vytvořen prostor nižší dimenze, který maximalizuje rozptyl mezi třídami.

Technika LDA dosahuje nejlepších výsledků, když jsou prostředky pro cílové třídy daleko od sebe. LDA nemůže efektivně oddělit třídy pomocí lineární osy, pokud se prostředky pro distribuce překrývají.

 

Blogerka a programátorka se specializací v Strojové učení si Hluboké učení témata. Daniel doufá, že pomůže ostatním využívat sílu AI pro společenské dobro.