High-level talk about machine learning: the statistical and computational challenges, as well as how they can be answer by the scikit-learn Python toolkit. In French
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