Scikit-learn: apprentissage statistique en Python. Créer des machines intelligentes
-
Upload
gaelvaroquaux -
Category
Technology
-
view
1.586 -
download
2
description
Transcript of Scikit-learn: apprentissage statistique en Python. Créer des machines intelligentes
Apprentissage statistique,Creer des machines intelligentes
Gael Varoquaux
1 L’apprentissage statistique en deuxmots
2 Une application en recherche enneuroscience
3 Scikit-learn: une boite a outilsd’apprentissage
G Varoquaux 2
1 L’apprentissage statistique endeux mots
G Varoquaux 3
1 Une perspective historiqueIntelligence artificielle annees 80
Concevoir des regles de decision
Mangeable?
Mobile?
Grand?
Apprentissage machine annees 90Les creer a partir d’observations
Apprentissage statistique annees 2000Modeliser le bruit dans les observations
Big data maintenantBeaucoup d’observations,des regles simples
“Big data isn’t actually interesting without machinelearning” Steve Jurvetson, VC, Silicon Valley
G Varoquaux 4
1 Une perspective historiqueIntelligence artificielle annees 80
Concevoir des regles de decision
Apprentissage machine annees 90Les creer a partir d’observations
Apprentissage statistique annees 2000Modeliser le bruit dans les observations
Big data maintenantBeaucoup d’observations,des regles simples
“Big data isn’t actually interesting without machinelearning” Steve Jurvetson, VC, Silicon Valley
G Varoquaux 4
1 Une perspective historiqueIntelligence artificielle annees 80
Concevoir des regles de decision
Apprentissage machine annees 90Les creer a partir d’observations
Apprentissage statistique annees 2000Modeliser le bruit dans les observations
Big data maintenantBeaucoup d’observations,des regles simples
“Big data isn’t actually interesting without machinelearning” Steve Jurvetson, VC, Silicon Valley
G Varoquaux 4
1 Une perspective historiqueIntelligence artificielle annees 80
Concevoir des regles de decision
Apprentissage machine annees 90Les creer a partir d’observations
Apprentissage statistique annees 2000Modeliser le bruit dans les observations
Big data maintenantBeaucoup d’observations,des regles simples
“Big data isn’t actually interesting without machinelearning” Steve Jurvetson, VC, Silicon Valley
G Varoquaux 4
1 Une perspective historiqueIntelligence artificielle annees 80
Concevoir des regles de decision
Apprentissage machine annees 90Les creer a partir d’observations
Apprentissage statistique annees 2000Modeliser le bruit dans les observations
Big data maintenantBeaucoup d’observations,des regles simples
“Big data isn’t actually interesting without machinelearning” Steve Jurvetson, VC, Silicon Valley
G Varoquaux 4
1 L’apprentissage statistique
Exemple: reconnaissance de visage
Andre Bernard Charles Didier
G Varoquaux 5
1 L’apprentissage statistique
Exemple: reconnaissance de visage
Andre Bernard Charles Didier
?G Varoquaux 5
1 Methode naıve
1 Stocker des images connues (bruitees) et les nomsqui vont avec.
2 A partir d’une photo (bruitee aussi), trouver l’imagequi lui ressemble le plus.
Methode “des plus proches voisins”
Quel taux d’erreurs sur les images deja vues?... 0: pas d’erreurs
Donnees de test 6= donnees d’apprentissage
G Varoquaux 6
1 Methode naıve
1 Stocker des images connues (bruitees) et les nomsqui vont avec.
2 A partir d’une photo (bruitee aussi), trouver l’imagequi lui ressemble le plus.
Methode “des plus proches voisins”Quel taux d’erreurs sur les images deja vues?
... 0: pas d’erreurs
Donnees de test 6= donnees d’apprentissage
G Varoquaux 6
1 1er probleme: le bruitDonnees non liees a la variable a predire
0.0 0.5 1.0 1.5 2.0 2.5 3.0Niveau de bruit
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Taux d
e p
redic
tion
G Varoquaux 7
1 2eme probleme: nombre de descripteurs
Trouver une aiguille dans une botte de foin
1 2 3 4 5 6 7 8 9 10Fraction utile du cadre
0.65
0.70
0.75
0.80
0.85
0.90
0.95
Taux d
e p
redic
tion
G Varoquaux 8
1 L’apprentissage statistique
Exemple: reconnaissance de visage
Andre Bernard Charles Didier
?
Apprentissage a partir dedescripteurs numeriquesDifficultes: i) bruit,
ii) nombre de descripteursTache “supervisee”: labels connusTache “non supervisee”: labels inconnus
G Varoquaux 9
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
y
G Varoquaux 10
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
y
x
yQuel modele preferer?
G Varoquaux 10
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
y
x
yProbleme du “sur-apprentissage” (“overfit”)
Minimiser l’erreur n’est pas toujours favorable(apprentissage du bruit)
Donnees de test 6= donnees d’apprentissageG Varoquaux 10
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
y
x
yPreferer les modeles simples
= concept de “regularisation”Equilibrer le nombre de parametres a apprendreavec la quantite de donnees
G Varoquaux 10
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
y
x
yPreferer les modeles simples
= concept de “regularisation”Equilibrer le nombre de parametres a apprendreavec la quantite de donnees
Compromis biais variance
G Varoquaux 10
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
yDeux descripteurs:2 dimensions
X_1
X_2
y
Plus de parametres
Equilibrer le nombre de parametres a apprendreavec la quantite de donnees
G Varoquaux 10
1 Apprentissage supervise: regressionUn seul descripteur:une dimension
x
yDeux descripteurs:2 dimensions
X_1
X_2
y
Plus de parametres⇒ besoin de plus de donnees
“malediction de la dimensionalite”
G Varoquaux 10
1 Apprentissage supervise: classificationVariable a predire categorielle, par ex. des chiffres
X2
X1
G Varoquaux 11
1 Apprentissage non supervise
Structure de la bourse
http://scikit-learn.org/stable/auto examples/applications/plot stock market.html
Donnees non labeliseesplus courantes que les donnees labelisees
G Varoquaux 12
1 Apprentissage non supervise
Structure de la bourse
http://scikit-learn.org/stable/auto examples/applications/plot stock market.html
Donnees non labeliseesplus courantes que les donnees labelisees
G Varoquaux 12
1 L’apprentissage statistique
Des defis
StatistiquesComputationels
G Varoquaux 13
1 Strategies d’apprentissage sur du “big data”
Big data
L’acces aux donnees limite plus quela puissance de calcul
G Varoquaux 14
1 Strategies d’apprentissage sur du “big data”
1 Reduction de donnees a la volee
Une reduction rapide,respectant les proprietesstatistiques des donnees
Limite la charge memoire + disque
G Varoquaux 14
1 Strategies d’apprentissage sur du “big data”
1 Reduction de donnees a la volee2 Algorithmes “en ligne”
Consomment les donnees en flux
Convergent vers des grandeurs moyennes
G Varoquaux 14
1 Strategies d’apprentissage sur du “big data”
1 Reduction de donnees a la volee2 Algorithmes “en ligne”3 Parallelisme par decoupage des donnees
Stratification pour suivrela structure statistique etde stockage des donneesTaille des blocs adapteaux unites de calcul
G Varoquaux 14
1 Strategies d’apprentissage sur du “big data”
1 Reduction de donnees a la volee2 Algorithmes “en ligne”3 Parallelisme par decoupage des donnees4 Caching
Minimiser la latence d’acces aux donnees
Ne pas recalculer la meme chose
G Varoquaux 14
1 Strategies d’apprentissage sur du “big data”
1 Reduction de donnees a la volee2 Algorithmes “en ligne”3 Parallelisme par decoupage des donnees4 Caching5 Acces rapide aux donnees
Representation coherente avec les motifs d’accesCompression pour limiter la bande consommee
G Varoquaux 14
1 Apprentissage statistique
Apprendre une logiquedecisionnelle
G Varoquaux 15
1 Apprentissage statistique et big data
Apprendre une logiquedecisionnelle riche
G Varoquaux 15
1 Apprentissage statistique et big data
Apprendre une logiquedecisionnelle riche
Regression Classification
Non supervise, ex. clustering
G Varoquaux 15
1 Apprentissage statistique et big data
Apprendre une logiquedecisionnelle riche
Les difficultes
Statistiquesgrande dimension⇒ sur-apprentissage
Computationellesschema d’acces aux donnees
G Varoquaux 15
2 Une application en rechercheen neuroscience
Lier la biologie des neurones a la penseeG Varoquaux 16
2 L’IRM fonctionnelle
t
Enregistrement de l’activite cerebrale
G Varoquaux 17
2 NeuroImagerie cognitive
Apprendre un lien bilateral entre activitecerebrale et fonction cognitive
G Varoquaux 18
2 Modeles d’encodage de l’information
Predire les reponses neurales⇒ apprendre les representations cerebrale
G Varoquaux 19
2 Decodage de l’activite cerebrale
“Lire dans les pensees”
G Varoquaux 20
2 Accumulation de donnees
Atlas cognitif
Problematique d’apprentissage et de“big data” en science fondementale
G Varoquaux 21
2 Accumulation de donnees
Atlas cognitif
Problematique d’apprentissage et de“big data” en science fondementale
G Varoquaux 21
3 Scikit-learn: une boite aoutils d’apprentissage
c©Theodore W. GrayG Varoquaux 22
3 scikit-learn
L’apprentissage statistique pour tousPas de domaine d’application specifique
Pas de prerequis en machine learning
Librairie logicielle de qualiteInterfaces pensees pour l’utilisateur
Developpement communautaireLicense BSD, contributeurs tres varies
http://scikit-learn.org
G Varoquaux 23
3 Une bibliotheque Python
Une bibliotheque, pas un programmePlus expressif et polyvalentFacile a integrer
Python:Un langage haut niveau- interactif,- facile a debugger,Appels transparents au CEcosysteme tres dynamique
G Varoquaux 24
3 Performance computationelle
scikit-learn mlpy pybrain pymvpa mdp shogunSVM 5.2 9.47 17.5 11.52 40.48 5.63LARS 1.17 105.3 - 37.35 - -Elastic Net 0.52 73.7 - 1.44 - -kNN 0.57 1.41 - 0.56 0.58 1.36PCA 0.18 - - 8.93 0.47 0.33k-Means 1.34 0.79 ∞ - 35.75 0.68
Optimisations algorithmiques et non bas niveau
Minimiser les copies des donnees
G Varoquaux 25
3 Developpement comunautaireEnormement de fonctionnalites:
benefices d’une grande equipe
Croissance du projet:
Plus de 200 contributeurs∼ 12 developpeurs coeur
1 ingenieur INRIA temps plein
Cout de developpement estime: 6 millions $Modele COCOMO,http://www.ohloh.net/p/scikit-learn
G Varoquaux 26
3 Fonctionalites
Apprentissage superviseArbres de decision (Random-Forest, Boosted Tree)Modeles lineairesSVM
Apprentissage non superviseClusteringApprentissage de dictionnaireDetection d’outliers
Selection de modelesValidation croisee integreeOptimisation de parametres
G Varoquaux 27
Code
G Varoquaux 28
3 Structures de donnees
0387879479
7927
0179075270
1578
9407174612
4797
5497071871
7887
1365349049
5190
7475426535
8098
4872154634
9084
9034567324
5614
7895718774
5620
Tableau numpyTableau numerique type n-dimensionnelAbstraction sur un pointeur
3 7
9
9 2
8
9 4
4
9 7 1
7
1 3 9
0
7 6
8
4 5
8
4 3
1
6
Matrice creuse scipyStructure 2D avec peu d’elementsDifferentes representations de donnees
Calcul vectorielOperations numeriques et matricielles
G Varoquaux 29
3 Specifier un modele
Un concept central: l’estimateurInstancie sans les donneesMais en specifiant ses parametres
from s k l e a r n . n e i g h b o r s importK N e a r e s t N e i g h b o r s
e s t i m a t o r = K N e a r e s t N e i g h b o r s (n n e i g h b o r s =2)
G Varoquaux 30
3 Entraıner un modele
Apprendre a partir de donneese s t i m a t o r . f i t ( X t r a i n , Y t r a i n )
ou:X est un tableau ou une matrice de forme
nobservations × ndescripteurs
y est un tableau numpy, entier ou flottantnobservations
G Varoquaux 31
3 Utiliser un modele
Prediction: classification, regressionY t e s t = e s t i m a t o r . p r e d i c t ( X t e s t )
Transformation: reduction de dimension, filtreX 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 densite, vraissemblancet e s t s c o r e = e s t i m a t o r . s c o r e ( X t e s t )
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
3 Vectorization
Passer des donnees brutes a la matrices X
Pour le texte: compter les occurrences de mots- Donnees d’entree: liste de documents (string)- Donnees de sortie: matrice creuse
3 7
9
9 2
8
9 4
4
9 7 1
7
1 3 9
0
7 6
8
4 5
8
4 3
1
6
3 7
9
9 2
8
9 4
4
9 7 1
7
1 3 9
0
7 6
8
4 5
8
4 3
1
6
doc 1
doc 2
doc 3
doc 4
doc 5
doc 6
doc 7
doc 8
doc 9
doc 1
0d
oc 1
1d
oc 1
2d
oc 1
3d
oc 1
4
python
java
C#
compiler
interface
server
driver
system
logs
G Varoquaux 33
3 Vectorization
Passer des donnees brutes a la matrices X
Pour le texte: compter les occurrences de mots- Donnees d’entree: liste de documents (string)- Donnees de sortie: matrice creuse
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 timport 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
Exemples
G Varoquaux 34
Scikit-Learn: Machine Learning en Python
Apprentissage +++ big data = logique decisionnelle riche
Statistiques, algorithmes, acces aux donnees
Scikit-learn:- En Python- Projet dynamique- Page web tres fournie
http://scikit-learn.org
@GaelVaroquaux