traitement des données massives (inf442, a5)
Post on 04-Aug-2015
79 Views
Preview:
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