Scikit-Learn: Machine Learning en Python

  • 294 views
Uploaded on

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 …

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)

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
294
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
2

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