La toolkit OpenSource Scikit-learn s'impose comme comme un standard d'outil pour réaliser des applications d'apprentissage statistique. Nous invitons l'un de ses auteurs et contributeurs, Gaël Varoquaux, chercheur à l'Inria, à venir nous présenter cette toolkit mais également nous proposer une réflexion sur le big data, sur les stratégies et techniques adaptées ou pas selon les contextes et sur les bonnes pratiques issues de son expérience de chercheur en informatique dans un contexte de recherche scientifique en neurosciences ou les données sont réellement BIG et les problèmes de passage à l'echelle particulièrement sévères. Au delà des aspects techniques liés à la toolkit scikit-learn c'est à une session interactive d'échanges avec Gaël Varoquaux que nous vous invitons, et ce autour du thème des techniques d'apprentissage statistique qui introduisent un nouveau paradigme dans le développement d'application sur de grosses masses de données et sur "l'intelligence des données". Car comme aime à le citer Gaël Varoquaux, selon Steve Jurvetson, VC dans la Silicon Valley, "Big Data isn't actually interesting without Machine Learning". Pour en savoir plus: http://scikit-learn.org/stable/index.html http://gael-varoquaux.info/
Speakers : Gaël Varoquaux (Inria), Pierre-Louis Xech (Microsoft France)
2. 1 L’apprentissage statistique en deux
mots
2 Une application en recherche en
neuroscience
3 Scikit-learn: une boite ` outils
a
d’apprentissage
G Varoquaux
2
4. 1 Une perspective historique
Intelligence artificielle
Concevoir des r`gles de d´cision
e
e
ann´es 80
e
Mangeable?
Grand?
Mobile?
G Varoquaux
4
5. 1 Une perspective historique
Intelligence artificielle
Concevoir des r`gles de d´cision
e
e
ann´es 80
e
Apprentissage machine
Les cr´er ` partir d’observations
e a
ann´es 90
e
G Varoquaux
4
6. 1 Une perspective historique
Intelligence artificielle
Concevoir des r`gles de d´cision
e
e
ann´es 80
e
Apprentissage machine
Les cr´er ` partir d’observations
e a
ann´es 90
e
Apprentissage statistique
ann´es 2000
e
Mod´liser le bruit dans les observations
e
G Varoquaux
4
7. 1 Une perspective historique
Intelligence artificielle
Concevoir des r`gles de d´cision
e
e
ann´es 80
e
Apprentissage machine
Les cr´er ` partir d’observations
e a
ann´es 90
e
Apprentissage statistique
ann´es 2000
e
Mod´liser le bruit dans les observations
e
Big data
Beaucoup d’observations,
des r`gles simples
e
G Varoquaux
maintenant
4
8. 1 Une perspective historique
Intelligence artificielle
Concevoir des r`gles de d´cision
e
e
ann´es 80
e
Apprentissage machine
Les cr´er ` partir d’observations
e a
ann´es 90
e
Apprentissage statistique
ann´es 2000
e
Mod´liser le bruit dans les observations
e
Big data
Beaucoup d’observations,
des r`gles simples
e
maintenant
“Big data isn’t actually interesting without machine
learning”
Steve Jurvetson, VC, Silicon Valley
G Varoquaux
4
11. 1 M´thode na¨
e
ıve
1 Stocker des images connues (bruit´es) et les noms
e
qui vont avec.
2 A partir d’une photo (bruit´e aussi), trouver l’image
e
qui lui ressemble le plus.
M´thode “des plus proches voisins”
e
G Varoquaux
6
12. 1 M´thode na¨
e
ıve
1 Stocker des images connues (bruit´es) et les noms
e
qui vont avec.
2 A partir d’une photo (bruit´e aussi), trouver l’image
e
qui lui ressemble le plus.
M´thode “des plus proches voisins”
e
Quel taux d’erreurs sur les images d´j` vues?
ea
...
0: pas d’erreurs
Donn´es de test = donn´es d’apprentissage
e
e
G Varoquaux
6
13. 1 1er probl`me: le bruit
e
Taux de prediction
Donn´es non li´es ` la variable ` pr´dire
e
e a
a e
1.0
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.0
G Varoquaux
0.5
1.0
1.5
2.0
Niveau de bruit
2.5
3.0
7
14. e
1 2`me probl`me: nombre de descripteurs
e
Taux de prediction
Trouver une aiguille dans une botte de foin
0.95
0.90
0.85
0.80
0.75
0.70
0.65
G Varoquaux
1
2
3
4
5
6
7
8
9
Fraction utile du cadre
10
8
15. 1 L’apprentissage statistique
Exemple: reconnaissance de visage
Apprentissage ` partir de
a
descripteurs num´riques
e
Difficult´s: i) bruit,
e
Andr´
e
Bernard
Charles
Didier
ii) nombre de descripteurs
Tˆche “supervis´e”: labels connus
a
e
Tˆche “non supervis´e”: labels inconnus
a
e
G Varoquaux
?
9
17. 1 Apprentissage supervis´: r´gression
e e
y
y
Un seul descripteur:
une dimension
x
x
Quel mod`le pr´f´rer?
e
ee
G Varoquaux
10
18. 1 Apprentissage supervis´: r´gression
e e
y
y
Un seul descripteur:
une dimension
x
x
Probl`me du “sur-apprentissage”
e
(“overfit”)
Minimiser l’erreur n’est pas toujours favorable
(apprentissage du bruit)
Donn´es de test = donn´es d’apprentissage
e
e
G Varoquaux
10
19. 1 Apprentissage supervis´: r´gression
e e
y
y
Un seul descripteur:
une dimension
x
x
Pr´f´rer les mod`les simples
ee
e
= concept de “r´gularisation”
e
Equilibrer le nombre de param`tres ` apprendre
e
a
avec la quantit´ de donn´es
e
e
G Varoquaux
10
20. 1 Apprentissage supervis´: r´gression
e e
y
y
Un seul descripteur:
une dimension
Compromis biais
variance
x
x
Pr´f´rer les mod`les simples
ee
e
= concept de “r´gularisation”
e
Equilibrer le nombre de param`tres ` apprendre
e
a
avec la quantit´ de donn´es
e
e
G Varoquaux
10
21. 1 Apprentissage supervis´: r´gression
e e
Un seul descripteur:
une dimension
Deux descripteurs:
2 dimensions
y
y
x
X_2
X_1
Plus de param`tres
e
Equilibrer le nombre de param`tres ` apprendre
e
a
avec la quantit´ de donn´es
e
e
G Varoquaux
10
22. 1 Apprentissage supervis´: r´gression
e e
Un seul descripteur:
une dimension
Deux descripteurs:
2 dimensions
y
y
x
X_2
X_1
Plus de param`tres
e
⇒ besoin de plus de donn´es
e
“mal´diction de la dimensionalit´”
e
e
G Varoquaux
10
23. 1 Apprentissage supervis´: classification
e
Variable ` pr´dire cat´gorielle, par ex. des chiffres
a e
e
X2
X1
G Varoquaux
11
24. 1 Apprentissage non supervis´
e
Structure de la bourse
G Varoquaux
http://scikit-learn.org/stable/auto examples/
applications/plot stock market.html
12
25. 1 Apprentissage non supervis´
e
Structure de la bourse
Donn´es non lab´lis´es
e
e e
plus courantes que les donn´es labelis´es
e
e
G Varoquaux
http://scikit-learn.org/stable/auto examples/
applications/plot stock market.html
12
27. 1 Strat´gies d’apprentissage sur du “big data”
e
Big data
L’acc`s aux donn´es limite plus que
e
e
la puissance de calcul
G Varoquaux
14
28. 1 Strat´gies d’apprentissage sur du “big data”
e
1 R´duction de donn´es ` la vol´e
e
e a
e
Une r´duction rapide,
e
respectant les propri´t´s
ee
statistiques des donn´es
e
Limite la charge m´moire + disque
e
G Varoquaux
14
29. 1 Strat´gies d’apprentissage sur du “big data”
e
1 R´duction de donn´es ` la vol´e
e
e a
e
2 Algorithmes “en ligne”
Consomment les donn´es en flux
e
Convergent vers des grandeurs moyennes
G Varoquaux
14
30. 1 Strat´gies d’apprentissage sur du “big data”
e
1 R´duction de donn´es ` la vol´e
e
e a
e
2 Algorithmes “en ligne”
3 Parall´lisme par d´coupage des donn´es
e
e
e
Stratification pour suivre
la structure statistique et
de stockage des donn´es
e
Taille des blocs adapt´
e
aux unit´s de calcul
e
G Varoquaux
14
31. 1 Strat´gies d’apprentissage sur du “big data”
e
1
2
3
4
R´duction de donn´es ` la vol´e
e
e a
e
Algorithmes “en ligne”
Parall´lisme par d´coupage des donn´es
e
e
e
Caching
Minimiser la latence d’acc`s aux donn´es
e
e
Ne pas recalculer la mˆme chose
e
G Varoquaux
14
32. 1 Strat´gies d’apprentissage sur du “big data”
e
1
2
3
4
5
R´duction de donn´es ` la vol´e
e
e a
e
Algorithmes “en ligne”
Parall´lisme par d´coupage des donn´es
e
e
e
Caching
Acc`s rapide aux donn´es
e
e
Repr´sentation coh´rente avec les motifs d’acc`s
e
e
e
Compression pour limiter la bande consomm´e
e
G Varoquaux
14
35. 1 Apprentissage statistique et big data
Apprendre une logique
d´cisionnelle riche
e
Regression
Classification
Non supervis´, ex. clustering
e
G Varoquaux
15
36. 1 Apprentissage statistique et big data
Apprendre une logique
d´cisionnelle riche
e
Les difficult´s
e
Statistiques
grande dimension
⇒ sur-apprentissage
Computationelles
sch´ma d’acc´s aux donn´es
e
e
e
G Varoquaux
15
37. 2 Une application en recherche
en neuroscience
Lier la biologie des neurones ` la pens´e
a
e
G Varoquaux
16
43. 2 Accumulation de donn´es
e
Atlas cognitif
Probl´matique d’apprentissage et de
e
“big data” en science fondementale
G Varoquaux
21
44. 3 Scikit-learn: une boite `
a
outils d’apprentissage
G Varoquaux
c Theodore W. Gray
22
45. 3 scikit-learn
L’apprentissage statistique pour tous
Pas de domaine d’application sp´cifique
e
Pas de pr´requis en machine learning
e
Librairie logicielle de qualit´
e
Interfaces pens´es pour l’utilisateur
e
D´veloppement communautaire
e
License BSD, contributeurs tr`s vari´s
e
e
http://scikit-learn.org
G Varoquaux
23
46. 3 Une biblioth`que Python
e
Une biblioth`que, pas un programme
e
Plus expressif et polyvalent
Facile ` integrer
a
Python:
Un langage haut niveau
- interactif,
- facile ` debugger,
a
Appels transparents au C
Ecosyst`me tr`s dynamique
e
e
G Varoquaux
24
47. 3 Performance computationelle
scikit-learn
SVM
5.2
LARS
1.17
Elastic Net 0.52
kNN
0.57
PCA
0.18
k-Means
1.34
mlpy pybrain pymvpa
9.47 17.5
11.52
105.3
37.35
73.7
1.44
1.41
0.56
8.93
0.79
∞
-
mdp shogun
40.48 5.63
0.58 1.36
0.47 0.33
35.75 0.68
Optimisations algorithmiques et non bas niveau
Minimiser les copies des donn´es
e
G Varoquaux
25
48. 3 D´veloppement comunautaire
e
´
Enormement de fonctionnalit´s:
e
b´n´fices d’une grande ´quipe
e e
e
Croissance du projet:
Plus de 200 contributeurs
∼ 12 d´veloppeurs coeur
e
1 ing´nieur INRIA temps plein
e
Coˆt de d´veloppement estim´: 6 millions $
u
e
e
Mod`le COCOMO,
e
http://www.ohloh.net/p/scikit-learn
G Varoquaux
26
49. 3 Fonctionalit´s
e
Apprentissage supervis´
e
Arbres de d´cision (Random-Forest, Boosted Tree)
e
Mod`les lin´aires
e
e
SVM
Apprentissage non supervis´
e
Clustering
Apprentissage de dictionnaire
D´tection d’outliers
e
S´lection de mod`les
e
e
Validation crois´e int´gr´e
e
e e
Optimisation de param`tres
e
G Varoquaux
27
51. 3 Structures de donn´es
e
27
7979
8794
0387 52701578
07
0179 46124797
17
9407 18717887
07
5497 90495190
34
1365 65358098
42
7475 46349084
15
4872 73245614
56
9034 87745620
71
7895
9
1
4
9
7
3
2
9
4
1
7
9
3
7
6
5
4
4
9
7
8
3
1
8
8
0
Tableau numpy
Tableau num´rique typ´ n-dimensionnel
e
e
Abstraction sur un pointeur
Matrice creuse scipy
Structure 2D avec peu d’´l´ments
ee
Diff´rentes repr´sentations de donn´es
e
e
e
6
Calcul vectoriel
Op´rations num´riques et matricielles
e
e
G Varoquaux
29
52. 3 Sp´cifier un mod`le
e
e
Un concept central: l’estimateur
Instanci´ sans les donn´es
e
e
Mais en sp´cifiant ses param`tres
e
e
from s k l e a r n . n e i g h b o r s import
KNearestNeighbors
estimator = KNearestNeighbors (
n n e i g h b o r s =2)
G Varoquaux
30
53. 3 Entraˆ
ıner un mod`le
e
Apprendre ` partir de donn´es
a
e
estimator . f i t ( X train , Y train )
o`:
u
X est un tableau ou une matrice de forme
nobservations × ndescripteurs
y est un tableau numpy, entier ou flottant
nobservations
G Varoquaux
31
54. 3 Utiliser un mod`le
e
Prediction: classification, regression
Y test = estimator . predict ( X test )
Transformation: reduction de dimension, filtre
X new = e s t i m a t o r . t r a n s f o r m ( X t e s t )
Estimation de densit´, vraissemblance
e
test score = estimator . score ( X test )
Estimation “en-line”
e s t i m a t o r . p a r t i a l f i t (X, Y)
G Varoquaux
32
55. 3 Vectorization
Passer des donn´es brutes ` la matrices X
e
a
doc 1
doc 2
doc 3
doc 4
doc 5
doc 6
doc 7
doc 8
doc 9
doc 10
doc 11
doc 12
doc 13
doc 14
Pour le texte: compter les occurrences de mots
- Donn´es d’entr´e: liste de documents (string)
e
e
- Donn´es de sortie: matrice creuse
e
n
pytho
java
33
99
C#
iler
p
com
G Varoquaux
1
ace 1
interf
r
serve
r44
drive
7
7
22
99
44
44
1
1
99 77
99
33
88
66
77
55
33
4
9
9
88
7
7
00
88
33
56. 3 Vectorization
Passer des donn´es brutes ` la matrices X
e
a
Pour le texte: compter les occurrences de mots
- Donn´es d’entr´e: liste de documents (string)
e
e
- Donn´es de sortie: matrice creuse
e
from s k l e a r n . f e a t u r e e x t r a c t i o n . t e x t
import H a s h i n g V e c t o r i z e r
h a s h e r = H a s h i n g V e c t o r i z e r ()
X = h a s h e r . f i t t r a n s f o r m ( documents )
G Varoquaux
33
58. Scikit-Learn: Machine Learning en Python
Apprentissage + big data = logique d´cisionnelle riche
e
Statistiques, algorithmes, acc`s aux donn´es
e
e
Scikit-learn:
- En Python
- Projet dynamique
- Page web tr`s fournie
e
http://scikit-learn.org
@GaelVaroquaux