Le processus d’IA

Processus IA

Jason Leung on Unsplash

L’IA est encore considérée comme un domaine relativement nouveau, il n’y a donc vraiment aucun guide ou norme tels que SWEBOK. En fait, les manuels universitaires d’IA/ML ne fournissent pas de description claire et cohérente du processus d’ingénierie logicielle de l’IA. Par conséquent, j’ai pensé qu’il serait utile de donner une description complète du processus d’ingénierie de l’IA ou du processus d’IA, qui est décrit dans la plupart des manuels d’IA/ML [5][6].

85% ou plus des projets d’IA échouent [1][2].

34% des scientifiques et chercheurs admettent avoir eu des pratiques de recherche douteuses [3].

En général, les résultats des articles de journaux actuels sur l’IA (même évalués par des pairs) sont irréproducibles.

Qu’est-ce que l’IA

L’intelligence artificielle (IA) se concentre sur la conception et la mise en œuvre de systèmes intelligents qui perçoivent, agissent et apprennent en réponse à leur environnement.

En IA, un agent est quelque chose qui agit [6]. Tous les programmes informatiques peuvent être considérés comme faisant quelque chose, mais les agents informatiques sont censés accomplir des tâches plus complexes : fonctionner de manière autonome, percevoir leur environnement, persister sur une période prolongée, s’adapter au changement, et créer et poursuivre des objectifs. En fait, un agent rationnel est celui qui agit de manière à atteindre le meilleur résultat ou le meilleur résultat attendu en cas d’incertitude.

En résumé, l’IA se concentre sur l’étude et la construction d’agents qui agissent de manière rationnelle ou qui font ce qu’il faut tel que défini par l’objectif donné à l’agent. En fait, le modèle standard est défini en termes d’agents rationnels [6]. Cependant, ce modèle présente des limites, telles que la question de la rationalité limitée et le problème d’alignement des valeurs, ce qui conduit au concept d’agents bénéfiques de manière prouvée pour les humains. Mais le modèle standard est un bon point de référence pour l’analyse théorique [6].

Figure 1: An agent interacts with its environment through its sensors and actuators. Gungor Basa Technology of Me

Il y a souvent confusion entre les termes intelligence artificielle et apprentissage automatique. Un agent apprend s’il améliore ses performances en se basant sur des expériences précédentes. Lorsque l’agent est un ordinateur, le processus d’apprentissage est appelé apprentissage automatique (ML) [6, p. 651]. Ainsi, l’apprentissage automatique est un sous-domaine de l’IA. Certains systèmes d’IA utilisent des méthodes d’apprentissage automatique, d’autres non [6].

L’ingénierie de l’IA est la discipline qui se concentre sur le développement d’outils, de systèmes et de processus permettant l’application de l’intelligence artificielle dans des contextes réels. Elle combine les principes de l’ingénierie des systèmes, de l’ingénierie logicielle et de l’informatique pour créer des systèmes d’IA.

Centré sur le modèle vs Centré sur les données

Il existe actuellement deux approches en IA/ML (centrée sur le modèle vs centrée sur les données) qui sont mutuellement exclusives. Soit vous laissez l’ensemble de données influencer la sélection du modèle (centré sur les données), soit vous ne le faites pas (centré sur le modèle). Nous pouvons appliquer une approche centrée sur les données en utilisant AutoML ou en codant un test personnalisé pour évaluer de nombreux algorithmes (disons 20-30) sur l’ensemble de données, puis choisir les meilleurs (peut-être les 3 meilleurs) pour une étude plus approfondie, en donnant la préférence aux algorithmes plus simples (rasoir d’Occam).

Ainsi, nous choisirions des algorithmes SOTA plus complexes uniquement si tous les algorithmes plus simples ont échoué misérablement. Dans un projet de recherche, nous utiliserions probablement une approche centrée sur le modèle pour évaluer de nouveaux algorithmes et comparer les résultats aux résultats précédents sur le même ensemble de données fictif, en supposant que des recherches antérieures ont déjà obtenu des lignes de base pour des modèles plus simples. Dans les applications du monde réel, l’accent devrait être mis sur l’approche centrée sur les données.

Le Processus d’IA

Nous pouvons définir un Processus d’Ingénierie de l’IA ou Processus d’IA (AIP) qui peut être utilisé pour résoudre presque n’importe quel problème d’IA [5][6][7][9] :

  1. Définir le problème : Cette étape comprend les tâches suivantes : définir la portée, la définition de la valeur, les délais, la gouvernance et les ressources associées à la livraison.
  2. Sélection de l’ensemble de données : Cette étape peut prendre quelques heures ou quelques mois, selon le projet. Il est crucial d’obtenir l’ensemble de données correct et fiable pour un projet d’IA/ML.
  3. Description des données : Cette étape comprend les tâches suivantes : décrire l’ensemble de données, y compris les caractéristiques d’entrée et les caractéristiques cibles ; inclure des statistiques sommaires des données et des comptes de toutes les caractéristiques discrètes ou catégorielles, y compris la caractéristique cible.
  4. Préparation des données : Cette étape comprend les tâches suivantes : prétraitement des données, nettoyage des données et analyse exploratoire des données (EDA). Pour les données d’image, nous redimensionnerions les images à une dimension inférieure, comme (299 x 299), pour permettre l’apprentissage par mini-lots et aussi pour respecter les limitations de calcul. Pour les données textuelles, nous supprimerions les sauts de ligne et les tabulations ; supprimerions les balises HTML ; supprimerions les liens ; supprimerions les espaces vides, et d’autres étapes possibles répertoriées dans le prétraitement de texte NLP sur mon dépôt GitHub.
  5. Ingénierie des caractéristiques : Cette étape comprend les tâches suivantes : quantification ou regroupement ; transformations mathématiques ; mise à l’échelle et normalisation ; modification et/ou création de nouvelles caractéristiques. Pour les données d’image, nous effectuerions une augmentation d’image, qui est décrite dans l’augmentation d’image sur mon dépôt GitHub. Pour les données textuelles, nous convertirions les caractéristiques des données textuelles en vecteurs et effectuerions une tokenisation, une réduction en racine et une lemmatisation, ainsi que d’autres étapes possibles décrites dans le traitement du langage naturel sur mon dépôt GitHub.
  6. Conception : Cette étape comprend les tâches suivantes : sélection des caractéristiques, décomposition du problème, et construction et évaluation des modèles. Nous pouvons utiliser AutoML ou créer un test personnalisé pour construire et évaluer de nombreux modèles afin de déterminer quels algorithmes et quelles vues des données devraient être choisis pour une étude plus approfondie.
  7. Entraînement : Cette étape comprend la construction du modèle, qui peut inclure une validation croisée.
  8. Évaluation : Cette étape comprend l’évaluation des modèles performants sur un ensemble de données de test et la sélection du modèle.
  9. Ajustement : Cette étape consiste à ajuster les algorithmes des quelques modèles bien performants sélectionnés, ce qui peut inclure l’évaluation d’ensembles de modèles pour obtenir une amélioration supplémentaire de la précision.
  10. Finalisation : Cette étape consiste à finaliser le modèle choisi en l’entraînant à l’aide de l’ensemble de données complet et en vérifiant que la solution finale répond aux exigences initiales de l’entreprise en termes de précision du modèle et d’autres mesures de performance.
  11. Déploiement : Le modèle est maintenant prêt pour le déploiement. Il existe deux approches courantes pour le déploiement de modèles d’apprentissage automatique en production : intégrer les modèles dans un serveur Web ou externaliser le modèle vers un service externe. Les deux approches de serveur de modèles ont des avantages et des inconvénients.
  12. Surveillance :

    Plus de détails sur chaque étape sont donnés ci-dessous ; vous pouvez également vous référer à la liste de contrôle de l’IA, à la liste de contrôle de l’apprentissage automatique appliqué, à la préparation des données et à l’ingénierie des caractéristiques sur mon référentiel LearnAI GitHub.

    Définir le problème

    La première étape d’un projet d’IA consiste à définir le problème [6]. En quelques phrases, décrivez ce qui suit :

    1. Décrivez le problème à résoudre.
    2. Décrivez la ou les parties du problème qui peuvent être résolues par l’apprentissage automatique.
    3. Décrivez l’objectif du projet.
    4. Décrivez l’objectif du modèle : classer, prédire, détecter, traduire, etc.
    5. Définissez la fonction de perte et/ou les mesures de performance et d’erreur pour le projet.

    Cette étape devrait inclure une revue approfondie de la littérature sur les problèmes d’IA similaires ou très similaires. Si vous ne trouvez aucune étude de recherche scientifique sur le problème, alors vous avez vraiment un projet de recherche plutôt qu’un projet d’IA. Gardez à l’esprit que l’IA n’est pas un bon domaine pour l’approche Star Trek.

    Description PEAS

    Lors de la conception d’un agent, l’une des premières étapes consiste à spécifier l’environnement de la tâche, appelé la description PEAS (Performance, Environment, Actuators, Sensors) [6]. En résumé, l’environnement de la tâche est le “problème” et le ou les agents rationnels sont la “solution”.

    Description PEAS pour l’aspirateur robot

    Considérez l’exemple classique du jouet d’un aspirateur robot simple.

    • Quelle est la mesure de performance ? propreté, efficacité : distance parcourue pour nettoyer, autonomie de la batterie, sécurité
    • Que sait-on sur l’environnement ? pièce, table, sol en bois, moquette, différents obstacles
    • Quels actionneurs l’agent possède-t-il ? roues, différentes brosses, extracteur d’aspirateur
    • Quels capteurs l’agent possède-t-il ? caméra, capteur de détection de saleté, capteur de précipice, capteur de collision, capteurs infrarouges de mur

    De plus, nous pouvons définir sept dimensions le long desquelles les environnements de tâches peuvent être catégorisés [6][18] :

    • Entièrement observable vs partiellement observable
    • Monagent vs multiagent
    • Déterministe vs non déterministe
    • Épisodique vs séquentiel
    • Statique vs dynamique
    • Discret vs continu
    • Connus vs inconnus

    Après avoir décomposé le problème en parties (sous-problèmes), il peut y avoir plusieurs composants qui peuvent être traités en utilisant l’ingénierie logicielle traditionnelle plutôt que l’apprentissage automatique. Nous pourrions développer le système global, puis revenir plus tard et l’optimiser, en remplaçant certains composants par des modèles d’apprentissage automatique plus sophistiqués.

    Une partie de la formulation du problème consiste à décider si nous traitons de l’apprentissage supervisé, non supervisé ou par renforcement. Cependant, les distinctions ne sont pas toujours aussi nettes.

    Préparation des données

    La phase de préparation des données implique en réalité trois étapes qui peuvent se chevaucher.

    1. Prétraitement des données : ajustements de format, correction des incohérences, gestion des erreurs dans les variables.
    2. Analyse exploratoire des données et visualisation : vérifier si les données sont normalement distribuées ou à queue lourde ; vérifier les valeurs aberrantes ; vérifier si le regroupement des données peut aider ; vérifier les données déséquilibrées.
    3. Nettoyage des données : vérifier les types de données ; gérer les valeurs manquantes ou non valides ; gérer les valeurs aberrantes ; gérer les valeurs catégorielles ; encoder les étiquettes de classe ; analyser les dates ; encodage de caractères ; gérer les données déséquilibrées.

    Prétraitement des données

    Divisez d’abord et normalisez ensuite, ce qui signifie que nous devrions effectuer d’abord la division train-test, puis normaliser les ensembles de données.

    Ajustements de format

    • Supprimer les espaces de début et de fin
    • Normaliser les types (séparateurs décimaux, formats de date ou unités de mesure)
    • Remplacer les caractères non reconnaissables ou corrompus
    • Vérifier les entrées tronquées (entrées de données coupées à une certaine position)

    Corriger les incohérences Gérer les erreurs dans les variables

    • Vérifier les valeurs non valides (âge de 200 ans ou négatif)
    • Vérifier les catégories incorrectes dans les données catégorielles (des produits similaires ne doivent pas être mis dans différentes catégories)

    Gérer les erreurs dans les variables.

    • Cardinalité élevée : le nombre d’étiquettes différentes dans les données catégorielles est très élevé, ce qui pose des problèmes d’apprentissage au modèle.
    • Outliers : les cas extrêmes qui peuvent être dus à une erreur mais pas dans tous les cas.

    Comment choisir un modèle d’IA

    Chaque nouvel ingénieur en IA constate qu’il doit décider quel modèle utiliser pour un problème donné. Il existe de nombreux modèles parmi lesquels choisir, mais il faut généralement apporter de légères modifications pour transformer un modèle de régression en un modèle de classification et vice versa.

    Tout d’abord, rappelez-vous d’adopter une approche centrée sur les données, évitez donc de vous demander “quel modèle dois-je utiliser”. Ainsi, la première étape du processus d’IA/ML consiste à effectuer une EDA pour comprendre les propriétés de votre modèle, telles que l’équilibre (classification) ou la distribution gaussienne (régression).

    Il existe deux approches pour la sélection de modèles : centrée sur les données et centrée sur le modèle. Soit vous laissez les données orienter la sélection du modèle (centrée sur les données), soit vous ne le faites pas (centrée sur le modèle).

    Dans une approche centrée sur le modèle, vous lancez essentiellement des modèles sur l’ensemble de données en espérant que quelque chose fonctionnera. Similaire à jeter du bologne sur le mur en espérant qu’il collera, une approche centrée sur le modèle est une approche non scientifique avec une faible probabilité de réussite.

    La deuxième étape pour résoudre un problème d’IA consiste à essayer des algorithmes simples (comme la régression linéaire ou logistique) en tant que modèles de référence, qui sont utilisés ultérieurement pour évaluer vos choix de modèle(s), qui devraient être meilleurs que tous les modèles de référence.

    Il existe de nombreux modèles parmi lesquels choisir, donc envisagez de commencer par des modèles de classification/régression, ce qui peut être fait facilement avec scikit-learn.

    10 choses simples à essayer avant les réseaux neuronaux

    Ensuite, la meilleure pratique consiste à évaluer de nombreux algorithmes (disons 10 à 20) à l’aide d’un outil AutoML tel que Orange, PyCaret ou AutoGluon, et à réduire les choix à quelques modèles en fonction de la précision et des métriques d’erreur. Ensuite, créez un harnais de test [10] pour explorer pleinement les candidats.

    En général, vous devriez avoir évalué de nombreux modèles avant d’essayer d’évaluer des modèles plus complexes, tels que les réseaux neuronaux. Une approche similaire est utilisée pour évaluer et comparer des algorithmes en mathématiques, en ingénierie et dans d’autres domaines.

    La règle empirique est qu’un modèle d’apprentissage profond devrait être votre dernier choix (rasoir d’Occam).

    Gardez à l’esprit qu’une précision de 50 % équivaut à un tirage au sort aléatoire (pile ou face). Ainsi, vos modèles devraient avoir une précision d’au moins 80 à 90 % ou mieux avant l’hyper réglage. Sinon, vous devez choisir un modèle différent et/ou passer plus de temps à la préparation des données et à l’ingénierie des fonctionnalités.

    Une discussion plus détaillée sur le processus d’ingénierie de l’IA peut être trouvée dans [5][6].

    Conception expérimentale

    L’objectif de l’apprentissage automatique est de mener des expériences et d’analyser les résultats afin d’éliminer l’effet du hasard et d’obtenir des conclusions que nous pouvons considérer comme statistiquement significatives [5].

    Ainsi, nous voulons trouver un apprentissage avec la plus grande précision de généralisation et une complexité minimale (la mise en œuvre est peu coûteuse en termes de temps et d’espace) et qui est robuste (non affectée par des sources externes de variabilité) [5].

    Il existe trois principes de base de la conception expérimentale [5]:

    1. Randomisation exige que l’ordre dans lequel les exécutions sont effectuées soit déterminé de manière aléatoire afin que les résultats soient indépendants. Cependant, l’ordre n’est généralement pas un problème dans les expériences logicielles.
    2. Replication implique que pour la même configuration de facteurs (contrôlables), l’expérience doit être exécutée plusieurs fois pour faire la moyenne des effets des facteurs non contrôlables.

    En apprentissage automatique, la réplication est généralement effectuée en exécutant le même algorithme sur plusieurs versions échantillonnées du même ensemble de données, ce qui s’appelle la validation croisée.

    3. Blocage est utilisé pour réduire ou éliminer la variabilité due à des facteurs indésirables qui influencent la réponse mais qui ne nous intéressent pas.

    Lorsque nous comparons des algorithmes d’apprentissage, nous devons nous assurer que les algorithmes utilisent tous les mêmes sous-ensembles échantillonnés de données. Par conséquent, les différents ensembles d’entraînement dans les exécutions répliquées doivent être identiques, ce que nous entendons par blocage [7]. En statistiques, s’il y a deux populations, cette approche est appelée appariement, qui est utilisé dans les tests appariés.

    Processus de sélection de modèles

    Dans la sélection de modèles, nous nous préoccupons de deux questions concernant les algorithmes d’apprentissage [5]:

    1. Comment peut-on évaluer l’erreur attendue d’un algorithme d’apprentissage sur un problème?
    2. Comment peut-on dire qu’un modèle a moins d’erreur que l’autre pour une application donnée?

    Le taux d’erreur sur l’ensemble d’entraînement est toujours inférieur (par définition) au taux d’erreur sur un ensemble de test contenant des instances non vues lors de l’entraînement. Ainsi, nous ne pouvons pas choisir entre les algorithmes basés sur les erreurs de l’ensemble d’entraînement. Par conséquent, nous avons besoin d’un ensemble de validation distinct de l’ensemble d’entraînement.

    Nous avons également besoin de plusieurs exécutions sur l’ensemble de validation pour calculer les taux d’erreurs moyens, car le bruit, les valeurs aberrantes et d’autres facteurs aléatoires affecteront la généralisation. Ensuite, nous baserons notre évaluation de l’algorithme d’apprentissage sur la distribution de ces erreurs de validation pour évaluer l’erreur attendue de l’algorithme d’apprentissage pour le problème donné ou la comparer à la distribution des taux d’erreur d’un autre algorithme d’apprentissage.

    Pendant la sélection du modèle, il est important de garder à l’esprit plusieurs points importants [5]:

    1. Quelle que soit la conclusion que nous tirons de notre analyse, elle est conditionnée par l’ensemble de données qui nous est donné.

    Comme le stipule le Théorème du Déjeuner Gratuit, il n’existe pas de meilleur algorithme d’apprentissage. Pour n’importe quel algorithme d’apprentissage, il existe un ensemble de données où il est très précis et un autre ensemble de données où il est très mauvais.

    2. La division d’un ensemble de données donné en plusieurs paires d’ensembles d’entraînement et de validation n’est destinée qu’à des fins de test.

    Une fois que tous les tests sont terminés et que nous avons pris notre décision quant à la méthode finale ou aux hyperparamètres, nous pouvons utiliser toutes les données étiquetées que nous avons précédemment utilisées pour l’entraînement ou la validation pour entraîner le modèle final, ce qu’on appelle finaliser le modèle.

    3. Comme nous utilisons également l’ensemble de validation(s) à des fins de test (telles que choisir le meilleur des deux algorithmes d’apprentissage ou décider où arrêter l’apprentissage), il fait partie des données que nous utilisons.

    Par conséquent, étant donné un ensemble de données, nous devons d’abord en laisser une partie de côté en tant qu’ensemble de test puis utiliser le reste pour l’entraînement et la validation.

    4. En général, nous comparons les algorithmes d’apprentissage par leurs taux d’erreur, mais il faut garder à l’esprit que dans la vraie vie, l’erreur n’est qu’un des critères qui influenceront notre décision.

    D’autres critères pour comparer les algorithmes d’apprentissage [5]:

    • les risques lorsque les erreurs sont généralisées à l’aide de fonctions de perte, plutôt que d’une perte de 0/1
    • le temps et la complexité de l’espace d’entraînement
    • le temps et la complexité de l’espace de test
    • l’interprétabilité, c’est-à-dire si la méthode permet l’extraction de connaissances qui peuvent être vérifiées et validées par des experts
    • la facilité de programmation

    Cependant, l’importance relative de ces facteurs varie en fonction de l’application.

    Lorsque nous entraînons un modèle sur un ensemble de données en utilisant un ensemble d’entraînement et testons sa précision sur un ensemble de validation et essayons de tirer des conclusions, ce que nous faisons est de l’expérimentation. La statistique définit une méthodologie pour concevoir correctement des expériences et analyser les données collectées de manière à pouvoir en extraire des conclusions significatives [5].

    Critères de Sélection du Modèle

    Les sept critères suivants peuvent aider à sélectionner un modèle [11]:

    1. Explicabilité

    Il y a un compromis entre l’explicabilité et la performance du modèle.

    L’utilisation d’un modèle plus complexe augmentera souvent la performance, mais il sera plus difficile à interpréter.

    Si aucun besoin d’expliquer le modèle et sa sortie à un public non technique, des modèles plus complexes pourraient être utilisés, tels que les modèles ensemblistes et les réseaux neuronaux profonds.

    2. En mémoire vs hors mémoire

    Il est important de prendre en compte la taille de vos données et la quantité de RAM disponible sur l’ordinateur où l’entraînement aura lieu.

    Si la RAM peut gérer toutes les données d’entraînement, vous pouvez choisir parmi une grande variété d’algorithmes d’apprentissage.

    Si la RAM ne peut pas gérer les données d’entraînement, vous pouvez explorer des algorithmes d’apprentissage incrémental qui peuvent améliorer le modèle en ajoutant progressivement plus de données d’entraînement.

    3. Nombre de caractéristiques et d’exemples

    Le nombre d’échantillons d’entraînement et le nombre de caractéristiques par échantillon sont également importants dans la sélection du modèle.

    Si vous avez un petit nombre d’exemples et de caractéristiques, un modèle simple serait un excellent choix, tel qu’un arbre de décision ou les k-plus proches voisins.

    Si vous avez un petit nombre d’exemples et un grand nombre de caractéristiques, les SVM et les processus gaussiens seraient un bon choix car ils peuvent gérer un grand nombre de caractéristiques tout en nécessitant moins de ressources.

    Si vous avez un grand nombre d’exemples, alors les réseaux neuronaux profonds et les algorithmes de renforcement seraient un bon choix car ils peuvent gérer des millions d’échantillons et de caractéristiques.

    4. Caractéristiques catégorielles vs. numériques

    Le type de caractéristiques est important lors du choix d’un modèle.

    Certains algorithmes d’apprentissage automatique ne peuvent pas gérer les caractéristiques catégorielles telles que la régression linéaire, vous devez donc les convertir en caractéristiques numériques, tandis que d’autres algorithmes peuvent gérer les caractéristiques catégorielles telles que les arbres de décision et les forêts aléatoires.

    5. Normalité des données

    Si vos données suivent une distribution normale, vous pouvez utiliser les SVM avec noyau linéaire, la régression logistique ou la régression linéaire.

    Si vos données ne suivent pas une distribution normale, les réseaux neuronaux profonds ou les algorithmes d’ensemble seraient un bon choix.

    6. Vitesse d’entraînement

    Le temps disponible pour l’entraînement est important lors du choix d’un modèle.

    Les algorithmes simples tels que la régression logistique/linéaire ou les arbres de décision peuvent être entraînés rapidement.

    Les algorithmes complexes tels que les réseaux neuronaux et les algorithmes d’ensemble sont lents à entraîner.

    Si vous avez accès à une machine multi-cœur, cela pourrait réduire considérablement le temps d’entraînement des algorithmes plus complexes.

    7. Vitesse de prédiction

    La vitesse de génération des résultats est un autre critère important pour le choix d’un modèle.

    Si votre modèle sera utilisé en temps réel ou dans un environnement de production, il doit pouvoir générer les résultats avec une latence très faible.

    Des algorithmes tels que les SVM, la régression linéaire/logistique et certains types de réseaux neuronaux sont extrêmement rapides lors de la prédiction.

    Vous devez également tenir compte de l’endroit où vous déploierez votre modèle. Si vous utilisez les modèles à des fins d’analyse ou théoriques, le temps de prédiction peut être plus long, ce qui signifie que vous pourriez utiliser des algorithmes d’ensemble et des réseaux neuronaux très profonds.

    Pourquoi des modèles simples

    Les deux algorithmes de régression les plus courants sont :

    Vous devriez commencer par ces modèles simples car [12] :

    • Il est probable que votre problème n’ait pas besoin d’un algorithme complexe
    • Ces deux modèles ont été étudiés en profondeur et sont parmi les modèles les plus bien compris en ML.
    • Ils sont faciles à mettre en œuvre et à tester.
    • Ils sont facilement interprétables car ce sont des modèles linéaires.

    Pour convertir un problème de régression en un problème de classification, il existe deux solutions courantes :

    En fait, j’ai récemment travaillé sur de nombreux projets où les développeurs ont passé des semaines ou des mois à essayer de mettre en œuvre des algorithmes DL de pointe à partir d’articles de recherche, pour que je leur montre comment la régression linéaire et/ou XGBoost surpassent tous leurs modèles complexes (dans de nombreux cas, atteignant une précision de 95 à 98% sur l’ensemble de données de test). Vous devez évaluer de nombreux algorithmes pour obtenir des références de comparaison justifiant votre choix final de modèle, vous devez donc toujours savoir comment les modèles plus simples se comportent sur votre ensemble de données.

    Si vous menez des recherches, une approche axée sur le modèle est acceptable, à condition que quelqu’un ait effectué une évaluation approfondie de différents modèles (y compris des modèles plus simples) sur le même ensemble de données fictif. Lorsque vous utilisez un ensemble de données personnalisé et/ou résolvez des problèmes du monde réel, vous effectuez de l’ingénierie en IA (pas de la recherche), donc la règle de base est le rasoir d’Occam (“plus simple est mieux” ou “il n’y a pas de meilleure solution, juste assez bonne”).

    Régression logistique multinomiale

    La régression logistique multinomiale (RLM) est un algorithme de classification utilisé pour effectuer une classification multiclasse, qui est une extension de la régression logistique qui prend en charge les problèmes de classification multiclasse.

    Les principales hypothèses de la régression linéaire (multiple et singulière) sont [13] :

    1. Linéarité : Il existe une relation linéaire entre le résultat et la variable(s) prédictrice(s).
    2. Normalité : Les résidus (erreur calculée en soustrayant la valeur prédite de la valeur réelle) suivent une distribution normale.
    3. Homoscédasticité : La variabilité de la variable dépendante est égale pour toutes les valeurs de la ou des variable(s) indépendante(s).

    Avec de nombreuses variables indépendantes, nous rencontrons souvent d’autres problèmes tels que la multicolinéarité, où des variables qui sont censées être indépendantes varient les unes par rapport aux autres, et la présence de variables catégorielles telles qu’une température océanique classée comme froide, chaude ou très chaude au lieu d’être quantifiée en degrés.

    Voici quelques conseils pour travailler avec MLR [13]:

    • Lorsque vos modèles MLR deviennent complexes, évitez d’essayer d’utiliser les coefficients pour interpréter les changements dans le résultat par rapport aux changements dans les prédicteurs individuels.
    • Créez des prédictions en faisant varier un seul prédicteur et observez comment la prédiction change, et utilisez ces changements pour tirer vos conclusions.

    De bons tutoriels sur MLR sont donnés dans [12] et [13].

    Comprendre les algorithmes d’IA

    Vous devez savoir quels algorithmes sont disponibles pour un problème donné, comment ils fonctionnent et comment en tirer le meilleur parti. Cependant, cela ne signifie pas que vous devez coder manuellement les algorithmes à partir de zéro.

    Même si vous êtes un ingénieur en IA/ML expérimenté, vous devez connaître les performances des modèles plus simples sur votre ensemble de données/problème.

    Voici quelques autres sujets à prendre en compte pour la sélection du modèle:

    • Algorithmes paramétriques vs non paramétriques
    • Algorithmes supervisés vs non supervisés
    • Le compromis biais-variance
    • Comment diagnostiquer/résoudre le surapprentissage et le sous-apprentissage?
    • Comment créer un pipeline de données?
    • Comment traiter de petits ensembles de données?
    • Comment traiter des ensembles de données déséquilibrés?
    • Détection d’anomalies

    Outils d’ingénierie des fonctionnalités

    Les techniques d’ingénierie des fonctionnalités (FE) pour l’apprentissage automatique sont un sujet fondamental mais souvent négligé ou trompeusement simple.

    Il existe de nombreux outils qui vous aideront à automatiser l’ensemble du processus de FE et à produire une grande quantité de fonctionnalités en peu de temps pour des tâches de classification et de régression.

    Outils AutoML

    L’apprentissage automatique automatisé (AutoML) est un domaine émergent dans lequel le processus de construction de modèles d’apprentissage automatique pour modéliser les données est automatisé.

    Un bon exemple complet utilisant PyCaret est donné dans “A Beginner’s Guide to End to End Machine Learning”.

    Il existe une pléthore d’outils AutoML et d’outils ML, tels que Orange, AutoGluon et PyCaret, qui peuvent être utilisés pour évaluer facilement et rapidement de nombreux modèles sur un ensemble de données.

    Conclusion

    Le processus d’IA discuté ici peut être utilisé pour résoudre presque n’importe quel problème d’IA avec quelques modifications, bien sûr. Il ne semble pas y avoir actuellement une approche clairement définie pour résoudre les problèmes d’IA, donc cet article tente de présenter une approche consolidée à partir de plusieurs manuels et articles, ainsi que de discuter de certains des problèmes impliqués, tels que les critères de sélection du modèle et les modèles plus simples, ainsi que de fournir des conseils pour comprendre les algorithmes d’IA. J’ai l’intention d’écrire quelques articles de suivi avec des exemples de bout en bout utilisant le processus d’IA. J’ai également un dépôt GitHub appelé LearnAI qui pourrait être utile à certains étudiants et praticiens de l’IA.

    Références

    [1] Nedgu BM, “Why 85% of AI projects fail,” Towards Data Science Nov. 11, 2020.

    [2] S. Reisner, “Why most AI implementations fail and what enterprises can do to beat the odds,” Venture Beat, June 28, 2021.

    [3] J. F. DeFranco and J. Voas, “Reproducibility, Fabrication, and Falsification,” IEEE Computer, vol. 54 no. 12, 2021.

    [4] T. Shin, “4 Reasons Why You Shouldn’t Use Machine Learning,” Towards Data Science, Oct. 5, 2021.

    [5] E. Alpaydin, “Design and Analysis of Machine Learning Experiments”, in Introduction to Machine Learning, 3rd ed., MIT Press, ISBN: 978–0262028189, 2014.

    [6] S. Russell and P. Norvig, “Developing Machine Learning Systems,” in Artificial Intelligence: A Modern Approach, 4th ed. Upper Saddle River, NJ: Prentice Hall, ISBN: 978–0–13–604259–4, 2021.

    [7] S. Raschka. and V. Mirjalili, Python Machine Learning, 2nd ed. Packt, ISBN: 978–1787125933, 2017.

    [8] W. McKinney, Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, 2nd ed., O’Reilly Media, ISBN: 978–1491957660, 2017.

    [9] J. Brownlee, “Processus d’apprentissage automatique appliqué,” Machine Learning Mastery, 12 février 2014.

    [10] J. Brownlee, “Comment évaluer les algorithmes d’apprentissage automatique,” Machine Learning Mastery, 16 août 2020.

    [11] Y. Hosni, “Guide succinct pour la sélection de modèles d’apprentissage automatique,” MLearning.ai, 4 décembre 2021.

    [12] Z. Warnes “Comment sélectionner un modèle d’apprentissage automatique,” KD Nuggets, août 2021.

    [13] M. LeGro, “Interprétation des résultats de régression linéaire multiple confus,” Towards Data Science, 12 septembre 2021.

    [14] J. Brownlee, “Régression logistique multinomiale avec Python,” Machine Learning Mastery, 1er janvier 2021.

    [15] W. Xie, “Régression logistique multinomiale en un clin d’œil,” Data Science Student Society @ UC San Diego, 8 décembre 2020.

    [16] P. Bourque et R. E. Fairley, Guide du corps de connaissances en génie logiciel, v. 3, IEEE, 2014.

    [17] J. S. Damji et M. Galarnyk, “Considérations pour le déploiement de modèles d’apprentissage automatique en production,” Towards Data Science, 19 novembre 2021.

    [18] J. Rodriguez, “7 dimensions pour évaluer un environnement d’IA,” Towards AI, 17 mai 2022.

    IEEE Dataport

    We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

    Share:

    Was this article helpful?

    93 out of 132 found this helpful

Discover more

Recherche en IA

Des chercheurs de Princeton présentent MeZO un optimiseur du zéroème ordre efficace en mémoire qui peut affiner les modèles de langage larges (LLM)

Les modèles de langage volumineux (LLMs) avancent rapidement avec le grand succès de l’Intelligence Artificiell...

AI

Alibaba AI Research propose Composer un modèle de diffusion contrôlable de grande ampleur (5 milliards de paramètres) entraîné sur des milliards de paires (texte, image).

Aujourd’hui, les modèles d’images génératives basés sur du texte sont capables de créer une large gamme d...

AI

Les auteurs s'unissent contre les entreprises d'IA cherchent respect et rémunération pour leur travail protégé par le droit d'auteur

Des auteurs éminents, dont des géants de la littérature tels que Margaret Atwood, Viet Thanh Nguyen et Philip Pullman...

AI

Cet article sur l'IA dévoile les secrets de l'optimisation des grands modèles de langage équilibrer les récompenses et prévenir la sur-optimisation.

Une équipe de chercheurs de l’UC Berkeley, de l’UCL, du CMU et de Google Deepmind relève le défi d’...

AI

Exploiter les modèles génératifs pour améliorer l'apprentissage semi-supervisé

Introduction Dans le monde dynamique de l’apprentissage automatique, un défi constant est d’exploiter ple...

AI

Adoption par les entreprises de l'IA générative

Bonjour, je m'appelle Michael et je suis plongé dans l'adoption de l'IA en entreprise depuis 2018, lorsque nous avons...