Masterproef T701 : Efficiënte blokgebaseerde multilineaire matrix-tensorvermenigvuldiging
Begeleiding:
|
||||||||
Onderzoeksgroep:
Numerieke Approximatie en Lineaire Algebra Groep
|
||||||||
Context:
Meerdimensionale data komt op natuurlijke wijze voor in een aantal toepassingsdomeinen, zoals psychometrie (factoranalyse), chemometrie (spectrometrie), data mining en patroonherkenning. Om de data afkomstig van deze toepassingen te analyseren, zijn compressietechnieken onmisbaar. Voor tweedimensionale data is de singuliere waardenontbinding hiervoor een geschikte kandidaat. De overeenkomstige techniek voor meerdimensionale data is de hogere-orde singuliere waardenontbinding (HOSVD). Om deze ontbinding te berekenen bestaan er verschillende algoritmen waarin
multilineaire matrix-tensorvermenigvuldigingen frequent berekend moeten worden.
Zo'n vermenigvuldiging wordt hieronder schematisch weergegeven. Een tensor met dimensies n1xn2xn3
wordt er vermenigvuldigd met drie matrices van dimensies r1xn1, r2xn2
en r3xn3, respectievelijk, om zo een nieuwe tensor van dimensie r1xr2xr3 te bekomen.
|
||||||||
Doel:
Het efficiënt implementeren van het multilineaire matrix-tensor product door middel van het efficiënt uitbuiten van een blokstructuur. Daarnaast moet ook de volgorde waarin de matrixvermenigvuldigingen worden uitgevoerd, geoptimaliseerd worden.
|
||||||||
Uitwerking:
De focus ligt op het implementeren van enkele mogelijke strategieën om het algoritme op een blokgebaseerde manier uit te voeren. De verschillende technieken worden met elkaar vergeleken en theoretisch geanalyseerd. De student vergelijkt de prestaties met enkele klassieke implementaties van dit algoritme en verklaart de behaalde versnellingsfactor. Indien hiervoor interesse bestaat, kan dit algoritme ook geparallelliseerd worden voor multicore machines. Relevante Literatuur:
|
||||||||
Profiel:
Daar er tot heden weinig onderzoek verricht werd naar zulke performante algoritmen is dit eindwerk eerder praktisch van aard; er is weinig relevante literatuur om te bestuderen. De student is geïnteresseerd in het optimaliseren van de prestaties van algoritmen en is in staat om efficiënte code te produceren in C++. Deze masterproef is voor 1 student. |