Slides de la présentation du meetup Paris AI 2.
Sujet: "Quel algo machine learning pour mon problème ?"
Présentation d'initiation au ML pour les profanes + conseils pour choisir son algo (comparaison rapide des différents algos) + conseils pratiques.
3. Mais d’abord …
Quand et pourquoi utiliser du ML ?
@paulb_recast
- Créer des systèmes de décision
- Trouver une structure
- Détecter des anomalies
- Traiter des données complexes et/ou volumineuses
- Automatiser le traitement des données
Système de décision Découvrir une structure Trouver une anomalie
4. @paulb_recast
Quand et pourquoi utiliser du ML ?
“Machine Learning is the field of study that gives computers the ability to
learn without being explicitly programmed.” Arthur Samuel (1959)
5. Quand et pourquoi utiliser du ML ?
@paulb_recast
Détection de visages Systèmes de recommandation
Chat-bots
7. Bien définir le problème à résoudre !
@paulb_recast
Que voulons-nous faire ?
● Prédire une catégorie ? (classification)
● Prédire une quantité ? (régression)
100m2, Orly, Garage …
● Détecter une anomalie ?
20 dollars retiré 5 fois à Las Vegas
● Trouver une structure dans les données ?
Chien ou chat ? Chat ...
230.000 euros
OuiFraude ?
Prix ?
8. Bien définir le problème à résoudre !
@paulb_recast
De quoi disposons-nous ?
● Avons-nous beaucoup de données ?
● Les données sont-elles labellisées ?
● Avons nous beaucoup de caractéristiques ?
● Combien de classes ai-je dans mes données ? (si données labellisées)
Images labelisées “kim”
Images labelisées “chat”Images non-labelisées
(en désordre)
9. Bien définir le problème à résoudre !
@paulb_recast
Quelles sont mes contraintes ?
● De quel espace de mémoire disposons nous pour notre modèle ?
● Avons-nous des contraintes de rapidité de prédiction ?
● Avons-nous des contraintes de rapidité d’apprentissage ?
Mais aussi …
● Ne pas oublier la maintenabilité !
● Ne pas négliger la communication !
10. Un peu de théorie ...
@paulb_recast
L’apprentissage ML revient à découvrir une structure latente dans les données. Trois
approches principales d’apprentissage :
● Supervisé :
Quand toutes les données que nous avons sont labellisées
● Non-supervisé :
Quand les données ne sont pas labellisées
On vient grouper les données “proches” / similaires
● Semi-supervisé:
Quand une partie des données seulement est labellisée
Cas couramment rencontré en pratique
Supervisé ...
Non-supervisé ...
11. Un peu de théorie ...
@paulb_recast
Deux choses importantes à garder à l’esprit : le bias et la variance.
● Le biais : erreur sur hypothèses d’apprentissage
Biais élevé = sous-apprentissage
Apprentissage
Apprentissage
Prédiction
Prédiction
● La variance : erreur due aux petites fluctuations des données d’apprentissage
Variance élevée = sur-apprentissage
12. Les algorithmes ML populaires
@paulb_recast
La régression linéaire (algo de régression …)
Apprentissage
Prédiction
Principe:
Trouver une relation linéaire
Supervisé.
Avantages :
- Très simple
- Comm++
- Faible place en mémoire
- Rapide
Désavantages :
- Hypothèse : linéarité !
- Instable si caractéristiques redondantes
13. Les algorithmes ML populaires
@paulb_recast
Arbre de décision (algo de classification et régression)
Principe:
Subdivise les données d'entraînement en régions ayant des
caractéristiques similaires. Supervisé.
Avantages :
- Plutôt simple
- Comm +++
- Maintenabilité ++
- Pratique quand caractéristiques catégorielles
- Peu de paramètres
- Prédiction rapide
Désavantages :
- Peut prendre beaucoup de mémoire
- Sur-apprendre énormément
- Ne supporte pas l’apprentissage incrémental.
Apprentissage
Prédiction
14. Les algorithmes ML populaires
@paulb_recast
Apprentissage
Prédiction
Principe:
Les données d’entraînement sont divisées en N sous-ensemble
aléatoire. Pour chaque sous-ensemble, un sous-ensemble de
caractéristiques est aléatoirement tiré. Supervisé.
À la prédiction: vote majoritaire.
Avantages :
- Robuste au sur-apprentissage
- Paramétrisation intuitive et aisée
- Performant quand grand nombre de données
- Supporte grand nombre de caractéristiques
Désavantages :
- Peut prendre beaucoup de mémoire …
- Ne supporte pas l’apprentissage incrémental
- Apprentissage lent
Forêts aléatoires (algo de classification et régression)
15. Les algorithmes ML populaires
@paulb_recast
Apprentissage
Prédiction
Principe:
Des prédicteurs “faibles” sont appris en série.
Après une itération : l’importance des données d’apprentissage est
ajustée.
Supervisé
Avantages :
- Paramétrisation simple
- Pas besoin d’avoir un prédicteur “faible” complexe
- Robuste au sur-apprentissage
- En série: temps prédiction optimisable !
- Performant quand grand nombre de données
Désavantages :
- Selon type prédicteur faible: beaucoup de mémoire
- Apprentissage lent
Algorithme de Boosting (algo de classification et régression)
16. Les algorithmes ML populaires
@paulb_recast
Machine à vecteurs de support (algo de classification …)
Principe:
Choisir la structure séparatrice qui sépare au maximum les données
des deux côtés (en se basant sur des “supports”)
Supervisé.
Avantages :
- Conçu pour réduire le sur-apprentissage
- Prédiction très rapide
- Gère très grand nombre de caractéristiques
- Gère grand volume de données d’apprentissage
- Prend très peu de place en mémoire
Désavantages :
- Comm --
- Maintenabilité --
- Apprentissage lent
- Paramétrisation peu intuitive
Apprentissage
Prédiction
17. Les algorithmes ML populaires
@paulb_recast
Réseaux de neurones (algo de classification et de regression …)
Principe:
Apprendre les poids des connections entre les neurones.
Les poids sont ajustés donnée après donnée.
Avantages :
- Deep: modélise cas complexes
- Gère grand volume de données d’apprentissage
- Pas d'ingénierie des caractéristiques (“boîte noire”)
- Grand nombre de structures (CNN, RNN, etc.)
Désavantages :
- Comm ----
- Maintenabilité ----
- Apprentissage lent
- Prend beaucoup de mémoire (surtout en deep)
- Deep: nécessite grande quantité de données.
- Paramétrisation très peu intuitive
Apprentissage
Prédiction
18. Les algorithmes ML populaires
@paulb_recast
L’algorithme des K-Moyennes (algo de clusterisation …)
Principe:
K centres sont sélectionnés aléatoirement.
À chaque itération les centres sont réestimés.
Non-supervisé.
Avantages :
- Paramétrisation intuitive
- Fonctionne bien avec beaucoup de données
Désavantages :
- Connaître à l’avance nombre de groupements
- Groupements différents à chaque lancement
Avantage ou désavantage :
- Algo de partitionnement !
Initialisation Première itération
Itération N
19. Les algorithmes ML populaires
@paulb_recast
L’algorithme One-class SVM (algo de détection d’anomalies …)
Principe:
Choisir la marge séparatrice qui sépare au maximum les données (en
se basant sur des “supports”) de l’origine.
Toutes les données appartiennent à une classe.
Avantages :
- Prédiction très rapide
- Gère très grand nombre de caractéristiques
- Gère grand volume de données d’apprentissage
- Prend très peu de place en mémoire
Désavantages :
- Comm --
- Maintenabilité --
- Apprentissage lent
- Paramétrisation peu intuitive
Apprentissage
Prédiction
20. Choisir son algo
@paulb_recast
Algo Type
Tolérance nombre
caractéristiques
Paramétrisation
Taille
mémoire
Quantité mini
de données
nécessaire
Comm
Tendance
sur-apprentissage
Difficulté Temps calcul
apprentissage
Temps calcul
prédiction
Régression linéaire R Faible Inexistante Faible Petite ++ Basse Faible Faible Faible
Régression logistique C Faible Simple Faible Petite ++ Basse Faible Faible Faible
Arbre de décision R et C Grande Simple / intuitive Grosse Petite +++ Très élevée Faible Faible Faible
Forêt aléatoire R et C Grande Simple / intuitive Très grosse Grosse ++ Moyenne Moyenne Coûteux Coûteux
Boosting R et C Grande Simple / intuitive Très grosse Grosse + Moyenne Moyenne Coûteux Faible
Naive Bayes C Faible Inexistante Faible Petite ++ Basse Faible Faible Faible
SVM C Très grande Peu intuitive Faible Grosse -- Moyenne Élevée Coûteux Faible
Rés Neurones (RN) C Très grande ** Peu intuitive Moyenne Grosse --- Moyenne Très élevée Coûteux Faible
RN Deep C Très grande ** Peu intuitive Très grosse Très grosse --- Élevée Très élevée Très coûteux Faible
K-Means G* Grande Simple / Intuitive Petite + Faible Faible
One class SVM A Très grande Peu intuitive Faible Grosse -- Moyenne Élevée Coûteux Faible
* Seul algo non-supervisé présenté
** Ne nécessite pas d'ingénierie des caractéristiques
21. Conseils pratiques
@paulb_recast
● Toujours jeter un oeil à la tête des données !
● Travail itératif : en premier, algos avec paramétrisation intuitive / simple
○ Assurance sur l’approche de résolution du problème
○ Peu de perte de temps en tuning de paramètres en POC
● Ingénierie des caractéristiques:
○ Peu de caractéristiques : peu de facets dispo pour voir les données,
○ Trop de caractéristiques : compenser avec plus de données ou réduire
● Passer en mode bac-à-sable avant implém (R / Matlab / Python)
○ Tester différents algos sur un échantillon de données
○ Et finalement implém ou utiliser le meilleur choix !
● Jauger la généralisation du modèle appris :
○ Cross-validation.
22. Quelques conseils
@paulb_recast
● Problèmes non-linéaires : éviter Naive Bayes, Régression linéaire et Logistique
● Performances:
○ Difficile de prédire lequel sera le plus performant …
○ Acquérir plus de données d’abord !
24. Conclusion
@paulb_recast
● Comment définir son problème :
○ Que voulons-nous faire ?
○ De quoi disposons-nous ?
○ Quelles sont mes contraintes ?
● Approches ML, le biais et la variance
● Les algos ML populaires
● Une comparaison de ces algos
● Quelques conseils pratiques ...