Présentation "quel algo ML pour mon problème".
Présentation d'initiation au ML pour les profanes, conseils pratiques, passage en revu de différents algos populaires, conseils pour choisir son algo. 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 ...