
Vous êtes encore là ! Quel courage 🙂
Bon pour ceux qui déparquent, n’hésitez pas à lire les épisodes précédents, ça sera plus simple.
Attaquons maintenant un gros morceau conceptuel : l’apprentissage !
Bah oui, jusqu’à maintenant je vous ai dit « on fait ci », « on fait ça » mais c’est bien l’IA qui doit le faire, pas nous sinon aucun intérêt. Alors comment programmer l’autonomie d’apprentissage de notre IA ?
Première étape, et pour rappel, il nous faut modifier la position et l’orientation de la droite pour améliorer les résultats. Déterminons alors comment modifier notre courbe-droite mathématiquement. (l’ordinateur ne va comprendre si on lui parle en langage humain) Comment traduire « bouge la courbe vers le haut » ou « accentue la pente de la droite » en math ? Et bien c’est simple nous avons des paramètres (a et b dans notre exemple), a représente la pente de la droite et b sa position. Ainsi plus la valeur de a est élevée, plus la pente monte vite (Est-ce qu’une pente peut monter ??? bon on est pas là pour faire de la sémantique) et si la valeur est proche de zéro, moins la pente sera pentu. a peut être négatif, et dans ce cas la pente descend.

Du coup il suffit de demander à l’IA d’augmenter ou de diminuer les valeurs de a et de b selon le besoin.
Deuxième étape : déterminer si nos paramètres doivent augmenter ou diminuer. Pour l’exemple on va faire simple mais il faut garder à l’esprit que dans la pratique, les techniques sont beaucoup plus sophistiquées. Du coup on peut regarder comment l’IA interprète les résultats. Dans l’épisode précèdent on a décidé que si le résultat était négatif, la réponse est « chat » et « chien » dans le cas contraire. C’est bien mais du coup ça pose un petit soucis dans la comparaison avec les labels. Le plus simple c’est de prendre des nombres et comme ici le problème est binaire (chat ou chien) on peut utiliser 1 et 0. 1 c’est un chien, 0 c’est un chat. Du coup pour comparer avec les labels, c’est super simple, suffit de faire une soustraction. label – résultat. Si c’est 0, la classification est correcte, si c’est 1 ou -1, la classification est erronée. Et là vous voyez la magie ? … Non ? … Et bien on a 2 erreurs possibles (1 ou -1) de signes opposés, donc 2 manières de modifier notre droite !!! Magique !
Bon résumons :
- L’IA fait le calcul y = ax + b
- Elle compare y avec la donnée restante (le poids dans notre exemple) et obtient un nombre que nous appellerons z. poids – y = z
- Si z est négatif, l’IA répond 0 qui veut dire « chat » dans son langage. Sinon elle répond 1, « chien ».
- Ensuite elle compare au label des données. 3 résultats possibles résumés dans le tableau ci-dessous.
Résultat de l’IA | LABEL | COMPARAISON | ERREUR |
---|---|---|---|
1 (chien) | 1 (chien) | 1 – 1 | 0 |
0 (chat) | 0 (chat) | 0 – 0 | 0 |
1 | 0 | 1 – 0 | 1 |
0 | 1 | 0 – 1 | -1 |
- Maintenant c’est tout simple, l’IA modifie ses paramètres dans le sens de l’erreur. 0 pas de modification, 1 elle augmente la valeur de a donc la pente augmente et -1 elle diminue la valeur de a, la pente diminue (bon ça dépend aussi du signe de a on est d’accord) (Elle peut modifier b aussi mais ce n’est pas utile pour l’exemple et la compréhension)

Est-ce que c’est fini ? Vous voyez pas un soucis ?
…
En l’état, notre IA s’adapte à chaque donnée de façon unique, du coup elle n’a pas une « vision » d’ensemble des données. Elle va s’adapter à une donnée puis à la suivante et ainsi de suite sans jamais, peut-être, trouver une position idéale pour l’ensemble des données. Du coup qu’est ce qu’on fait ? Et bien, on envoie toutes les données d’un coup !!! Puis on fait une moyenne des erreurs et c’est cette moyenne qui nous servira de base de mise à jour de nos paramètres.

Voilà, c’est tout, vous avez tout compris, vous êtes des experts de l’IA maintenant. Bravo !
Mouais … Ca parait trop simple pour être vrai 😠
Bon ok, dans la pratique c’est bien plus complexe mais la base est là. Si vous me demandez comment ça se passe avec plus de features (c’est le petit nom qu’on donne aux différentes données) ou avec une courbe et pas une droite, je vous repondérai : Pareil… mais en plus complexe. Et puis si on veut des résultats optimisés au maximum il y a plein de techniques différentes mais encore une fois ce n’est pas le sujet. Si vous êtes curieux et patient, on y viendra.
Est-ce que ça vous dirait un peu de code maintenant ? Du très simple toujours mais avouez que vous mourrez d’envie de programmer cette IA et d’avoir le pouvoir de classifier les chats et les chiens selon leur taille de moustaches et leur poids !
Je vous propose de voir ça au prochain épisode.