1 / 31

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

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

peigi
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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 • Registraceobrazu • Komprimace dat • Statistika • Vyhledávače

  3. 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

  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ů

  5. 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.

  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 12800 x 12800 (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 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

  25. 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

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

  27. 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

  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?

More Related