Quel algo ml_pour_mon_probleme
-
Upload
paul-blondel -
Category
Science
-
view
170 -
download
0
Transcript of Quel algo ml_pour_mon_probleme
Quel algorithme machine learning (ML) pour mon problème ?
@paulb_recast
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
@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)
Quand et pourquoi utiliser du ML ?
@paulb_recast
Détection de visages Systèmes de recommandation
Chat-bots
@paulb_recast
Le ML, la parfaite boîte noire pour résoudre tous mes problèmes ?
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 ?
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)
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 !
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é ...
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
Les algorithmes ML populaires
@paulb_recast
La régression linéaire (algo de régression …)
Apprentissage
Prédiction
Principe:
Trouver une relation linéaireSupervisé.
Avantages :
- Très simple- Comm++- Faible place en mémoire- Rapide
Désavantages :
- Hypothèse : linéarité !- Instable si caractéristiques redondantes
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
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)
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)
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
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
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
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
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
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.
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 !
@paulb_recast
Alors, le ML, la parfaite boîte noire pour résoudre tous mes problèmes ?
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 ...
@paulb_recast
Merci !
Paul BlondelData Scientist @Recast.AI