Intelligence Artificielle vs Programmation Algorithmique Classique

Vers l'Intelligence Artificielle à partir de la Programmation Algorithmique Classique

Anthony Quattrone, PhD 30 avril 2022

Les progrès de l'intelligence artificielle ont permis de résoudre efficacement des problèmes informatiques complexes qui étaient auparavant difficiles, insolubles ou fortement combinatoires. Ces problèmes incluent la reconnaissance faciale, la détection d'objets, la planification d'itinéraires et les systèmes de recommandation en ligne hautement personnalisés.

Le défi pour les organisations avançant vers l'avenir est pour les décideurs stratégiques de choisir entre les approches classiques traditionnelles et les approches d'intelligence artificielle pour résoudre des problèmes informatiques complexes. Chaque méthode présente des défis uniques pour fournir un système robuste dans les dimensions de la précision, du coût, de la difficulté de mise en œuvre et de la maintenabilité.

L'approche de programmation algorithmique classique pour résoudre des problèmes

Le paradigme de programmation classique implique la résolution de problèmes via des algorithmes prescriptifs et l'utilisation d'une séquence bien définie d'instructions. Les entrées sont définies et contraintes, développant des algorithmes pour traiter les entrées via des paradigmes de programmation définis (Procédural, Orienté Objet, Fonctionnel et Logique) pour produire des sorties.

Découvrir des algorithmes pour résoudre des problèmes temporellement et spatialement efficaces est notoirement difficile. Dans la théorie de la complexité computationnelle, les problèmes sont soit P (Polynomial), NP (Non-deterministic Polynomial), NP-Complete ou NP-Hard. Les problèmes polynomiaux peuvent être résolus et vérifiés rapidement, tandis que les problèmes non polynomiaux ne le peuvent pas. Les problèmes NP sont difficiles à résoudre par des approches algorithmiques classiques.

Un exemple de problème P consiste à trouver le chemin le plus court entre deux points, tandis qu'un exemple de problème NP est le problème du voyageur de commerce où, étant donné une série de lieux, quel est le chemin optimal pour visiter tous les sites en parcourant la distance la plus courte possible. Il se trouve que bon nombre des problèmes qui doivent actuellement être résolus de manière computationnelle entrent dans la catégorie NP. Dans la plupart des cas, à des fins pratiques, une solution approximative est souvent suffisante. Dans la vie quotidienne, les humains trouvent toujours des solutions approximatives, c'est-à-dire la navigation.

Il existe des défis de mise en œuvre pour résoudre des problèmes selon un paradigme algorithmique classique de manière efficace. La complexité algorithmique est une branche de l'informatique qui traite de l'efficacité avec laquelle les algorithmes s'exécutent dans les domaines temporel (complexité temporelle) et spatial (complexité spatiale).

Bien qu'il existe de nombreuses façons différentes d'implémenter des algorithmes, une manière évidente mais potentiellement inefficace d'implémenter un algorithme est souvent appelée algorithme « naïf ». La plupart des algorithmes efficaces ne sont pas faciles à découvrir, et les informaticiens travaillent depuis de nombreuses années pour trouver les meilleurs algorithmes permettant de résoudre des classes de problèmes. Les algorithmes des systèmes de production sont implémentés de manière temporellement et spatialement efficace. Les plus grandes entreprises de logiciels garantissent les normes algorithmiques les plus élevées grâce à la programmation en binôme, similaire à l'évaluation par les pairs. Il faut de nombreuses années de formation et un haut degré de compétence pour implémenter des algorithmes efficacement.

Dans un sens pratique, bien que les techniques de programmation aient évolué et que les langages de programmation (c'est-à-dire C, C++, Java, JavaScript, PHP, Python) aient varié en popularité, les fondamentaux sont restés les mêmes depuis que les Bell Labs, dans les années 1970, ont écrit les premiers modules C. Il existe des moyens pratiques de faire fonctionner en production des problèmes théoriquement complexes, comme l'utilisation de systèmes distribués. Les approches avancées entraînent des coûts plus élevés et dépassent les capacités de toutes les organisations, à l'exception des plus progressistes sur le plan technologique.

Étant donné la complexité des approches de programmation algorithmique classiques, les organisations ont depuis longtemps trouvé difficile de constituer des équipes efficaces pour produire de tels systèmes en interne. De plus, beaucoup ont également eu du mal à trouver des prestataires externes pour résoudre des défis de niche qui sont théoriquement possibles à mettre en œuvre. La conception d'un algorithme spécifique devient nettement plus complexe à mesure que la complexité du problème augmente. C'est particulièrement vrai pour les problèmes multivariés. Il est préférable d'utiliser des approches algorithmiques classiques pour les situations où un algorithme peut résoudre rapidement un problème et fonctionne pour la plupart des cas.

L'approche AI pour résoudre des problèmes

Le paradigme de l'intelligence artificielle a tenté de résoudre les problèmes de manière générique en fournissant des entrées et des sorties souhaitées à un système et en laissant le système apprendre à résoudre les problèmes. Les approches AI actuelles s'exécutent sur des ordinateurs classiques via des techniques de programmation classiques. Les méthodes AI les plus passionnantes sont les réseaux de neurones et l'apprentissage par renforcement.

Les réseaux de neurones artificiels exploitent la compréhension humaine de la manière dont l'esprit humain apprend et généralise les problèmes. L'apprentissage par renforcement utilise des agents en leur fournissant un état cible et une série de scénarios. L'algorithme d'apprentissage conserve les résultats préférables et abandonne les résultats défavorables sur plusieurs itérations. L'apprentissage par renforcement est analogue au conditionnement opérant. L'agent apprend comment atteindre l'objectif au fil de nombreuses itérations d'entraînement.

Une exigence pour l'entraînement de solutions d'intelligence artificielle est soit un vaste ensemble de données bien défini, généralement compilé à l'aide d'une combinaison de divers entrepôts de données ou de crowdsourcing, soit un système peut apprendre à atteindre un état cible en exécutant une série d'itérations. Un exemple de cela est un système jouant contre lui-même, comme aux Échecs ou au Go, pour mieux apprendre à développer des stratégies afin d'améliorer les résultats. Les réseaux artificiels et l'apprentissage par renforcement sont tous deux exécutés sur des scénarios pour lesquels ils ne sont pas entraînés et évalués de manière similaire à d'autres approches d'apprentissage automatique. Ces approches se généralisent bien et fournissent des solutions efficaces pour une classe de problèmes donnée. Les solutions basées sur l'intelligence artificielle conviennent aux problèmes qui ne peuvent pas être facilement définis à l'aide d'une séquence d'instructions ; elles nécessitent plutôt plus d'« intuition » et de jugements de valeur.

En règle générale, les systèmes d'intelligence artificielle sont entraînés à l'aide de jeux de données et ensuite évalués sur un ensemble d'évaluation. Plus les données d'entraînement de haute qualité introduites dans un système AI sont nombreuses, plus la probabilité que le système atteigne un niveau de performance élevé est grande. L'avantage des approches AI réside dans leur capacité à continuer de s'améliorer au fil du temps à mesure que le système apprend davantage. Ainsi, des problèmes complexes peuvent être généralisés et résolus par des systèmes informatiques. Cela inclut des problèmes traditionnellement résolus par l'intervention humaine, bien que l'IA étroite puisse être considérée comme un complément à l'intervention humaine existante afin d'assurer de meilleurs résultats.

L'intelligence artificielle et l'apprentissage automatique ont longtemps été considérés avec prudence par les organisations en raison de l'absence de traçabilité et de déterminabilité de la façon dont ces systèmes répondront aux cas d'utilisation. Ainsi, l'IA peut agir dans des circonstances rares et répondre de manière imprévisible quand on s'y attend le moins. C'est pourquoi il est important d'avoir des cas d'utilisation clairement définis pour le moment où l'IA doit être utilisée, quels niveaux d'erreur sont acceptés et comment les résultats produits par les systèmes d'IA seront examinés par des pairs grâce à une intervention humaine pour garantir l'exactitude.

Dans l'ensemble, nous prédisons que la précision améliorée que les systèmes AI apporteront, couplée aux gains d'efficacité obtenus en augmentant l'apport humain, constituera un incitatif financier trop important pour que de nombreuses organisations puissent l'ignorer dans les années à venir ; les systèmes AI deviendront omniprésents.

Quand choisir l'Intelligence Artificielle et quand sélectionner l'approche de programmation algorithmique classique pour résoudre des problèmes

Bien qu'il n'y ait pas de règles strictes et rapides sur le moment d'utiliser l'une ou l'autre approche, en règle générale, les problèmes nécessitant des solutions approximatives et impliquant une planification à long terme orientée vers des objectifs, la reconnaissance de modèles complexes et le traitement d'une multitude de variables sont mieux adaptés à l'AI. Les approches algorithmiques classiques sont mieux adaptées aux solutions exactes ou quasi optimales qui impliquent une logique et des calculs lourds.

Choisir la bonne approche peut apporter des avantages significatifs à votre organisation, tandis qu'opter pour une méthode moins optimale peut entraîner des pertes de capital importantes, car les projets technologiques sont coûteux. Se tourner vers des systèmes éprouvés et démontrables tels que Telemus AI™ peut souvent aider les organisations à assurer le succès de leur transformation numérique par l'intelligence artificielle.

Contactez-nous aujourd'hui pour une consultation gratuite sur la façon dont le Telemus AI™ peut être intégré à votre organisation.