Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Paralelní výpočet SVD s aplikacemi pro vyhledávání informací

Podobné prezentace


Prezentace na téma: "Paralelní výpočet SVD s aplikacemi pro vyhledávání informací"— Transkript prezentace:

1 Paralelní výpočet SVD s aplikacemi pro vyhledávání informací
Petr Kotas, Vít Vondrák, Pavel Praks Fakulta elektrotechniky a Informatiky VŠB - TUO Dobrý den, mé jméno je Petr Kotas. Rád bych vás přivítal a pověděl něco na téma : Paralelní výpočet SVD a jeho aplikace pro vyhledávání informací, konkrétně na vyhledávání podobných obrazů.

2 Motivace Proč se problémem SVD a vlastních čísel zabývat
Řešení homogeních lineárních rovnic Využití při analýze DNA Registrace obrazu Komprimace dat Statistika Vyhledávače Nejdřív bych rád zmínil proč je SVD zajímavý problém. Aplikace na DNA -> z DNA se vytvoří datová matice, řádky jednotlivé chromozomy, sloupce vzorky. A Dále se s ní pracuje jako při LSI

3 Obsah Úvod do SVD Výpočet SVD Aplikace na multimediální data
Výpočet a problémy při něm vznikající Návrh řešení → paralelizace Výpočet SVD Bidiagonalizace Výpočet singulárních čísel Výpočet singulárních vektorů Sestavení rozkladu Aplikace na multimediální data V této práci se postupně dozvíte : outline

4 Úvod do SVD Výpočet je velmi náročný na HW
Pro plné matice je SVD vysoce paměťově náročné Značná náročnost na floating point operace (kvůli přesnosti) Iterační charakter → větší náročnost než jiné rozklady Praktická implementace → rozdělení problému Bidiagonalizace Výpočet singulárních čísel z bidiagonální matice Výpočet singulárních vektorů Výpočet SVD je vysoce náročný na pamět. To je dáno ortogonálními maticemi U a V, které jsou plné i když matice A je řídká. V případě obrovských problémů je úloha neřešitelná, protože se jednoduše nevleze do paměti typické pro stolní počítač. Úloha je díky iterčnímu charakteru velmi náročna na počet FPO, převážně v bidiagonalizační fázi. Při praktické implementaci je proto úloha řešena rozdělena na samostané subproblémy, které jsou již algoritmicky zvládnutelné. Tyto kroky jsou bodiagonailazace, kdy z původní matice A pomoci levé a pravé transformace vyrobíme matici pouze s diagonálou a naddiagonálou. Samotný výpočet singulárních čísel, občas nazývaný jako diagonalizace, kdy z bidiagonální matice získáme matici diagonální se singulárními čísly na diagonále. A v posledním kroku vypočítáme levé a pravé singulární vektory, což jsou vlastně levé a pravé matice tranformací z plané matice na bidiagonální respektive z bidiagonální na diagonální. Formálně je poslední krok, vynásobení dvou tranformací do jedné. Tímto získáme úplný singulární rozklad matice A.

5 Výpočet SVD - Bidiagonalizace
Ortogonální tranformace, redukující dimenzi problému. Praktická implementace Využití Householderových zrcadlení Urychlení výpočtu Numerická stabilita Householderova matice

6 Výpočet SVD - Bidiagonalizace

7 Výpočet SVD - Bidiagonalizace

8 Výpočet SVD - Bidiagonalizace

9 Výpočet SVD - Bidiagonalizace

10 Výpočet SVD - Bidiagonalizace

11 Výpočet SVD - Bidiagonalizace

12 Výpočet SVD - Bidiagonalizace

13 Výpočet SVD - Bidiagonalizace

14 Výpočet SVD – Bidiagonalizace : Distribuce

15 Výpočet SVD – Paralelní bidiagonalizace
Distribuovaný výpočet V každém kroku se spočítá Householderův vektor Houselderoův vektor se rozdistribuuje na každý uzel Každý uzel dále elimuje prvky jemu přiřazené

16 Výpočet SVD – Bidiagonalizace : Škálovatelnost
Největší problém Dimenze x (1.2GB) Doba běhu 1(h)

17 Výpočet SVD – Výpočet singulárních čísel
Diagonalizace matice Pomocí Givensonových rotací Iterační proces Řád konvergence je O(N2)

18 Výpočet SVD – Výpočet singulárních čísel
Vynulování prvního prvku bidiagonály

19 Výpočet SVD – Výpočet singulárních čísel
Vynulování prvního prvku bidiagonály Vynulování nově vzniklého prvku

20 Výpočet SVD – Výpočet singulárních čísel
Vynulování prvního prvku bidiagonály Vynulování nově vzniklého prvku Opravení prvního řádku

21 Výpočet SVD – Výpočet singulárních čísel
Vynulování prvního prvku bidiagonály Vynulování nově vzniklého prvku Opravení prvního řádku Na třetím řádku se objeví prvek navíc

22 Výpočet SVD – Výpočet singulárních čísel
Vynulování prvního prvku bidiagonály Vynulování nově vzniklého prvku Opravení prvního řádku Na třetím řádku se objeví prvek navíc Opravení druhého řádku

23 Výpočet SVD – Výpočet singulárních čísel
Vynulování prvního prvku bidiagonály Vynulování nově vzniklého prvku Opravení prvního řádku Na třetím řádku se objeví prvek navíc Opravení druhého řádku Vynulování posledního prvku navíc

24 Výpočet SVD – Výpočet singulárních čísel
Diagonalizace Ukončovací podmínka                                                 Největší problém Dimence x 12800 Doba běhu (s) Počet iterací Důkaz lze najít v G.W.Stewart – Matrix algorithms vol 2

25 Výpočet SVD – Singulární vektory
Sestavení matic U a V (ortogonálních tranformací) Matice      a      jsou sestaveny postupnou akumulací z Householderových vektorů Potřebuje                       Sestavení matic a je proces řešení třídiagonálních soustav                                                                             Výsledné matice U a V vzniknou pronásobením přechozích

26 Porovnání s Matlabem – sekvenční kód

27 Závěr Existující implementace Proč se zabývat novou implementací
ScaLapack, Lapack, MatLab, ProPack ... Proč se zabývat novou implementací Výpočet úplného singulárního rozkladu pro plné velké matice Licence paralelního MatLabu je drahá Většina stávajících implentací je pro řídké matice Stávající řešení se povětšinou zaměřují na největší vlastní čísla Budoucnost Akcelerace výpočtu pomocí „kompaktní reprezentace“ Householderovy tranformace Další zvětšení dimenze řešitelných problémů Možnost volby části spektra pro výpočet

28 Aplikace na multimediální data
Hledání podobnosti dvou digitálních obrazů Problém velikost Aproximace matic pomocí SVD (LSI)                               Umožní redukci dimenze původní datové matice řádově na desetinu Matematický popis (pro úplnost , zde se jím nezabýváme) MPEG-7 Rozdělění histogramu Frekvenční odezva na waveletové filtry

29 Aplikace na multimediální data : Ukázka

30 Aplikace na multimediální data : Ukázka

31 Děkuji za pozornost. Dotazy?


Stáhnout ppt "Paralelní výpočet SVD s aplikacemi pro vyhledávání informací"

Podobné prezentace


Reklamy Google