traitement des données massives (inf442, a5)

Post on 04-Aug-2015

79 Views

Category:

Science

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INF442 : Traitement des Données Massives

A5 : Le tri parallèle et la rédu tion de dimension

Frank Nielsen

nielsenlix.polyte hnique.fr

X2013

13 mai 2015

Frank Nielsen A5-1

Plan

un point sur le ours

le tri parallèle sur lusters

les données en (très) grandes dimensions :

ombattre le éau des grandes dimensions par la rédu tion de dimension

Frank Nielsen A5-2

Rappel sur les obje tifs d'INF442

Un ours on entré multi-fa ettes pour xer les premières bases :

initiation au HPC et aux Big Data

initiation aux s ien es des données

algorithmique parallèle (sur mémoire distribuée/é hange de messages)

programmer en C++ (ave la STL/Boost) et en MPI

utiliser un luster de ma hines en TDs

⇒ débou hés en 3A INFO par ours HPC, S ien e des données,

Image-Vision-Apprentissage , MAP-INFO, et onnaissan es générales utiles

pour tout le monde !

Frank Nielsen A5-3

Ce qu'on a déjà vu et e qu'il nous reste à voir !

Dans la première partie, on a vu :

s ien es des données : regroupement (plat/hiérar hique), lassi ation

(k-PPV/régression)

programmer en C++/MPI pour le parallélisme à gros grains (HPC)

un peu d'algorithmique parallèle sur les matri es

Dans ette se onde partie, on va voir :

A5 : tri parallèle & les grandes dimensions

A6 : les Big Data ave MapRedu e en MPI (granularité ne)

A7 : la topologie physique des lusters, la topologie logique des

algorithmes parallèles, et leurs adéquations

A8 : algorithmique paralléle pour les graphes (réseaux so iaux =

grands graphes)

A8 9h30-10h : intervention sur le HPC Cloud, Dr. Patri e Calégari

(Atos/Bull)

Frank Nielsen A5-4

Examen

examen de programmation C++

(style INF311/321, ave un petit exer i e MPI)

TD 7 (27 mai), pâle ma hine (PM)

examen é rit 3h (CC) : 10 juin

projet informatique (PI, fa ultatif, rendu le 22 mai) : soutenan e orale

Notation :

note littérale :

2CC+max(PM,PI)3

note lassante : CC

Frank Nielsen A5-5

Le tri parallèle :

un problème fondamental

Frank Nielsen 1.Tri-1.Séquentiel A5-6

Tri séquentiel : tri à bulle BubbleSort

Trier n données x1

, ..., xn en ordre as endant :

x1

≤ ... ≤ xn

→ naïf, fa ile à programmer mais temps quadratique O(n2)

4 3 2 1

<

3 4 2 1

<

3 42 1

<

3 42 1

3 42 1

<

3 42 1

<

3 42 1

<

3 42 1

<

3 421

<

Phase 1:

Le plus grand element

remonte

Phase 2:

Le deuxieme plus grand

element remonte

Phase 3:

Le troisieme plus grand

element remonte

Bulle

Frank Nielsen 1.Tri-1.Séquentiel A5-7

Tri séquentiel : l'algorithme Qui ksort

Algorithme ré ursif randomisé ave pivot x

un tableau à un élément est un tableau déjà trié = as terminal de la

ré ursion

sinon hoisir un élément pivot x , partitionner le tableau X en deux

sous-tableaux X≤x et X>x , et appeler ré ursivement :

Qui kSort(X ) = (Qui kSort(X≤x),Qui kSort(X>x))

Temps amorti : O(n log n), O(n log p) si p éléments distin ts

Attention : n'oubliez pas de faire une permutation aléatoire (en temps

linéaire) avant d'appeler Qui kSort sinon vous risquez un temps quadratique

O(n2) !

Frank Nielsen 1.Tri-1.Séquentiel A5-8

t emp l a t e < l a s s T> vo id qu i kSo r t ( v e to r<T>&v , un s i gned i n t

low , un s i gned i n t h igh )

i f ( low >= high ) r e t u r n ;

// séle tionne la valeur du pivot

uns i gned i n t p i v o t I n d e x = ( low + high ) / 2 ;

// partitionne le ve teur

p i v o t I n d e x = p i v o t ( v , low , h igh , p i v o t I n d e x ) ;

// tri les deux sous-ve teurs ré ursivement

i f ( low < p i v o t I n d e x ) qu i kSo r t ( v , low , p i v o t I n d e x ) ;

i f ( p i v o t I n d e x < high ) qu i kSo r t ( v , p i v o t I n d e x + 1 , h igh

) ;

t emp la t e < l a s s T> vo id qu i kSo r t ( v e to r<T> & v )

uns i gned i n t numberElements = v . s i z e ( ) ;

i f ( numberElements > 1)

qu i kSo r t ( v , 0 , numberElements − 1) ;

Frank Nielsen 1.Tri-1.Séquentiel A5-9

t emp l a t e < l a s s T> uns i gned i n t p i v o t ( v e to r<T> & v ,

un s i gned i n t s t a r t , un s i gned i n t stop , un s i gned i n t

p o s i t i o n )

// on é hange le pivot ave la position initiale

swap ( v [ s t a r t , v [ p o s i t i o n ) ;

// partitionne les valeurs

uns i gned i n t low = s t a r t + 1 ;

un s i gned i n t h igh = s top + 1 ;

wh i l e ( low < high )

i f ( v [ low < v [ s t a r t )

low++;

e l s e i f ( v[−−h igh < v [ s t a r t )

swap ( v [ low , v [ h igh ) ;

// et on re-é hange le pivot à sa pla e initiale

swap ( v [ s t a r t , v[−− low ) ;

r e t u r n low ;

Frank Nielsen 1.Tri-1.Séquentiel A5-10

// Petit exemple de démonstration

i n t main ( )

ve to r<in t > v (100) ;

f o r ( i n t i = 0 ; i < 100 ; i++)

v [ i = rand ( ) %442;

qu i kSo r t ( v ) ;

v e to r<in t >: : i t e r a t o r i t r = v . beg i n ( ) ;

wh i l e ( i t r != v . end ( ) )

out << ∗ i t r << " " ;

i t r ++;

out << "\n" ;

r e t u r n 0 ;

Frank Nielsen 1.Tri-1.Séquentiel A5-11

Cal uler le k-ième plus petit élément de S

Obje tif : garantir un temps O(n log n) en al ulant la médiane.

Data: S un ensemble de n = |S | nombres, k ∈ N

Result: Retourne le k-ième élément de S

if n ≤ 5 then

// as terminal de la ré ursivité

trier S et retourner le k-ième élément;

else

Diviser S en ⌈n5

⌉ groupes;// Le dernier groupe a 5 ( omplet) ou n mod 5 éléments

Cal uler les médianes des groupes M = m1

, ...,m⌈ n5

⌉;// Cal ul du pivot x, la médiane

x ← SELECT(M, ⌈n5

⌉, ⌊ ⌈n5

⌉+1

2

⌋);Partitionner S en deux sous-ensembles L = y ∈ S : y ≤ x etR = y ∈ S : y > x;if k ≤ |L| then

return SELECT(L, |L|, k);else

return SELECT(R , n − |L|, k − |L|);end

end

⇒ temps déterministe linéaire (order statisti s)

Frank Nielsen 1.Tri-1.Séquentiel A5-12

Tri séquentiel : borne inférieure

Borne inférieure pour trier n nombres sur le modèle de omparaisons.

Arbre de dé ision

(a1, a2, a3) (a2, a1, a3)

(a1, a3, a2) (a3, a1, a2) (a2, a3, a1) (a3, a2, a1)

a1

?

≤ a2

a2

?

≤ a3 a1

?

≤ a3

a1

?

≤ a3 a1

?

≤ a2

1 0

0

00

01 1

11

Frank Nielsen 1.Tri-2.Borne inférieure A5-13

Tri séquentiel : borne inférieure

un arbre binaire à n feuilles est de hauteur minimale h ≥ log

2

n

puisqu'on a n! feuilles (permutations), en utilisant la formule de Stirling

n! ∼√2πn(n

e)n, on en déduit que

h ≥ log

2

n! = O(n log n)

Trier demande don h = Ω(n log n) opérations de omparaison.

Modèle de al ul important :

Deterministi sorting in O(n log log n) time and linear spa e

Journal of Algorithms

Cognition, Informati s and Logi 50 (1) : 96105 (Integer sorting)

Frank Nielsen 1.Tri-2.Borne inférieure A5-14

Paralléliser MergeSort

diviseleslistes

fusionneleslistes

4 2 7 8 5 1 3 6

4 2 7 8 5 1 3 6

4 2 7 8 5 1 3 6

4 2 7 8 5 1 3 6

42 7 8 51 3 6

42 7 8 51 3 6

42 7 851 3 6

P0

P0 P4

P4P6

P6 P7P4 P5

P0

P0 P1 P2 P3

P2

P4P6P0 P2

P0 P4

P0

Fusionner des listes triées : temps linéaire

Frank Nielsen 1.Tri-3.MergeSort // A5-15

MergeSort séquentiel/ parallèle : analyse de la omplexité

temps séquentiel : T

seq

= O(∑

log ni=1

2

i n2

i ) = O(n log n)

temps parallèle : T

par

= O(2∑

log ni=0

n2

i ) = O(n) puisque∑n

k=0

qk = 1−qn+1

1−q

Notons qu'ave P pro essus, la borne inférieure du tri parallèle est

Ω‖(nPlog n).

Frank Nielsen 1.Tri-3.MergeSort // A5-16

Algorithme parallèle basé sur le rang : RankSort

Soit un tableau X [0], ...,X [n − 1] de s alaires à trier.

1. Pour haque donnée X [i ], on al ule son rang :

R [i ] = |X [j] ∈ X : X [j] < X [i ]|

Le plus petit élément a rang 0 et le plus grand a rang n − 1

2. On range dans le nouveau tableau Y : Y [R [i ]] = X [i ]

l'étape 1 est fa ilement parallèle (sur P = n n÷uds) : on al ule le

prédi at X [j] < X [i ] ?,∀j et on agrége les 0 (faux) et les 1 (vrais) :

R [i ] =n−1∑

j=0

1[X [j ]<X [i ]]︸ ︷︷ ︸

Prédi at booléen onverti en 0 ou 1

on suppose les éléments distin ts

in onvénient : demande des tableaux auxiliaires : R et Y

Frank Nielsen 1.Tri-4.Tri parallèle par rang : RankSort A5-17

Le tri RankSort

f o r ( i = 0 ; i < n ; i++)

// pour haque nombre

rang = 0 ;

f o r ( j = 0 ; j < n ; j++)

// on ompte les nombres plus petits que lui

i f ( a [ i > a [ j )

rang++;

// puis on le re opie à la pla e de son rang dans le nouveau

tableau b[

b [ rang = a [ i ;

temps séquentiel : T

seq

= O(n2)

temps parallèle : T

par

= O(n) quand P = n ( al ul indépendant pour

haque rang)

Frank Nielsen 1.Tri-4.Tri parallèle par rang : RankSort A5-18

RankSort ave P = n2

pro essus

on utilise n pro esseurs pour trouver le rang d'un seul élément ... Par

exemple, pour n petit, on peut utiliser l'unité de al ul graphique (GPU,

Graphi al Pro essing Unit)

en al ulant une somme globale (à la MPI_Redu e/MPI_Sum)

<

++

+

< < <

a[i] a[0] a[1] a[2] a[3]a[i] a[i] a[i]

0/1 0/1 0/1 0/1

0/1/2 0/1/2

0/1/2/3/4

comparaison

reduction

On suppose que le redu e se fait en temps logarithmique : dépend de la

topologie du réseau d'inter onnexion

→ Vrai pour l'hyper ube de dimension log n, faux pour un anneau.

Tpar

= O(log n)

voire en O(1) pour la topologie de la lique.

Frank Nielsen 1.Tri-4.Tri parallèle par rang : RankSort A5-19

Qui kSort en parallèle

soit P pro essus

initialement, on suppose les données déjà distribuées sur les

ma hines/pro essus

tri des endant des données sto kées lo alement dans P

0

, ...,PP−1

Parallel Qui kSort :

hoix aléatoire du pivot x et diusion (broad ast) à tous les autres

pro essus

haque pro essus Pp partitionne son tableau en deux sous-tableaux X

p≤

et Dp> en utilisant le pivot x

haque pro essus supérieur p ≥ P/2 envoie sa liste inférieure X

p≤ à un

pro essus partenaire p′ = p − P/2 ≤ P/2, et reçoit en retour une liste

supérieure Xp′

> , et ré iproquement.

les pro essus se séparent en deux groupes, et on applique ré ursivement

l'algorithme

as terminal : haque pro essus tri son paquet (par exemple, ave

Qui ksort séquentiel)

Frank Nielsen 1.Tri-5.Qui ksort parallèle A5-20

Illustration : Qui ksort en parallèle/Parallel Qui kSort (1)

Frank Nielsen 1.Tri-5.Qui ksort parallèle A5-21

Illustration : Qui ksort en parallèle/Parallel Qui kSort (2)

Frank Nielsen 1.Tri-5.Qui ksort parallèle A5-22

Illustration : Qui ksort en parallèle/Parallel Qui kSort (3)

Frank Nielsen 1.Tri-5.Qui ksort parallèle A5-23

Illustration : Qui ksort en parallèle/Parallel Qui kSort (4)

Frank Nielsen 1.Tri-5.Qui ksort parallèle A5-24

Parallel Qui kSort : un résumé

les pro essus > P/2 ont des valeurs supérieures au pivot, et les pro essus

< P/2 ont des valeurs plus petites

après logP appels ré ursifs (P est une puissan e de 2), haque pro essus

à une liste de valeurs omplètement disjointe des autres

la plus grande valeur de Pi est inférieure à la plus petite valeur de Pi+1

as terminal de la ré ursivité : haque pro essus tri son paquet (par

exemple, ave Qui ksort séquentiel)

In onvénient : travail non-equilibré des pro essus ( load imbalan e ) ar

dépend des pivots hoisis et diusés.

⇒ on re her he des algorithmes de tri parallèle ave un meilleur équilibrage

de harge

Frank Nielsen 1.Tri-5.Qui ksort parallèle A5-25

Hyperqui ksort

les pro essus ommen ent par un Qui ksort séquentiel sur

nPdonnées :

O( nPlog

nP).

le pro essus responsable du hoix du pivot hoisit la médiane de son

tableau trié : index

n2P

le pro essus pivot diuse (broad ast) le pivot aux autres pro essus de

son groupe

les pro essus partitionnent en deux sous-listes D≤ et D> en fon tion du

pivot

é hanges des listes des pro essus partenaires

sur haque pro essus, on fusionne ses deux sous-listes triées en une liste

triée (fusion de liste = temps linéaire)

appelle ré ursivement sur les pro essus de son groupe.

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-26

Hyperqui ksort : Initialisation (1)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-27

Hyperqui ksort : hoix du pivot 48 (2)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-28

Hyperqui ksort : partition des données ave 48 (3)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-29

Hyperqui ksort : é hange des listes (4)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-30

Hyperqui ksort : listes é hangées (5)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-31

Hyperqui ksort : fusion des listes (6)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-32

Hyperqui ksort : ré ursivité sur les groupes → Pivot 67||17(7)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-33

Hyperqui ksort : partition et é hange (8)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-34

Hyperqui ksort : liste é hangées (9)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-35

Hyperqui ksort : fusion des sous-listes triées (10)

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-36

Hyperqui ksort : analyse de la omplexité

Hypothèses :

temps amorti moyen

les listes sont supposées equilibrées (à peu près)

les temps de ommuni ation sont dominés par les temps de transmission

(les temps de laten e sont ignorés)

Analyse :

Qui ksort initial : O( n

Plog

nP)

omparaisons pour les logP étapes de fusion O( n

PlogP)

oût pour les ommuni ations pour les logP é hanges de sous-listes :

O( nPlogP)

Temps parallèle global : O( nPlog(P + n))

Frank Nielsen 1.Tri-6.Hyperqui ksort A5-37

PSRS : Parallel Sorting by Regular Sampling

Algorithme de tri en 4 phases

Remarque : P n'est pas né essairement une puissan e de 2 i i !

1. haque pro essus Pi tri ave un algorithme séquentiel (Qui kSort) ses

données lo ales, et hoisit les éléments aux positions régulières :

0,n

P2

,2n

P2

, ...,(P − 1)n

P2

→ é hantillonnage régulier de ses données triées

2. un pro essus rassemble (gather) et tri tous es é hantillons réguliers,

puis séle tionne P − 1 pivots. Le pro essus diuse (broad ast) alors es

P − 1 pivots, et haque pro essus partitionne sa liste triée en P mor eaux

3. all-to-all /total ex hange : haque pro essus Pi garde sa i -ème partition

et envoie la j-ème partition au pro essus j , ∀j 6= i

4. haque pro essus fusionne ses P partitions en une liste nale triée.

Frank Nielsen 1.Tri-7.Parallel Sorting by Regular Sampling A5-38

0 124 57 89 101112 131415 1617 6 3

0

3 9 15 4 11 14 0 2 8

P0 P1 P2

0 2 4 8 9 11 143 15

4 11

63 9 12 15 17

4 11

4 7 11 13 14 16 21 5 8 10

4 11

0

4 11

63 9 12 15 17

3

4 7 11 13 14 16

4

0

21 5 8 10

1 2

6 9

7 11

5 8 10 ∅

12 15 17

13 14 16

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

4 11

etape 1 : tri et echantillonnage regulier

etape 2 : rassemblement (gather) choix de P − 1 pivots

etape 3 : partition et commerage (all-to-all)

etape 4 : fusion des P sous-listes sur chaque processus

tableau vide

P0

P1

P2

P0

P1

P2

P0

P1

P2

P0 P1 P2

P − 1 pivots

tableau trie

tableau a trier

Frank Nielsen 1.Tri-7.Parallel Sorting by Regular Sampling A5-39

http://www.math- s.gordon.edu/ ourses/ ps343/do /psrs.pdf

Frank Nielsen 1.Tri-7.Parallel Sorting by Regular Sampling A5-40

Tri par transpositions d'éléments paires/impaires

Réseaux de tris

le prin ipe repose sur le tri BubbleSort

Deux étapes élementaires :

phase paire : omparaison et é hange (swap) des paires paires

(X [0],X [1]), (X [2],X [3]), ....

phase impaire : omparaison et é hange (swap) des paires impaires

(X [1],X [2]), (X [3],X [4]), ....

tri omplet ni après n phases

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-41

18 15 22 10 23 11

10

10

10

15

15

15

15

15

11

11

11

11

11

23

23

23

23

23

22

22

22

22

2218

18

18

18

18 10

10

phase paire

phase impaire

phase paire

phase paire

phase impaire

entree

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-42

Généraliser le tri pair/impair en groupes

trier les n/P éléments de haque groupe/pro essus (Qui kSort

séquentiel)

envoyer/re evoir (send/re eive) les éléments des paires de pro essus

si le rang du pro essus est inférieur à elui de sa paire, alors garder les

valeurs les plus petites, sinon garder les valeurs les plus grandes.

Répeter ainsi n/P fois

→ granularité de P = 2 à P = n

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-43

Généraliser le tri paires pair/impair en groupes

Configuration initiale

Configuration apres les tris locaux

Phase 1(pair)

Phase 2 (impair)

Phase 3 (pair)

Phase 4 (impair)

15, 11, 9, 16 3, 14, 8, 7 4, 6, 12, 10 5, 2, 13, 1

9, 11, 15, 16 3, 7, 8, 14 4, 6, 10, 12 1, 2, 5, 13

3, 7, 8, 9 11, 14, 15, 16 1, 2, 4, 5 6, 10, 12, 13

3, 7, 8, 9 1, 2, 4, 5 11, 14, 15, 16 6, 10, 12, 13

1, 2, 3, 4 5, 7, 8, 9 6, 10, 11, 12 13, 14, 15, 16

1, 2, 3, 4 5, 6, 7, 8 9, 10, 11, 12 13, 14, 15, 16

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-44

Analyse de la omplexité

tri initial : O( n

Plog

nP)

faire P phases :

trier les plus petites et grandes valeurs dans haque phase : O( n

P)

(fusionner les listes et garder la moitié on ernée)

ommuni ations : O( n

P) (idéal, sans temps de laten e !)

omplexité globale O( n

Plog

nP+ n) ... pas attra tif ...

mais intéressant sur un réseau de ommuni ation en anneau

bidire tionnel ...

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-45

Les algorithmes de tri en parallèle : un résumé

On a étudié es algorithmes standards pour le tri :

RankSort

Parallel Qui kSort

Hyperqui ksort

Parallel Sorting by Regular Sampling (PSRS)

Odd-Even Transposition Sort

La performan e en pratique dépend aussi des ommuni ations

→ dépend de la topologie du réseau d'inter onnexion

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-46

Rédu tion de dimension

ave le théorème de

Johnson-Lindenstrauss

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-47

Le éau des grandes dimensions

Curse of dimensionality

(Bellman, inventeur de la programmation dynamique)

e a ité des algorithmes dépend de la dimension d des attributs :

al ul de distan es ou de similarités en Ω(d)

algorithmes et stru tures de données souvent ave une onstante

exponentielle en d a hée dans la notation O(·) : Od (1).

di ile de visualiser les données en grandes dimensions

Aujourd'hui, dans le traitement des données :

très ourant de travailler en dimension 1000 et plus !

as aussi où d ≫ n (dimension intrinséque/extrinséque)

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-48

Des phénoménes non-intuitifs en grandes dimensions !

volume de la balle ins rite dans le ube unité tend vers zéro :

Bd =π

d2

Γ(d2

+ 1)rd , r =

1

2

grille régulière de R

den l sous-divisions par té partitionne l'espa e en

ld hyper ubes : exponentiel en d (ld = ed log l).

L'appro he de la grille adaptative ne permet pas non plus de passer à

l'é helle ...

intégration sto hastique à la Monte-Carlo (

∫≈∑

) devient inutilisable

...

on ne distingue plus le plus pro he voisin du plus lointain voisin ...

... the distan e to the nearest data point approa hes the distan e to the

farthest data point ... (Beyer, 1999)

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-49

Exemple 1 : trouver les images dupliquées

near dupli ate image dete tion

une image I [y ][x ] en ouleur RVB de taille w × h est onvertie en un

ve teur v(I ) de dimension R3wh

(ve torization)

la distan e entre deux images I

1

et I2

est la somme des diéren es au

arré ( sum of squared dieren es ) :

SSD(I1

, I2

) =h∑

i=1

w∑

j=1

(I1

[i ][j]− I2

[i ][j])2

= ‖v(I1

)− v(I2

)‖2

une image est en double dans une base d'images si son plus pro he voisin

est quasiment identique : SSD(I ,PPV(I )) ≤ ǫ

⇒ omment al uler les plus pro hes voisins en grandes dimensions en temps

sous-linéaire, o(d) ?

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-50

Exemple 2 : regrouper une olle tion d'images

Exemple de la base MNIST des hires postaux (US) :

n = 60000, d = 28

2 = 784

http://yann.le un. om/exdb/mnist/

Idéalement, trouver les dix lusters pour les hires de '0' à '9'

utiliser l'algorithme des k-moyennes de Lloyd en dimension 784 est trop

lent ...

omment faire ?

→ réduire la dimension en onservant la notion de distan e

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-51

La rédu tion de dimension : formuler le problème

données X : n points de R

d

X interprété omme une matri e de taille n × d

(une donnée par ligne, ve teur ligne)

Deux te hniques pour réduire la dimension :

séle tionner les dimensions à onserver (feature sele tion)

re omposer les dimensions existantes en de nouvelles dimensions tout en

gardant l'information (la notion de distan e)

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-52

La rédu tion de dimension linéaire

Asso ions un ve teur y = y(x) ∈ Rkà tout x :

A : Rd → Rk

Lorsque y(x) est une fon tion linéaire, é riture matri ielle :

y = x × A, Y = X × A

A matri e de taille d × k (x et y = ve teurs lignes)

⇒ Y doit être déle à X :

∀x , x ′ ∈ X , ‖y − y ′‖2 = ‖xA− x ′A‖2 ≈ ‖x − x‖2

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-53

Le théorème de Johnson-Lindenstrauss (1984)

Soit X n points de Rdet ǫ ∈ (0, 1), alors il existe une transformation

linéaire A : Rd → Rkave k = O( 1

ǫ2log n) telle que :

∀x , x ′ ∈ X , (1− ǫ)‖x − x ′‖2 ≤ ‖xA− x ′A‖2 ≤ (1+ ǫ)‖x − x ′‖2

→low distortion embedding

(diérent du as où 'est parfait : plongement iso-métrique)

On passe de la dimension d à la dimension k = O( 1

ǫ2log n), indépendant de

d ! ! !

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-54

Matri es A pour les proje tion aléatoires

Proje tion aléatoire A :

On tire les oe ients de la matri e A′

aléatoirement suivant une loi

normale standard (iid) :

A′ = [ai ,j ], ai ,j ∼ N(0, 1)

On obtient un é hantillon aléatoire d'une loi normale standard N(0, 1) àpartir de lois uniformes U

1

et U2

indépendantes par :

N =√

−2 logU1

os(2πU2

)

← transformation de Box-Muller

on ajuste l'é helle :

A =k

dA′

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-55

Pourquoi ela mar he : proje tions aléatoires

soit un espa e k-ane aléatoire A ave k ≥ 4

log nǫ2

2

− ǫ3

3

.

notons x =

√dkprojAx = proje tion orthogonale de x sur A.

Lemme :

∀p, q ∈ X , P

(‖p − q‖2‖p − q‖2 6∈ [1− ǫ, 1+ ǫ]

)

≤ 2

n2

Preuve : Probabilité que x satisfasse le théorème JL :

≥ 1−(n

2

)2

n2=

1

n

On peut hoisir O(n) proje tions et garantir une probabilité de su ès

onstante

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-56

Le TD d'aujourd'hui ... Regrouper des images !

Implémenter les Johnson-Lindenstrauss k-moyennes pour une base

d'images !

On va passer de R270000

à R532

tout en trouvant des partitions semblables ...

Grand gain de rapidité !

Complexité passant de O(sdkn) à Oǫ(skn log n) où s est le nombre

d'itérations (ave Oǫ(nd log n) pour al uler les proje tions)

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-57

Résumé A5

X tri paralléle (équilibrer la harge : HyperQui kSort, PSRS)

X la rédu tion de dimension pour les données en grandes dimensions

Pour la pro haine fois : lire les hapitres 4 et 10 du poly opié

Frank Nielsen 2.Réseaux de tris-1.transpositions pairs/impairs A5-58

top related