Your SlideShare is downloading. ×
Scikit-learn: apprentissage statistique en Python. Créer des machines intelligentes
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Scikit-learn: apprentissage statistique en Python. Créer des machines intelligentes

1,320
views

Published on

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

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

Published in: Technology, Education

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,320
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
25
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Apprentissage statistique, Cr´er des machines intelligentes e Ga¨l Varoquaux e
  • 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
  • 3. 1 L’apprentissage statistique en deux mots G Varoquaux 3
  • 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
  • 9. 1 L’apprentissage statistique Exemple: reconnaissance de visage Andr´ e G Varoquaux Bernard Charles Didier 5
  • 10. 1 L’apprentissage statistique Exemple: reconnaissance de visage Andr´ e G Varoquaux Bernard Charles ? Didier 5
  • 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
  • 16. 1 Apprentissage supervis´: r´gression e e y Un seul descripteur: une dimension x G Varoquaux 10
  • 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
  • 26. 1 L’apprentissage statistique Des d´fis e Statistiques Computationels G Varoquaux 13
  • 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
  • 33. 1 Apprentissage statistique Apprendre une logique d´cisionnelle e G Varoquaux 15
  • 34. 1 Apprentissage statistique et big data Apprendre une logique d´cisionnelle riche e G Varoquaux 15
  • 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
  • 38. 2 L’IRM fonctionnelle t Enregistrement de l’activit´ c´r´brale e ee G Varoquaux 17
  • 39. 2 NeuroImagerie cognitive Apprendre un lien bilateral entre activit´ e c´r´brale et fonction cognitive ee G Varoquaux 18
  • 40. 2 Mod`les d’encodage de l’information e Pr´dire les r´ponses neurales e e ⇒ apprendre les repr´sentations c´rebrale e e G Varoquaux 19
  • 41. 2 D´codage de l’activit´ c´r´brale e e ee “Lire dans les pens´es” e G Varoquaux 20
  • 42. 2 Accumulation de donn´es e Atlas cognitif G Varoquaux 21
  • 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
  • 50. Code G Varoquaux 28
  • 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
  • 57. Exemples G Varoquaux 34
  • 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