Choix, optimisation et sélection des modèles

Introduction

À présent, nous avons une vision relativement large de l’IA et des étapes à mener depuis la découverte des données, leur nettoyage, leur préparation, la création et l’entraînement des modèles jusqu’à leur persistance avant mise en production. Même si nous sommes conscients de l’éventail des possibles et que nous savons les mettre en œuvre simplement, il nous manque encore un peu d’intuition.

Une fois les données préparées, il est important de créer et d’entraîner plusieurs modèles de types différents en essayant d’optimiser leurs hyperparamètres respectifs pour les mettre en concurrence et nous permettre de faire un choix avisé pour en sélectionner un ou plusieurs pour une exploitation en production.

Ce chapitre nous permettra de mieux choisir les modèles que nous mettrons en concurrence en fonction de plusieurs critères concernant les caractéristiques des données composant nos ensembles d’apprentissage. Leur taille, la nature des éventuelles relations entre caractéristiques et étiquettes, et les ressources disponibles nous guideront dans nos choix. Ensuite, nous verrons quelles méthodes utiliser pour mener une optimisation des hyperparamètres efficace. Enfin, nous verrons les outils PHP à...

Présélection des modèles les plus adaptés

Comme nous l’avons vu dans les chapitres Algorithmes d’apprentissage supervisé et Algorithmes d’apprentissage non supervisé, le premier choix déterminant dans la mise en place d’un modèle est d’identifier le type d’apprentissage auquel nous avons affaire :

  • Si les données à disposition sont étiquetées (nous connaissons le résultat que nous souhaitons obtenir), nous sommes dans le cadre d’un apprentissage supervisé.

  • Sinon, nous sommes dans un apprentissage non supervisé.

En apprentissage supervisé

  • Si la tâche à effectuer est de prévoir une donnée numérique continue, nous avons affaire à un problème de régression. Dans ce cas-là, notre arsenal de modèles est le suivant (en ne considérant que ceux que nous avons parcourus) :

  • régression linéaire Ridge ;

  • arbre de régression ;

  • gradient boosting ;

  • KNN pour la régression ;

  • SVR ;

  • réseaux de neurones.

  • Sinon, s’il s’agit de catégoriser les données, nous sommes dans le cadre d’une classification. Dans ce cas-là, nous avons le choix entre :

  • régression logistique ;

  • arbre de classification ;

  • forêt aléatoire ;

  • AdaBoost ;

  • SVC ;

  • KNN pour la classification ;

  • réseaux de neurones ;

  • Naive Bayes.

En apprentissage non supervisé

  • Si le besoin est de portionner les données pour en extraire une structure, nous sommes dans le cadre d’un problème de clustering. Les algorithmes disponibles sont les suivants :

  • K-Moyennes ;

  • DBSCAN.

  • Si nous recherchons des données aberrantes ou des anomalies, nous sommes dans le cadre d’une tâche de détection d’anomalies. Nous pouvons utiliser :

  • One-class SVM ;

  • forêt d’isolation ;

  • Z-Score robuste.

En réduction de dimensions

Une autre discipline possible est de réduire les dimensions des données pour ne conserver que l’information la plus utile pour des besoins de visualisation ou de simplification. Dans ce cas-là, nous avons à notre disposition :

  • ACP ;

  • T-SNE.

Une approche peu efficace d’un problème d’IA serait...

Sélection des modèles

Imaginons que nous soyons dans le cas où nous avons des modèles candidats performants. Nous pouvons appliquer plusieurs stratégies pour sélectionner le ou les modèles qui seront déployés en production.

1. Choix du modèle le plus performant

Cette stratégie peut s’appliquer dans le cas où nous avons au moins un modèle avec des performances adaptées à notre besoin. Nous choisirons alors le modèle ayant l’indicateur ou la combinaison des indicateurs sur plusieurs métriques les plus favorables.

2. Choix d’une combinaison de modèles

Dans le cas où plusieurs modèles ont des performances intéressantes sur des métriques potentiellement complémentaires, une autre stratégie est de combiner ces modèles en appliquant une moyenne pondérée sur leurs inférences. Par exemple, un modèle ayant de meilleures performances peut avoir un résultat plus valorisé qu’un autre modèle moins performant participant à la décision.

Rubix ML propose un outil intéressant pour effectuer ce type de combinaison, il s’agit de l’objet Rubix\ML\CommitteeMachine. Il s’utilise comme un objet Estimator et son constructeur prend deux arguments :

  • un array PHP contenant la liste des modèles avec hyperparamètres...

En résumé

Dans ce chapitre, nous avons reparcouru les différentes étapes de choix, d’optimisation et de sélection des modèles d’intelligence artificielle adaptés à des besoins spécifiques.

Une approche méthodique est nécessaire pour identifier les modèles les plus pertinents en fonction des caractéristiques des données, qu’il s’agisse de leur taille, de la complexité des relations entre variables ou des ressources disponibles. L’importance de l’optimisation des hyperparamètres a également été soulignée, avec des méthodes pour ajuster les valeurs candidates. Nous avons pu nous appuyer notamment sur les générateurs de valeurs aléatoires pour nous assister dans l’initialisation des valeurs d’hyperparamètres candidates.

Une comparaison des modèles optimisés permet ensuite de sélectionner le plus performant ou bien de combiner plusieurs modèles pour maximiser les résultats. Cela peut être facilité grâce à des techniques comme la CommitteeMachine. En cas de performances insuffisantes, il est parfois préférable de repenser les choix initiaux ou d’améliorer les données disponibles.

Ce processus global guide vers des solutions adaptées et robustes, offrant...