L’intelligence artificielle prend aujourd’hui une place importante dans le développement web. Associée à PHP, elle permet de créer des applications plus intelligentes, capables d’analyser des données, d’automatiser des tâches et d’améliorer l’expérience utilisateur.

Sur ce blog, je partage ce que j’apprends sur le livre PHP et l’intelligence artificielle, avec des exemples simples, des idées pratiques et des concepts accessibles, aussi bien pour les débutants que pour les passionnés de technologie.

L’IA est un domaine immense qu’il convient de diviser en sous-domaines.

  1. Systèmes basés sur des règles
    1. Des algorithmes standards que nous utilisons tous, basés sur des conditions if-then-else
  2. Le Machine Learning – apprentissage automatique
    1. Donner aux ordinateurs la capacité d’apprendre sans être explicitement programmés à apprendre
    2. En se basant sur des indicateurs statistiques d’un ensemble de données de départ, ces algorithmes permettent de résoudre des tâches de classification, de régression ou de segmentation
      1. Au même titre qu’un enfant éduqué dans un environnement encourageant la politesse aura plus de chance de l’être lui-même, un algorithme de Machine Learning éduqué avec des données orientées dans une direction donnera des résultats dans ce sens
  3. Le Deep Learning- apprentissage profond
    1. Le deep learning, c’est une façon d’apprendre pour les ordinateurs, un peu comme le cerveau humain.
    2. Il est devenu populaire depuis 2010 car il est très bon pour des tâches comme reconnaître des images.
    3. Par exemple, on peut lui montrer des photos de chats et de chiens. Après apprentissage, il peut dire s’il voit un chat ou un chien.
    4. Mais ça demande beaucoup de puissance pour fonctionner, donc c’était difficile avant les années 2000.

Evolution de l’AI

  • L’intelligence artificielle (IA) existe depuis les années 1950, mais son évolution a connu des hauts et des bas, selon les avancées technologiques et les moyens financiers disponibles.
  • Après un premier élan dans les années 1950, l’IA traverse deux longues périodes de stagnation appelées « hivers de l’IA ». Malgré cela, les bases théoriques continuent de progresser.
  • Un moment marquant a lieu en 1997, quand l’ordinateur Deep Blue bat le champion d’échecs Garry Kasparov.
  • L’IA connaît un vrai renouveau à partir des années 2010 grâce au deep learning, à l’essor d’Internet et à la puissance des ordinateurs. Les géants du numérique comme Google ou Facebook développent des systèmes très performants.
  • Dans les années 2020, l’arrivée des IA génératives (comme les LLM), ont rendu ces technologies accessibles à tous, avec des applications dans de nombreux domaines.

Applications concrètes de l’IA

  • Natural Language Processing (NLP) : les assistants virtuels comme Siri, Alexa et Google Assistant utilisent le Machine Learning pour comprendre et répondre aux commandes vocales. Ces modèles peuvent trouver une utilité particulière dans le service client automatisé, la traduction automatique.
  • Diagnostic médical : nous pouvons utiliser les réseaux de neurones pour analyser des images médicales (radiographies, IRM) afin de pré-détecter des maladies
  • Conduite autonome : les véhicules autonomes utilisent des réseaux de neurones pour interpréter les données des capteurs et prendre des décisions de conduite
  • Recommandation de contenu : Netflix et Spotify utilisent des algorithmes de Machine Learning pour recommander des films, des séries et des musiques en fonction des préférences des utilisateurs
  • Détection de fraudes : les institutions financières utilisent des algorithmes de Machine Learning pour détecter des transactions douteuses en temps réel
  • Analyse prédictive dans les affaires : les entreprises utilisent des modèles pour prévoir les ventes futures et ajuster leurs stratégies marketing. Cela peut permettre d’affiner la planification des ressources, le marketing ciblé et la politique tarifaire.
  • Jeux vidéo : certains jeux utilisent des réseaux de neurones pour créer des intelligences artificielles capables de jouer contre des humains. Tout cela contribue à des interactions plus réalistes avec les personnages non joueurs.
  • Reconnaissance vocale et transcription automatique : les services comme Google Speech-to-Text utilisent des réseaux de neurones pour convertir la parole en texte. Ces solutions apportent beaucoup en termes d’accessibilité, permettent la prise de notes automatique et la transcription des réunions et des conférences pour archivage.

PHP et l’IA

  • Place de PHP dans l’IA
    • PHP est un langage interprété côté serveur qui a pour vocation principale de générer du contenu dynamique pour des sites web
    • Li’AI est un ensemble d’algorithmes génériques et n’est pas une fin en soi. Ainsi rien n’empêche PHP d’implémenter de tels algorithmes.
      • Python dispose d’une vaste gamme de librairies et de frameworks dédiés à l’IA et au Machine Learning.
        • Scikit-learn, Tensorflow, PyTorch ou Keras pour l’IA pure
        • PyPlot, NumPy ou Pandas pour la visualisation ou l’ingénierie des données
  • Librairies PHP pour l’IA
    1. Celles permettant de créer nos propres modèles, les optimiser et les tester pour les rendre éventuellement disponibles pour une exploitation dans un environnement de production.
      1. PHP-ML
        1. Initiée par Arkadiusz Kondas en 2016, cette librairie est la plus ancienne. Simple d’utilisation, elle implémente les algorithmes de base de Machine Learning, y compris ceux de classification, de régression, de clustering et de filtrage (recommandation). Elle permet aussi la préparation des données et les manipulations statistiques
      2. Rubix ML
        1. Lancée par Andrew DalPino en 2019, elle est conçue pour effectuer, en plus des tâches proposées par PHP-ML, des fonctionnalités plus avancées avec davantage de performances et de flexibilité. Elle met l’accent sur la performance et l’efficacité avec la capacité de gérer de plus grandes quantités de données que la librairie précédente. On notera l’implémentation d’algorithmes en nombre plus important, cependant avec encore certaines faiblesses notables sur les réseaux de neurones aux typologies complexes.
    2. celles permettant une consommation simple de modèles existants et mis à disposition via des API spécifiques.
      1. Guzzle / HttpClient / Curl

La préparation des données

En fonction de celles-ci et des résultats souhaités, nous serons amenés à choisir certains algorithmes plus adaptés que d’autres. La qualité des données est la clé de la réussite de tout projet d’IA. Sans des données propres, pertinentes et bien structurées, même les algorithmes les plus sophistiqués échoueront.

  • Type de données
    • Dans un énoncé de problème à traiter avec l’IA, la première étape est de récolter les données qui nous permettront d’éduquer et d’entraîner nos modèles qui auront pour vocation de solutionner notre problématique. Dans les ensembles que nous aurons, il sera possible de rencontrer une large variété de types de données
    • Ces différents types de données peuvent être utilisés seuls ou combinés pour résoudre des problèmes variés en IA, chaque type de données ayant ses propres méthodes et traitements
      • Données numériques
        • Les données numériques peuvent être continues ou discrètes. Elles sont discrètes si elles ne peuvent prendre qu’une quantité limitée de valeurs dans un intervalle donné (exemple : l’effectif présent dans une salle ne peut prendre que les valeurs 0, 1, 2… 30). Elles sont continues si elles peuvent prendre une infinité de valeurs dans un intervalle défini (exemple : la température d’une pièce à vivre).
      • Données catégorielles
        • Les données catégorielles prennent des valeurs qui représentent des catégories distinctes dans un panel donné.
        • Parmi ces données catégorielles, nous pourrions par exemple trouver les types de produits (électronique, vêtement, alimentation), les genres (masculin, féminin, autre) ou même les couleurs (rouge, bleu, vert).
      • Données ordinales
        • Les données ordinales sont des données catégorielles avec un ordre intrinsèque.
        • Par exemple, des données comme les niveaux d’éducation (primaire, secondaire, universitaire), les échelles de satisfaction (insatisfait, neutre, satisfait) ou les classements de performances (mauvais, moyen, bon) sont ordinales.
      • Données textuelles
        • Les données textuelles sont des données sous forme de texte libre.
        • Par exemple, des commentaires clients, des articles de blog ou le corps d’un courrier électronique sont des données textuelles.
      • Données temporelles
        • Les données temporelles sont des données qui sont indexées dans le temps.
        • Les séries chronologiques de ventes quotidiennes, les données de capteurs collectées chaque minute ou les enregistrements des températures horaires sont des données temporelles
      • Données géospatiales
        • Les données géospatiales sont des données associées à des coordonnées géographiques. Par exemple, la localisation GPS de véhicules, les coordonnées de magasins et les densités de population font partie de ce type de données.
      • Données multimédias
        • Les données multimédias peuvent être des données audio, d’images ou de vidéo. 
        • Les enregistrements de voix pour des assistants vocaux, les sons d’animaux pour des projets de reconnaissance de faune, les vidéos de sports pour l’analyse de performance, les radiographies médicales, les images satellites et les photos de produits pour des sites de commerce électronique sont de bons exemples de telles données.
      • Données logiques/binaires
        • Les données binaires sont des données représentant deux états (vrai/faux, oui/non), comme les indicateurs d’activation de fonctionnalités (activé/désactivé), les réponses à des questions oui/non ou la présence/absence de caractéristiques spécifiques.

Ces différents types de données peuvent être utilisés seuls ou combinés pour résoudre des problèmes variés en IA, chaque type de données ayant ses propres méthodes et traitements. En effet, nous allons apprendre comment appréhender ces données afin qu’un algorithme d’IA puisse les utiliser. Car n’oublions pas qu’une machine n’a pas intrinsèquement la capacité de comprendre la symbolique d’une donnée, il faudra donc transformer les données numériquement en conservant leurs principales significations et caractéristiques. Avant d’analyser les données, il est important de situer notre problème pour identifier le mode d’apprentissage que nous allons devoir utiliser pour résoudre notre besoin.

  • Type d’apprentissage
    • En Machine Learning, nous rencontrerons principalement deux approches pour éduquer et entraîner nos modèles :
      • L’apprentissage supervisé  (On donne à la machine des exemples avec la bonne réponse afin qu’elle apprenne à faire des prédictions sur de nouvelles données.)
        • Ce type d’apprentissage utilise des données étiquetées (souvent le résultat attendu), où chaque exemple d’entraînement est associé à une réponse ou à une sortie connue.
          • Si les étiquettes (résultats attendus) sont des données numériques continues, nous sommes dans le cadre d’un problème de régression.
            • Exemple : prédire un prix ou une température.
          • Si les étiquettes sont des données catégorielles, nous sommes dans le cadre d’un problème de classification.
            • Exemple : spam / non spam, oui / non.
      • L’apprentissage non supervisé (On donne à la machine des données sans réponse. Elle essaie de trouver des groupes ou des modèles cachés toute seule.)
        • Ce type d’apprentissage utilise des données non étiquetées. Le modèle cherche des structures ou des patterns inhérents dans les données sans supervision humaine.
          • Exemple : regrouper automatiquement des clients selon leur comportement d’achat.

Ainsi, en fonction de l’ensemble de données qui nous sera fourni, nous pourrons déjà définir notre mode d’apprentissage. Cela nous permettra par la suite d’identifier les algorithmes qui permettront de résoudre notre problème.

Cet article a permis d’introduire les concepts fondamentaux de l’intelligence artificielle, du Machine Learning et des types de données utilisés pour entraîner des modèles. Ces bases sont indispensables avant de passer à la pratique.

Dans les prochains articles, nous verrons comment exploiter concrètement ces concepts avec PHP, à travers des exemples pratiques et des cas d’usage réels.