Suite aux conseils de Philippe Kalousdian, je me suis lancé à mon tour dans l’ouvrage d’Axel Cypel : Voyage au bout de l’IA ! Si, tout comme moi, vous aviez lu son article en janvier dernier, vous avez probablement été confronté à des termes qui ne vous étaient pas familiers. Qu’importe, plonger dans le livre d’Axel Cypel m’a permis de déchiffrer l’IA sous un nouvel angle, comme je ne l’avais jamais fait auparavant.

IA : passer du novice au praticien

Clustering 

Le clustering est une technique d’apprentissage automatique utilisé en IA permettant de regrouper des chaînes de données par distance ou par similarité. Il s’agit d’une méthode non supervisée (voir plus bas) pour une analyse des données. Il est alors possible d’appliquer des algorithmes de classification afin de gérer ces données individuelles dans chaque groupe spécifique.

L’algorithme de clustering est le plus souvent utilisé pour une analyse des données. Par exemple, il s’agit de reconnaître : 

  • des utilisateurs qui ont un comportement similaire 
  • des motifs récurrents dans les transactions financières 
  • des clients qui ont un usage similaire d’un outil

Vous ne pouvez pas savoir avant d’exécuter l’algorithme combien de clusters vont être identifiés. L’analyse en clusters est généralement utilisée lorsqu’il n’y a pas d’hypothèse sur les relations probables entre les données. Elle fournit des informations sur les relations entre les data, leur distance (degré de différences ou de similitudes) mais ne traite pas de leur nature et de leur signification.

Le clustering est réalisée en prenant en compte la distance inter-cluster et intra-cluster :

  • la distance intra-cluster est la distance entre les points de données à l’intérieur d’un groupe. S’il existe un fort effet de regroupement entre des data, cette distance doit être faible pour assurer une certaine homogénéité.
  • la distance inter-cluster est la distance entre les points de données des différents groupes identifiés. Lorsqu’il existe de nombreux clusters, la distance est importante et traduit une hétérogénéité.

Catégorisation

Le rôle des algorithmes de classification est de permettre d’apprendre en toute autonomie à partir de plusieurs ensembles de données. L’idée est alors de classifier les différents éléments d’un jeu de données en plusieurs catégories. Ces dernières regroupent les datas en fonction de leur similarité.

L’algorithme de classification fait partie des méthodes d’apprentissage supervisé, c’est-à-dire que les prédictions sont réalisées à partir de données historiques.

Il existe de nombreux algorithmes d’apprentissage supervisé basés sur la classification (liste non exhaustive)

Les arbres de décision

L’arbre de décision est un algorithme classant les différentes données sous forme de branche. Il part d’une racine où chaque data prend une certaine direction en fonction de son comportement. Ce qui permet ensuite de prédire les variables de réponse. Comme pour les arbres, les intersections sont appelées les nœuds, et leurs finalités, les feuilles. Les nœuds représentent alors les règles permettant de séparer les datas en différentes catégories, et les feuilles sont les informations elles-mêmes.

La répartition en K-moyennes (K-means)

Cet algorithme reprend le théorème de Bayes et les probabilités conditionnelles. Il repose sur les jeux de données étiquetés, et les associe à d’autres données non étiquetées pour les classifier.

Le classificateur bayésien naïf

Le classificateur bayésien naïf est principalement utilisé dans le traitement du langage naturel. Autrement dit, c’est ce qui permet aux machines de comprendre plus facilement le langage humain.

La régression linéaire

C’est l’un des algorithmes de classification les plus utilisés. L’idée est d’effectuer des corrélations simples entre les entrées et les sorties. Cela permet ainsi d’expliquer comment le changement d’une variable peut affecter l’autre. C’est la simplicité de ce modèle qui en fait son succès auprès des data scientists. Et pour cause, il ne nécessite que peu de paramètres, est facile à représenter sur un graphique et à expliquer auprès des décideurs.

À ce titre, il est souvent utilisé dans le domaine commercial pour prévoir le nombre de ventes, ou plus globalement pour anticiper les risques.

Perceptron

C’est l’un des algorithmes les plus simples, et surtout l’un des plus anciens, puisqu’il a été inventé en 1957 par Frank Rosenblatt.

Plus précisément, il s’agit d’un algorithme de classification binaire. Il va alors comparer la somme de plusieurs signaux d’entrée. Si le montant dépasse un certain seuil ou non, Perceptron conclut à un résultat en fonction de la règle définie en amont. Cette règle est appelée Perceptron Learning Rule qui permet au réseau neuronal d’apprendre de manière automatique.

Cet algorithme se révèle très utile pour détecter des tendances issues des données d’entrées.

Liens neuronaux

Liens neuronaux

Réseaux de neurones en IA

Les réseaux de neurones artificiels constituent un sous-ensemble de l’apprentissage automatique et sont au cœur des algorithmes de l’apprentissage en profondeur. Leur nom et leur structure sont inspirés du cerveau humain, imitant la manière dont les neurones biologiques s’envoient des signaux.

L’apprentissage automatique est une branche de  l’intelligence artificielle (IA)  et de l’informatique qui se concentre sur l’utilisation de données et d’algorithmes pour imiter la façon dont les humains apprennent, en améliorant progressivement leur précision.

Les réseaux de neurones sont constitués de couches nodales, contenant une couche d’entrée, une ou plusieurs couches cachées et une couche de sortie. Chaque nœud, ou neurone artificiel, se connecte à un autre et possède un poids et un seuil associés. Si la sortie d’un nœud est supérieure à la valeur de seuil spécifiée, ce nœud est activé et envoie des données à la couche suivante du réseau. Sinon, aucune donnée n’est transmise à la couche suivante du réseau.

L’exemple du surf 

Prenons un exemple concret : par exemple, vous devez décider si vous allez faire du surf  (Oui : 1, Non : 0). La décision d’aller surfer ou non est notre résultat prévu. Supposons que trois facteurs influencent votre prise de décision :

Les vagues sont-elles bonnes ? (Oui : 1, Non : 0)

La voie est-elle libre ? (Oui : 1, Non : 0)

Y a-t-il eu récemment une attaque de requin ? (Oui : 0, Non : 1)

Ensuite, supposons ce qui suit :

X1 = 1, car les vagues sont bonnes

X2 = 0, car la foule est au rendez-vous

X3 = 1, car il n’y a pas eu d’attaque de requin récemment

Maintenant, nous devons attribuer des poids pour déterminer l’importance. Des poids plus importants signifient que certaines variables ont une plus grande importance pour la décision ou le résultat.

W1 = 5, car il n’y a pas des vagues tous les jours

W2 = 2, car vous êtes habitué à la foule

W3 = 4, car vous avez très peur des requins

Enfin, nous supposerons également une valeur de seuil de 3, ce qui se traduit par une valeur de biais de -3.

Avec toutes ces entrées, nous pouvons commencer à introduire des valeurs dans la formule pour obtenir le résultat souhaité.

Résultat = (1*5) + (0*2) + (1*4) – 3 = 6

Les résultats 

Nous pouvons déterminer que la sortie de ce nœud serait 1, puisque 6 est supérieur à 0. Dans ce cas, vous allez surfer, mais si nous ajustons les poids ou le seuil, nous pouvons obtenir des résultats différents du modèle. Dans l’exemple ci-dessus, nous avons utilisé des perceptrons.

La plupart des réseaux de neurones profonds sont à propagation avant, c’est-à-dire qu’ils fonctionnent dans un seul sens, de l’entrée vers la sortie. Cependant, vous pouvez également entraîner votre modèle par rétropropagation, c’est-à-dire en allant dans la direction opposée, de la sortie vers l’entrée. La rétropropagation nous permet de calculer et d’attribuer l’erreur associée à chaque neurone, ce qui nous permet d’ajuster et de régler les paramètres du ou des modèles de manière appropriée.

Réflexion neuronale

Réflexion neuronale

Apprentissage supervisé de l’IA

L’apprentissage supervisé se caractérise par l’utilisation de jeux de données étiquetés qui entraînent des algorithmes permettant de classer des données ou de prédire des résultats avec précision. Au fur et à mesure que les données en entrée sont introduites dans le modèle, celui-ci ajuste ses pondérations jusqu’à ce que le modèle soit correctement ajusté. Exemple d’utilisation : la classification des courriers indésirables dans un dossier distinct de votre boîte de réception.

L’apprentissage supervisé a deux utilisations lors de l’extraction des données :

  • la catégorisation
  • la régression (utilisée pour faire des projections, par exemple, sur le chiffre d’affaires d’une entreprise)

Apprentissage non supervisé de l’IA

Dans le cas de l’apprentissage non supervisé, des algorithmes de Machine Learning sont utilisés pour examiner et regrouper des jeux de données non étiquetés. Ces algorithmes peuvent révéler des schémas inconnus dans les données sans aucune supervision humaine. 

Il existe trois principales catégories d’algorithmes :

  • clustering
  • association

En IA, la méthode d’association de l’apprentissage non supervisé est intéressante pour trouver des relations entre les variables d’un jeu de données.  C’est la technique utilisée pour créer le message de type « les autres clients ont également consulté ». Elle est particulièrement adaptée aux moteurs de recommandation. Si 15 clients ayant acheté un nouveau téléphone ont également commandé un casque, les algorithmes recommandent un casque à tous les clients qui mettent un téléphone dans leur panier.

  • réduction de la dimensionnalité

Il arrive qu’un jeu de données comporte un nombre de caractéristiques exceptionnellement élevé. La réduction de la dimensionnalité permet de réduire ce nombre sans compromettre l’intégrité des données. Il s’agit d’une technique couramment utilisée avant le traitement des données. Cela sert par exemple à supprimer le bruit d’une image pour améliorer sa qualité.

Différences entre apprentissage supervisé et non supervisé

Pour l’IA, les modèles d’apprentissage supervisé sont beaucoup plus précis. Cependant, ils nécessitent une intervention humaine dans la procédure de traitement des données pour garantir que les informations sont correctement étiquetées.

Un modèle d’apprentissage supervisé peut, par exemple, prédire les horaires de vol en fonction des heures de pointe d’un aéroport, de la densité du trafic aérien et des conditions météorologiques (en plus d’autres paramètres possibles). Il faut toutefois une intervention humaine pour étiqueter les jeux de données afin d’entraîner le modèle sur la façon dont ces facteurs peuvent affecter les horaires de vol. 

En revanche, les modèles d’apprentissage non supervisé fonctionnent sans intervention humaine. Ils identifient et créent une structure de tri en utilisant des données non étiquetées. L’apprentissage non supervisé produit parfois des résultats complètement erronés. 

Contrairement à l’apprentissage supervisé, l’apprentissage non supervisé peut utiliser n’importe quel volume de données en temps réel, mais dans la mesure où la machine s’entraîne elle-même, la classification est moins transparente. Cela augmente les risques de résultats médiocres.

Les objectifs de l’apprentissage supervisé et non supervisé sont différents. Tandis que la première approche vise à prédire les résultats découlant des données nouvellement ajoutées, la seconde consiste à obtenir de nouveaux insights grâce à de grandes quantités de nouvelles données. Dans le cas de l’apprentissage supervisé, l’utilisateur sait quels résultats il peut attendre, tandis qu’avec l’apprentissage non supervisé, il espère découvrir quelque chose de nouveau et d’inconnu.

Les outils utilisés pour la création de modèles de ML avec l’apprentissage supervisé sont relativement simples, puisque des programmes comme R ou Python sont généralement suffisants. L’apprentissage non supervisé nécessite en revanche une certaine puissance de calcul pour traiter les énormes volumes de données non étiquetées.

Descente de gradient

L’algorithme de descente de gradient est un algorithme itératif ayant comme but de trouver les valeurs optimales des paramètres d’une fonction donnée. Il tente d’ajuster ces paramètres afin de minimiser la sortie d’une fonction de coût face à un certain jeu de données. Cet algorithme est souvent utilisé en ML dans le cadre de régressions non linéaires puisqu’il permet de rapidement trouver une solution approximative à des problèmes très complexes.

J’ai essayé de comprendre la descente de gradient, je me suis accroché, je me suis revu au tableau en colle de maths en classes prépas pour résoudre des problèmes de dérivés et de pentes. Je m’y remettrai ultérieurement pour comprendre précisément ce qu’est cette descente de gradient et comment elle influe sur l’IA.

Maîtriser l'IA

Maîtriser l’IA

Les vrais positifs, les vrais négatifs, les faux positifs, les faux négatifs

Ces termes définissent le type de résultat qu’on peut avoir après une prédiction à deux possibilités (en IA : classification binaire). Pour mesurer la performance d’un modèle de ML, on ne regarde pas simplement le nombre de prédictions bien réalisées. Au contraire, cette approche peut nous donner une vision faussée de notre modèle d’IA.

Prenons l’exemple d’un choix a deux possibilités : on se place à la sortie d’un tunnel pour prédire ce qu’il en sort. On imagine qu’il y a ici deux possibilités : soit c’est une voiture, soit c’est une moto. Si sur cette route 80% des utilisateurs sont en voitures et qu’on prédit à chaque fois que ce sera une voiture qui sortira du tunnel, on aura à la fin un taux de réussite de 80%.

C’est ce qu’on appelle une prédiction naïve car il n’y a pas vraiment de réflexion : on ne prédit pas, on décide arbitrairement que tout ce qui sortira du tunnel sera une voiture. Le problème, c’est que cette approche marche lorsqu’il y a 80% de voiture sur la route, mais si le contexte change, cette approche ne marchera plus.

La méthode

Il nous faut une approche plus intelligente grâce au ML, un modèle reproductible dans différents contextes (dans notre cas sur différents tunnels). Cette méthode, c’est celle des Vrais Positifs / Faux Négatifs. Reprenons notre exemple du tunnel. Nous avons deux choix :

  • une voiture sort du tunnel
  • une moto sort du tunnel

L’objectif ici, est de mesurer la performance de notre prédiction sur ces deux choix. Par défaut, on va dire que la voiture correspond au choix « positif » et la moto au choix « négatif ». Pour chacun de ces choix, soit notre prédiction est vraie (bonne) soit elle est fausse (mauvaise).

Par exemple, on prédit qu’une voiture va sortir du tunnel. On se place donc dans le choix « positif ». Une voiture sort effectivement du tunnel, notre prédiction est donc vraie. C’est un Vrai Positif. Si au contraire notre prédiction était fausse (une moto sort du tunnel), on dira que c’est un Faux Positif.

Même chose pour le choix « négatif » : on prédit que c’est une moto qui va sortir du tunnel. Une moto sort, notre prédiction est alors vraie. C’est un Vrai Négatif. Mais si une voiture sort, notre prédiction est fausse. C’est un donc un Faux Négatif.

Les résultats 

Nous avons donc quatre résultats possibles :

  • une voiture sort du tunnel

 Vrai Positif – on avait prédit qu’une voiture sortirait

Faux Négatif – on avait prédit qu’une moto sortirait

  • une moto sort du tunnel

Faux Positif – on avait prédit qu’une voiture sortirait –

Vrai Négatif – on avait prédit qu’une moto sortirait

En Machine Learning ou en IA, pour afficher le résultat d’un modèle de prédiction à deux possibilités (comme l’exemple que l’on vient de voir) on utilise une matrice de confusion. Il s’agit d’un tableau dans lequel on affiche le nombre de prédictions selon chaque possibilité : nombre de vrais positifs, nombre de vrais négatifs, nombre de faux positifs, nombre de faux négatifs.

Comme l’explique PKN dans son article, deux indicateurs reliés à la matrice de confusion permettent de mesurer la performance d’un modèle IA : 

Mesurer la précision d’une IA

La précision est le ratio entre les vrais positifs et les vrais et faux positifs d’un modèle IA, qui mesure la capacité à ne pas donner de faux positifs. La précision est la proportion des items pertinents parmi l’ensemble des items proposés. Elle peut être comprise comme une mesure de l’exactitude ou de la qualité d’une IA.

Mesurer le rappel d’une IA

Le rappel est le ratio entre les vrais positifs et les faux négatifs d’un modèle IA. Le rappel est une mesure de l’exhaustivité ou de la quantité.

Exemple : lorsqu’un moteur de recherche retourne 30 pages web dont seulement 20 sont pertinentes (les vrais positifs) et 10 ne le sont pas (les faux positifs), mais qu’il omet 40 autres pages pertinentes (les faux négatifs), sa précision est de 20/(20+10) = 2/3 et son rappel vaut 20/(20+40) = 1/3.