50-56
>2011
93-2011
87-93
80-87
74-80
56-74
Naissance
de l'IA
1er hiver
L'age d'or
2e age d'or
2e hiver
maturité
discrète
Essor du
Deep Learning
Machine learning is a field of artificial intelligence that uses statistical techniques to give computer systems the ability to "learn" (e.g., progressively improve performance on a specific task) from data, without being explicitly programmed
From Arthur Samuels (source : Wikipedia)
"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E"
From Tom M,Mitchel
Depuis quelques années les progrès de la recherche ont abouti à des IAs capables de générer des données réalistes
vidéos
dessins
illustrations
photo realistes
...
Code
paragraphes
questions / réponses
Listes
résumés
...
Les Large Language Models (LLM)
voix
musique
...
De très gros réseaux de neurones
Entrainés très longuement sur des jeux de données gigantesques ...
... à prédire chaque prochain token d'un texte
Le réseau apprend des représentations complexes (embeding)
Conception & Entraînement
"L'apprentissage automatique est une branche de l'IA
Bonnes capacités de généralisation
Le réseau entrainé a appris des représentations généralisables
Inférence
Génération de texte token par token
Ré-entrainement sur des données spécifiques
Sélectionner un ensemble de documents à donner en contexte
fine tuning
En tant qu'expert de la data science programmant en python ...
contexte : prompt
Retrieval Augmented Generation
Les modèles de fondation ouverts (les plus connus)
Large Langage Model Meta AI
Inpainting
Outpainting
Image-to-image
Prompt-to-image
Modifier l'intérieur d'une image
Etendre l'extérieur d'une image
Générer un image à partir d'une image
Générer un image à partir d'une instruction textuelle
Groupe CompViz
Les plus connues
Générer du son à partir d'une instruction texte (prompt)
Acquisition
des données
Préparation des
données
Traitement des données
Besoin
Problème à résoudre
Compréhension des données
Collecte de données
Préparation de donnes
Traitement
des données
Déploiement
Exploration des données
Modelisation
Identification de pattern
Besoin
Problème à résoudre
Réalité
Communication
Visualisation
Rapport
produit/service
Prise de décisions
données
nettoyées
Algorithmes
Acquisition
des données
Préparation des
données
Traitement des données
Déploiement
Besoin /
Problème à résoudre
Compréhension des données
Modelisation
Identification de pattern
Evaluation
Compréhension du
domaine
Inspiré de la méthode CRISP
Apprentissage auto-supervisé
Apprentissage par renforcement
Apprentissage par transfert
Apprentissage semi-supervisé
Pool-based approaches
Stream-based selective sampling
Membership query synthesis scenario
Principe :
trouver la règle générale qui relie données et labels
Identifier des groupes (clustering)
Estimer la distribution de données
Estimer des relations entre les données
Méthodes de plongement
...
Réduction de dimensions
Embedding
Identifier des données abbérantes
Analyse de la covariance
Traitement du langage
Topic modeling
Glove
Word2vec
Principal Component Analysis (PCA)
Singular Value Decomposition (SVD)
Independant Component Analysis (ICA)
Sentence2vec
Isomap
Multi Dimensional Scaling (MDS)
t-SNE
Locally Linear Embeding (LLE)
...
Principe : trouver une structure dans les données mais avec une grande quantité de données non labellisées
Principe :
Procédure dans lequelle l'algorithme peut interroger le superviseur pour obtenir de nouvelles données
Principe : apprendre de manière supervisée en utilisant une partie de l'information comme label
self supervised learning
Exemple canonique : l'auto-encodeur
Tâche : prédire ces propres entrées
On utilise souvent une tâche prétexte
self supervised learning
Exemple avec le traitement de séquence
A l'origine des General Langage Model !
self supervised learning
Exemple en vision par ordinateur
Principe :
Un agent apprend les actions à realiser sur son environnement en maximisant une récompense
Principe :
Appliquer des connaissances apprise sur une tâche antérieure, sur de nouvelles tâches
Apprentissage supervisé
détection
catégorisation
Apprentissage par transfert
Apprentissage supervisé
Apprentissage non supervisé
Modèle de Nvidia pour la segmentation
Apprentissage par non supervisé
Apprentissage supervisé ou auto-supervisé
Apprentissage supervisé ou auto-supervisé
transfert de style (2015)
transfert de style vidéo et sur les simulation (2019)
Apprentissage supervisé
DALL.E 2
Stable diffusion
Apprentissage par renforcement
Intuition concernant les différentes frontières de décision de plusieurs algorithmes
linéaire
logistique
polynomiale
Traitement de
l'image et du son
Traitement
du
langage naturel
Systèmes de
recommandation
Systèmes
prédictifs
Aide à la
décision
Robotique
planification
d'actions
INDUSTRIE
FINANCE
COMMERCE
MEDECINE
ARTISTIQUE
MEDIA
TRANSPORT
Maintenance
prédictive
Robots
Gestion de flux
Scoring de crédit
Détection de fraude
Trading automatique
Marketing prédictif
Analyse de sentiment
Découverte de traitements
Prédictions de succès ou récidive
Anticipation de pannes
Robots cuisiniers
Robots
Design génératif
Synthèse de sons
Synthèse d'image
Gestion de ressources
Aide au diagnostic
Véhicules autonomes
Résumé automatique
Ecriture automatique
Recommandation de produits
Recommandation de
contenus
légendage
Choix d'un modèle
Optimisation des paramètres
Modelisation
Entraînement
Model(paramètres, hyperparamètres, ...)
Model.fit(X, y)
paramètres optimaux
Paramètres
Hyper paramètres
Valeurs apprises pendant l'apprentissage
Fixée à priori
par le data scientist
Ex: les coefficients d'une régression
Ex: le nombre de couches dans un réseau de neurones
Quasiment tous les algorithmes en machine learning ont des paramètres internes à régler pour donner de bons résultats !
"tuning"
Objectif: minimiser une fonction de coût / d'erreur
Objectif: trouver les Wi qui minimisent J
...
méthodes des moindres carrés
régressions
descente du grandient
réseaux de neurones
méthodes de boosting
Grid Search
Random Search
Bayesian Search
Evolutionnary Search
...
Halving Search
Choix d'un modèle
Optimisation des paramètres
Modelisation
Entraînement
Optimisation des hyperparamètres
paramètres optimaux
hyper paramètres optimaux
GridSearch.fit (model, grille, X, y)
model = Model(paramètres, hyperparamètres, ...)
A choisir en fonction de la tâche et de ses caractéristiques
...
accuracy
score F1
précision/rappel
aire sous la courbe ROC
erreur quadratique moyenne
pourcentage de variance expliquée
distances
inter-clusters
Classification
Régression
Multilabel
Clustering
erreur de couverture
mesures d'homogeneïté des clusters
Attention aux données déséquilibrées !
Dummy estimators ?
Evaluer les perfomances de son modèle par rapport à une baseline
Toujours prédire une constante ou la médiane
Toujours prédire la classe la plus fréquente
Garder l'esprit critique concernant ses résultats !
...
bias / variance trade off
Le problème consiste à "régler" l'algorithme pour qu'il apprenne avec suffisamment de précision tout en gardant de bonnes performances sur des données qu'il n'a jamais rencontré (sa capacité à généraliser ses résultats)
bias / variance trade off
Erreur attendue
calculée sur le jeu de test
Variance de l'estimateur de f
Carré du biais l'estimateur de f
erreur irréductible
"écart entre modèle et réalité des données"
"capacité à estimer f avec le moins variabilité lorsque le dataset change"
BIAIS
"écart entre modèle et réalité des données"
VARIANCE
"capacité à estimer f avec le moins variabilité lorsque le dataset change"
Problème qui apparaît quand notre dataset contient beaucoup de variables par rapport au nombre d'observations
...
...
...
variables
observations
Plus de détails dans cet article
Suivant certaines conditions, la performance de tous les algorithmes est identique en moyenne
Conséquence: il n'y pas d'algorithme ''ultime" qui donnerait toujours les meilleurs performances pour une tâche donnée
Classe de problèmes qui ne peuvent pas être résolus dans un temps raisonnable, c'est à dire qui ont une forte complexité algorithmique
Intérêt : prévenir les risques de sur apprentissage en partionnant le dataset
On échantillonne les données en trois parties:
data set
test
apprentissage & validation
validation
test
apprentissage
Intérêt: partitionner le data set itérativement en différents échantillon
Validation data
courbes d'apprentissage en fonction de la complexité
Intérêt : diagnostiquer l'état de ce compromis
Dans la pratique on peut observer des comportements différents
Dans la pratique, le comportement de ces courbes peut être difficile à diagnostiquer
Quelques ressources pour vous aider :
Sous apprentissage probable
La courbe de loss de train est plate ou des valeurs élévée
Sous apprentissage probable
La courbe loss de train continue de diminuer à la fin du graphique
Sur apprentissage probable
La courbe loss de train continue de diminuer
La courbe loss de validation finit par stagner ou augmenter
Data set de train probablement non représentatif
Les deux courbes de loss dominuent mais présentent un écart
Data set de validation probablement non représentatif
La courbe de loss de train est cohérente mais la courbe validation est bruitée
Data set de validation probablement non représentatif
La courbe de loss de validation est inférieure à celle de train
Les deux courbes diminuent
jusqu'a un point de stabilité montrant un faible écart
La courbe de loss du jeu de train est inférieure à celle de validation
Intérêt : diagnostiquer l'état de ce compromis
High biais case
fort biais, faible variance
modèle trop rigide
faible biais, forte variance
sous apprentissage probable
modèle trop flexible
sur apprentissage probable
faible biais
faible variance
Sélectionner dans le dataset le minimum de features qui contribue le plus aux bonnes performances
Threshold Methods
...
Intrinsic methods
Objectif : réduire la complexité du modèle
Wrapper methods
correlations
information gain
...
threshold methods
recursive feature elimination
hierarchical selection
LASSO
Ridge
...
Domain knowledge
Ne s'applique que sur le jeu d'apprentissage pas sur le jeu de test --> risque de data leakage
A appliquer pendant chaque fold de la cross-validation en même temps que l'entaînement du modèle
En pratique, on conseille k=5 ou k=10
Principe:
Réduire le nombre de variables du dataset en les recombinant en moins de variables plus complexes mais plus informatives
Très souvent effectuée par l'intermédiaire d'un plongement ou apprentissage de variété
Exemples de méthodes populaires
Transformer ou enrichir les données existantes
Rajouter plus de données
données métiers, open data, scraping ...
Feature engineering :
créer des nouvelles variables
enrichissement (annotations, méta données, ...)
transformations (déformations d'images, ...)
Idée: contraindre des valeurs de coefficients pour limiter leur variations
régression linéaire
régression polynomiale
méthodes parallèles
méthodes séquentielles
méthodes parallèles simple
bagging
boosting
gradient boosting
Stacking
Combiner différents modèles pour obtenir un modèle plus performant
L'essence du Machine Learning est de trouver les meilleurs paramètres qui minimisent la fonction de perte
La plupart des librairies vous permettent d'utiliser les algorithmes de machine learning avec des paramètres par défaut :
from sklearn.tree import DecisionTreeRegressor
regressor = DecisionTreeRegressor(random_state=0)
regressor.fit(X_train, y_train)
Par exemple, si vous écrivez ce code avec un Decision Tree :
Si votre algorithme ne comprend pas de méthode d'optimisation, vous devez à minima utiliser une méthode de GridSearch !
C'est un phénomène qui survient lorsque vous utilisez ,pendant un entraînement, des informations auxquelles votre algorithmes ne devrait pas avoir accès
Par ex, en utilisant dans les features des informations de la cible :
C'est un phénomène qui survient lorsque vous utilisez ,pendant un entraînement, des informations auxquelles votre algorithmes ne devrait pas avoir accès
Ou bien en oubliant d'appliquer le split des données avant les traitements :
appris
C'est un phénomène qui survient lorsque vous utilisez ,pendant un entraînement, des informations auxquelles votre algorithmes ne devrait pas avoir accès
Appliquer le split des données avant les traitements :
appris
appliqué
appliqué
Support Vector Machine
Maximise la distance entre une frontière de décision et différentes classes d'échantillons
Principe:
trouver une règle la plus optimale pour partitionner les données en "clusters" homogènes
Scikit-learn
TensorFlow
Torch / PyTorch
H2O.ai
Spark MLlib
KNIME
RapidMiner
Weka
CNTK
Microsoft Azure ML
Amazon Machine Learning
Neural Designer
...
Google Cloud AI
SAS
Scala
Julia
Kaggle
Langages
FRAMEWORKS
Plateformes
No-code
Copilot
Assistants
GPT playground
GPU
TPU
Cloud
CPU
...
Ecosystème Hadoop
Stockage distribué
calcul distribué
Base de données SQL, NoSQL
BIG DATA
CALCUL
Microsoft Azure ML
Amazon Machine Learning
Google Cloud AI
OVH
Data warehouse
Data mesh
Data Lake
Nécessité d'encadrer l'IA par de l'éthique
Envisager l'IA comme un compagnon de l'Humain plutôt qu'un remplaçant