58

Traitement des données massives (INF442, A5)

Embed Size (px)

Citation preview

Page 1: Traitement des données massives (INF442, A5)

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

Page 2: Traitement des données massives (INF442, A5)

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

Page 3: Traitement des données massives (INF442, A5)

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

Page 4: Traitement des données massives (INF442, A5)

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

Page 5: Traitement des données massives (INF442, A5)

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

Page 6: Traitement des données massives (INF442, A5)

Le tri parallèle :

un problème fondamental

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

Page 7: Traitement des données massives (INF442, A5)

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

Page 8: Traitement des données massives (INF442, A5)

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

Page 9: Traitement des données massives (INF442, A5)

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

Page 10: Traitement des données massives (INF442, A5)

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

Page 11: Traitement des données massives (INF442, A5)

// 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

Page 12: Traitement des données massives (INF442, A5)

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

Page 13: Traitement des données massives (INF442, A5)

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

Page 14: Traitement des données massives (INF442, A5)

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

Page 15: Traitement des données massives (INF442, A5)

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

Page 16: Traitement des données massives (INF442, A5)

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

Page 17: Traitement des données massives (INF442, A5)

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

Page 18: Traitement des données massives (INF442, A5)

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

Page 19: Traitement des données massives (INF442, A5)

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

Page 20: Traitement des données massives (INF442, A5)

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

Page 21: Traitement des données massives (INF442, A5)

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

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

Page 22: Traitement des données massives (INF442, A5)

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

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

Page 23: Traitement des données massives (INF442, A5)

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

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

Page 24: Traitement des données massives (INF442, A5)

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

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

Page 25: Traitement des données massives (INF442, A5)

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

Page 26: Traitement des données massives (INF442, A5)

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

Page 27: Traitement des données massives (INF442, A5)

Hyperqui ksort : Initialisation (1)

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

Page 28: Traitement des données massives (INF442, A5)

Hyperqui ksort : hoix du pivot 48 (2)

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

Page 29: Traitement des données massives (INF442, A5)

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

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

Page 30: Traitement des données massives (INF442, A5)

Hyperqui ksort : é hange des listes (4)

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

Page 31: Traitement des données massives (INF442, A5)

Hyperqui ksort : listes é hangées (5)

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

Page 32: Traitement des données massives (INF442, A5)

Hyperqui ksort : fusion des listes (6)

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

Page 33: Traitement des données massives (INF442, A5)

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

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

Page 34: Traitement des données massives (INF442, A5)

Hyperqui ksort : partition et é hange (8)

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

Page 35: Traitement des données massives (INF442, A5)

Hyperqui ksort : liste é hangées (9)

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

Page 36: Traitement des données massives (INF442, A5)

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

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

Page 37: Traitement des données massives (INF442, A5)

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

Page 38: Traitement des données massives (INF442, A5)

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

Page 39: Traitement des données massives (INF442, A5)

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

Page 40: Traitement des données massives (INF442, A5)

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

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

Page 41: Traitement des données massives (INF442, A5)

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

Page 42: Traitement des données massives (INF442, A5)

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

Page 43: Traitement des données massives (INF442, A5)

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

Page 44: Traitement des données massives (INF442, A5)

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

Page 45: Traitement des données massives (INF442, A5)

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

Page 46: Traitement des données massives (INF442, A5)

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

Page 47: Traitement des données massives (INF442, A5)

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

Page 48: Traitement des données massives (INF442, A5)

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

Page 49: Traitement des données massives (INF442, A5)

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

Page 50: Traitement des données massives (INF442, A5)

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

Page 51: Traitement des données massives (INF442, A5)

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

Page 52: Traitement des données massives (INF442, A5)

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

Page 53: Traitement des données massives (INF442, A5)

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

Page 54: Traitement des données massives (INF442, A5)

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

Page 55: Traitement des données massives (INF442, A5)

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

Page 56: Traitement des données massives (INF442, A5)

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

Page 57: Traitement des données massives (INF442, A5)

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

Page 58: Traitement des données massives (INF442, A5)

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