310 likes | 397 Views
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. 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
E N D
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
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 • Registraceobrazu • Komprimace dat • Statistika • Vyhledávače
Obsah • Úvod do SVD • 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
Ú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 - Bidiagonalizace • Praktická implementace • Využití Householderových zrcadlení • Urychlení výpočtu • Numerická stabilita • Householderova matice Ortogonální tranformace, redukující dimenzi problému.
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é
Výpočet SVD – Bidiagonalizace : Škálovatelnost • Největší problém • Dimenze 12800 x 12800 (1.2GB) • Doba běhu 1(h)
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)
Výpočet SVD – Výpočet singulárních čísel • Vynulování prvního prvku bidiagonály
Výpočet SVD – Výpočet singulárních čísel • Vynulování prvního prvku bidiagonály • Vynulování nově vzniklého prvku
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
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
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
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
Výpočet SVD – Výpočet singulárních čísel • Diagonalizace • Ukončovací podmínka • Největší problém • Dimence 12800 x 12800 • Doba běhu 791.79 (s) • Počet iterací 325161 Důkaz lze najít v G.W.Stewart – Matrix algorithms vol 2
Výpočet SVD – Singulární vektory • Sestavení matic U a V (ortogonálních tranformací) • Matice ajsou 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
Závěr • Existující implementace • 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
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
Děkuji za pozornost. Dotazy?