L'overfitting ou quand le modèle sur-apprend

 
Avec ce blog, nous entamons un nouveau cycle de réflexions et d’analyses autour de l’Intelligence Artificielle (communément appelée IA) et de ce qui l’alimente, la data. Ce premier « Data face » ouvre le bal et se concentre sur la problématique de l’overfitting (ou surapprentissage). D’autres « Data face » seront publiés par la suite et ils traiteront tous de sujets en relation avec l’IA ou la data, que ce soit d’un point de vue scientifique, utilisateur ou business. Nous espérons que ce « Data face » vous plaira et que les suivants feront de même.
 
Avant de commencer, assurons-nous que nous partagons la même définition de l’intelligence artificielle (aussi appelée IA) : l’IA est une science qui permet aux machines d’imiter le comportement des humains en utilisant de la data. Jusque là, c’est clair. Mais comment fait-elle ?
 
De plusieurs façons possibles, et dans tous les cas avec des algorithmes. Alors commençons par la base et revenons sur l’apprentissage automatique (ou machine learning, aka ML). Le ML est un incontournable qui peut se voir comme un sous-ensemble de l’IA. Le ML permet aux machines de prendre des décisions sur la base de données (en général des « time series », c’est-à-dire des series de données qui varient dans le temps, ce qui en soi n’est déjà pas évident à maîtriser – voir notre précédent blog sur le sujet). Quasiment toutes les IA utilisent du ML pour élaborer leurs modèles algorithmiques.
 
Poursuivons notre périple pour découvrir les nombreux dérivés du ML, comme l’apprentissage profond (ou Deep Learning, aka DL) ou l’apprentissage par renforcement (ou Reinforcement Learning, aka RL). Le DL utilise le concept des réseaux neuronaux pour résoudre des problèmes complexes. Le RL, qui peut lui aussi être deep, permet aux machines d’agir dans un environnement selon des contraintes données afin d’atteindre un objectif de manière optimale par une notion de récompense cumulative. En gros, avec le RL, l’IA s’essaye à nous imiter, notamment en découvrant la notion de récompense (quand elle fait juste) ou de « punition » (quand elle fait faux).
 
Et voici le dernier de la petite famille : l’apprentissage profond par renforcement (ou Deep Reinforcement Learning, aka DRL). Le DRL mixe DL et RL afin de mettre en application des réseaux neuronaux convolutifs (ou Convolutional Neural Network, ou CNN), beaucoup utilisés pour des problèmes jusqu’alors impossible à résoudre par des machines, comme jouer à des jeux vidéos complexes en n’utilisant que des pixels bruts en entrée (vous ne voyez pas ? Lisez « Playing Atari with Deep Reinforcement Learning« , cela devrait vous inspirer). Mais le DRL ne se cantonne pas qu’à ça, vous vous en doutiez…
 
En résumé, le ML, le DL, le RL et le DRL sont des domaines interconnectés qui aident l’IA en lui fournissant un ensemble d’algorithmes combinés à des réseaux neuronaux qui apprennent de façon supervisée (la façon classique) ou non supervisée (pour les plus avancés), tout ça pour résoudre des problèmes (souvent complexes) en se basant sur la data. Tout un programme!

Overfitting : quand la data se joue de vous !

Nous ne le répéterons jamais assez : sans données fiables, point de salut ! Et beaucoup si possible. Mais avoir des data, aussi bonnes soient-elles, n’est pas encore suffisant pour obtenir des résultats exploitables. Encore faut-il savoir utiliser le(s) bon(s) modèle(s) pour produire de bons résultats. Bien sûr, il existe une pléthore d’outils plus ou moins bien faits censés vous faciliter la vie (Tensorflow, PyTorch, et tant d’autres…) et à voir les nombreux tutos YouTube, les utiliser semble être à la portée du premier bidouilleur venu. Mais c’est souvent là que ça commence à coincer: quand on bidouille.
 
L’adage dit que le mieux est très souvent l’ennemi du bien. C’est très vrai avec les IA. Prenez par exemple le nombre de variables à prendre en considération pour construire le modèle d’une IA. C’est un art délicat : trop de variables ou pas assez, et ça ne fonctionne pas exactement comme on l’espère.
 
Ainsi quand on prend trop de variables, on risque le « surapprentissage » ou « overfitting » en bon français, à savoir produire un modèle (algorithmique) qui correspond trop étroitement ou trop exactement à un ensemble particulier de données et qui contient plus de paramètres que ne peuvent le justifier les données. En langage profane, l’overfitting signifie que votre réseau neuronal fonctionne très bien sur les données d’entraînement, il est incollable et prédit tout correctement. Mais lorsqu’on lui montre de nouvelles données (issues du « terrain »), sa performance se dégrade radicalement et il ne fournit plus aucune prédiction suffisamment correcte pour être exploitable. C’est très souvent le cas quand on utilise du DL, et c’est en général à ce moment que les bidouilleurs commencent à devenir de plus en plus pâles…
 
L’overfitting survient souvent quand des réseaux neuronaux sont entraînés sur des ensembles de données relativement petits. C’est en général à ce moment qu’ils peuvent sur-apprendre avec les données d’entraînement. Cela survient principalement lorsque vous avez une grande variance dans vos données. Quand c’est le cas, cela signifie que votre modèle a essayé de prendre en considération presque tous les points des données d’entraînement, ce qui n’est justement pas ce qu’il convient de faire pour produire de bonnes prédictions.
 
Une des solutions pour se prémunir contre l’overfitting consiste à faire de la régularisation : cela permet d’imposer une contrainte pour pénaliser les modèles trop complexes. Autrement dit, cela permet de réduire la variance et d’améliorer la généralisation de la solution. Il existe de nombreuses formes de régularisation et tout le truc consiste à trouver celle qui correspond le mieux à votre modèle. Parmi elles, nous trouvons les régularisations lasso/ridge (méthode qui rajoute des contraintes pour contenir l’optimisation), le dropout (les poids du réseau de neurones sont remplacés par des zéros de manière aléatoire pendant l‘entrainement) ou l’early stopping (l’apprentissage s’arrête plus tôt quand le modèle rate les données de test), pour ne citer que les principales.
 
Au final, pour éviter que votre modèle fasse de l’overfitting, il faut non seulement disposer d’un volume de données suffisamment grand, il faut que ces données soient vraies et intégrées dans un data set cohérent (avec peu de biais et peu de variance, si possible), il faut choisir le bon nombre de variables, mais il faut encore définir le bon nombre d’itérations pour arriver à effectivement tirer parti des réseaux neuronaux (tels que ceux utilisés dans le DL, le RL ou le DRL). Et même avec tout ça, encore faut-il savoir de quoi il en retourne quand votre modèle sur-apprend. Quand cela survient, si on commence à bidouiller sans comprendre, on peut vite se retrouver avec un grand sentiment de solitude.
 

CALAI et la DATA

CALAI est une IA développée par CALYPS qui change radicalement la planification des activités hospitalières et apporte un niveau de prédiction et de précision jamais vu auparavant. CALAI permet de prédire 7 jours à l’avance le nombre des admissions aux services des Urgences, les hospitalisations qui en découlent, d’en déterminer les besoins en lits et les durées de séjour associées, ce qui permet d’optimiser le planning des équipes, de fluidifier les liaisons avec les services en aval et d’anticiper les besoins en plateaux techniques (médicaments, analyses médicales, etc.).
 
CALAI est une IA qui mixe du ML et DRL en utilisant un grand nombre de variables tirées d’un très grand volume de données. Sa mise au point fut assez délicate car les premiers modèles de CALAI souffraient notamment d’overfitting et la généralisation des prédiction en live s’avérait parfois décevante. Il a fallu souvent remettre le modèle à l’ouvrage en modifiant de façon subtile certains paramètres, dont ceux cités plus hauts. Au final, après de très nombreuses itérations et surtout après avoir été soumise « au feu de la réalité quotidienne », CALAI est devenue fiable, performante et surtout utile. Et tout ça sans bidouille, cela va sans dire.
 
Les résultats produits par CALAI le démontrent quotidiennement : son modèle fonctionne, et même plutôt bien. Et pourtant, même si nous sommes déjà en train de l’améliorer (au prix d’une plus grande complexité cela dit), nous nous rendons compte tous les jours que c’est loin d’être une science facile: la data est un objet complexe à manipuler et qui a vite tendance à vous « exploser » à la figure si vous ne gardez pas la maîtrise (et le contrôle) de votre modèle. Il est crucial de savoir ce qu’il se passe, à toutes les étapes, et de comprendre le pourquoi du comment à tout instant, comme lors de cas de surajustement. Sinon on risque vite de passer de l’apprentissage profond au trouble profond. Et là, ça fait mal !
 
KABE

Vos données ont de la valeur !

La Data Intelligence est destinée aux gestionnaires, décideurs et dirigeants d’entreprise. Il s’agit de la mise en œuvre des moyens, outils et méthodes destinés à fournir l’information utile pour décider et agir en toute connaissance de cause. Mettez-toutes les chances de votre côté en vous appuyant sur des professionnels de la donnée.

Les experts CALYPS sont là pour vous aider