Le Machine Learning Blog

Intelligence Artificielle et Mathématiques. Partie II: exemple illustratif

robot

Le présent article correspond à la partie 2 du thème "Intelligence artificielle et mathématiques". Pour votre compréhension, je vous recommande de revoir la première partie au préalable.

Dans l'article précédent, j'ai illustré le modèle neuronal avec une couche d'entrée, une série de couches cachées et une couche de sortie.

Comment alimenter le modèle avec une entité classifiable et comment interpréter les informations de sortie?

Supposons que nous ayons un modèle entraîné pour reconnaître les images de chats et que nous voulons utiliser ce modèle pour classer l'image de la figure 1 comme un chat ou non.

 

cat

 

Figure 1:

 

Image "chat1.jpg"

 

La figure 1 présente plusieurs caractéristiques:

  1. C'est une petite image numérique de 30x30 pixels
  2. C'est une image au format .jpg, ce qui signifie que chaque pixel de l'image a trois composantes ou couches de couleur, rouge, vert et bleu (RGB).
  3. Chaque couleur est représentée par une valeur comprise entre 0 et 255, 0 pour l'absence de pigment et 255 pour 100% de pigment.

Selon ce qui précède, les informations bit à bit de l'image peuvent être visualisées comme suit:

 

cat

 

Figure 2. Informations numériques du fichier "chat1.jpg".

 

À des fins d'illustration, l'image a été réduite à 5X5 pixels.

 

 

Comme on peut le voir, le premier pixel (en haut à gauche) a trois couches (255, 238, 44), correspondant respectivement aux valeurs de composition rouge, verte et bleue.

Ensuite, si l'image a 30x30 pixels, la taille du fichier sera de (30 X 30 X 3 = 2 700 octets) un octet par pixel par couche.

Pour utiliser cette image dans le modèle, il est nécessaire de "vectoriser" au préalable les informations, c'est-à-dire de convertir le tableau d'origine (30X30X3) en vecteur de colonne (2700X1). Voir la figure 3.

 

cat
 

Figure 3. Informations vectorielles numérisées du fichier "chat1.jpg".

 

 

Les 2 700 octets obtenus correspondent à la couche d'entrée du modèle (entrée hier), voir figure 4.

 

neural ne twork cat

 

Figure 4. Informations sur la couche d'entrée (couche d'entrée). Comparez les valeurs indiquées avec les informations contenues dans les figures 1 et 2.

 

 

 

Le nombre de paramètres entre les couches de nœuds est défini comme le produit des nœuds des deux couches à joindre. Ainsi, pour réunir tous les nœuds de la couche d'entrée avec la première couche masquée, 6 X 2 700 = 16 200 paramètres sont requis, etc.

Ni la figure 4 ni la théorie expliquée ne comprennent certains paramètres supplémentaires par couche, qui spécifient le "bias". Ils sont omis uniquement à des fins d'explication générale des performances de classification.

Avec la couche d'entrée alimentée et les paramètres précédemment définis, il est alors possible de calculer d'abord les valeurs de la couche cachée 1, puis de la couche cachée 2 et enfin de la couche de sortie, opération appelée "forward propagation".

Cependant, la couche de sortie ne possède qu'un seul noeud (Figure 4). Ce nœud représente la sortie générale du modèle, une valeur unique qui doit représenter la classification obtenue.

Une fois sa valeur calculée, il faut la transformer en une valeur comprise entre zéro et un, grâce à un traitement mathématique appelé "fonction d’activation".

La conversion de la sortie en une valeur comprise entre zéro et un implique que ladite valeur est transformée en une probabilité, si supérieure à 0,5, indiquant que l'image a été classée comme "chat", si inférieure ou égale à 0,5 comme "non chat" .

La limite de classification est subjective et, dans certains cas, elle peut atteindre des valeurs supérieures à 0,5, dans d’autres à des valeurs plus faibles.

Imaginez que ce que vous classifiez ne sont pas des images de chats mais des images de tumeurs cutanées, classées malignes.

Dans ce cas, un faux positif classant une image comme une tumeur maligne, en réalité une tumeur bénigne, a des implications trop fortes pour le patient, de sorte qu'il peut être décidé de spécifier la limite vers 0,6 ou similaire.

Combien de couches cachées le modèle doit-il avoir? Combien de nœuds dans chaque couche? C'est ce que le Data Scientist doit définir. En général, quatre à six couches cachées, 200 à 300 nœuds par couche, sont courantes pour obtenir des résultats avec une probabilité d'erreur inférieure à 5% dans la classification.

Plusieurs concepts devraient être clairs en ce moment de lecture:

  1. Le modèle se comporte comme "une fonction de fonctions", avec une entrée (l'image) et une sortie, la classification.
  2. Chaque modèle possède un jeu de paramètres caractéristique qui constitue "l'empreinte du modèle". Ainsi, un modèle de classificateur de chat aura un ensemble de paramètres différent d'un modèle de classificateur de tumeur.
  3. L'information est distribuée dans tout le modèle, et non dans un site spécifique.
  4. Apprendre signifie obtenir l'empreinte qui caractérise le modèle. Classification signifie utiliser cette empreinte pour identifier une image.

 

Quel est l'entraînement?

En général, le modèle est entraîné avec des images dont la classification est connue et repose sur un ensemble de paramètres sélectionnés de manière aléatoire. Sur la base du résultat de la classification de l'ensemble "Training Images", il est possible de calculer l'erreur de classification. Avec cette erreur, un algorithme est généré qui recalcule les paramètres en nouvelles valeurs, la Back propagation, de sorte que dans une seconde analyse, une meilleure approximation (erreur mineure) de la classification soit obtenue.

Cette opération est répétée 10 000 fois ou plus jusqu'à ce qu'une marge d'erreur adéquate soit obtenue.

Une fois le modèle formé, vous pouvez tester la qualité de votre empreinte avec des images de test. De cette façon, si tout se passe bien, vous avez un modèle correctement entraîné.

 

Et qu'est-ce que tout cet apprentissage automatique a à voir avec la nature, l'objet central de mes articles?

Comprendre le fonctionnement des réseaux de neurones nous permet d'aborder les problèmes inhérents à la vie:

  1. À quel point l'intelligence artificielle est-elle artificielle?
  2. Serait-il possible que le cerveau fonctionne de manière similaire?
  3. Une mémoire peut-elle être distribuée dans un ensemble de synapses neuronales?
  4. Les organismes et les écosystèmes peuvent-ils être modélisés par des réseaux de neurones?
  5. Les réseaux de neurones peuvent-ils générer une mesure de la complexité des écosystèmes?
  6. Où la mémoire peut résider dans notre cerveau et, plus important encore, que peut être la mémoire?
  7. Comment comprendre la conscience? Que peuvent être les souvenirs?

Avec l'article suivant, dernier du sujet, j'espère soulever ces préoccupations, pas les réponses, dans le réseau neuronal de votre cerveau.

 

    Intelligence Artificielle
    Back propagation
    Apprentissage profond
    Réseaux de neurones