mardi 29 novembre 2022

L'Intelligence Artificielle (IA) pour les Nuls

Qu'est-ce que l'Intelligence Artificielle ? Depuis toujours l'homme imite la nature, toutes ses inventions ont pour origine l'observation de la nature. Il en va de même pour notre cerveau, l'homme tente de faire reproduire par la machine des mécanismes cérébraux comme la reconnaissance de formes, la traduction de textes, la prise de décisions.

L'Intelligence Artificielle (IA) pour les Nuls
L'Intelligence Artificielle (IA) pour les Nuls

Pour une définition simple de l'intelligence :

Yoshua Bengio : "L'intelligence c'est prendre de bonnes décisions."

Est-ce que l'Intelligence Artificielle débute avec l'invention des ordinateurs ? Bien sûr, si je reprends l'imitation de la nature, le microprocesseur ne faisant qu'imiter le cerveau humain, nous avons là les prémices de l'Intelligence Artificielle.

Le microprocesseur ou CPU est capable de lire un programme, il possède un bus d'adresses où il va chercher des données qu'il ramène par le bus de données dans l'unité centrale de traitement qui exécute alors l'instruction du programme, c'est le cœur de l'ordinateur. 

J'aimerais faire débuter l'Intelligence Artificielle avec l'invention de la machine de Turing conçue par Alan Mathison Turing mais celui-ci meurt en 1954, c'est à dire bien avant l'invention du microprocesseur par un ingénieur d'Intel Marcian Hoff en 1969. C'est en 1971 que la société Intel réussit à mettre tous les composants d'un processeur sur le même circuit intégré constituant ainsi le microprocesseur.

Les deux machines, celle de Turing et le Microprocesseur ont bien des plus que des similitudes, il s'agit de lire un programme (une suite d'instructions) à exécuter. Je dirais donc que c'est le début de l'Intelligence Artificielle, nous sommes en présence des machines qui vont nous permettre de créer une IA mais nous en sommes encore très loin.

Alors l'Intelligence Artificielle est bien au-delà de l'informatique traitée par les ordinateurs, il s'agit de cultiver des réseau de neurones, en faisant passer au travers, des quantités d'informations leur permettant d'apprendre afin de pouvoir déduire.

Pour découvrir les grands termes de l'Intelligence Artificielle, je vous laisse avec :

Genium360 - 10 termes à connaitre pour parler de l'IA à vos collègues
On trouve sur cette page une description prosaïque des termes de l'IA, elle permet de découvrir ce que les chercheurs cherchent à faire avec l'Intelligence Artificielle.

L'Intelligence Artificielle c'est donc l'apprentissage des machines, leur apprentissage profond, les réseaux de neurones, le big data et le forage des données. C'est en creusant chacun de ces domaines et en étant capable de les mettre en œuvre ensemble que l'on peut créer une IA.

Ce n'est pas simple !

Alors que l'Intelligence Artificielle est abandonnée par les investisseurs et les industriels, c'est autour de l'année 2010 que la croissance exponentielle des données devient le moteur de l'Intelligence Artificielle ce qui lui manquait pour émerger.

J'ai longtemps pensé que l'Intelligence Artificielle c'était avant tout les réseaux de neurones, en effet pour moi techniquement, c'était le plus dur à réaliser, à concevoir mais ils ne suffisent pas, il faut passer par une période d'apprentissage, aujourd'hui la disponibilité d'un nombre croissant de données fait la différence.

Alors j'ai une question : Quand peut-on décréter que le réseau de neurones a "assez appris" ?

L'apprentissage en Intelligence Artificielle

L'apprentissage automatique permet au modèle de vous proposer des décisions. On parle de stratégie  d'entreprise pilotée par les données.

Données -> Modèle -> Décisions

Les données disponibles  appelées échantillons construisent le modèle, le modèle permet de prendre des décisions, de nouvelles données sont injectées dans le modèle pour prendre de nouvelles décisions.

Les données qui sont associées à une décision sont labellisées avec la décision à prendre sur l'échantillon, on parle d'apprentissage supervisé, les autres données sont dites non-labellisées on parle d'apprentissage non-supervisé.

Prétraitement : les données brutes sont inexploitables, il faut effectuer un prétraitement pour déterminer si ces données sont pertinentes vis à vis de la décision à prendre.

Les modèles sont de deux types, classifieur quand il effectue une classification en catégories, si les sorties sont non-catégorisées c'est un modèle régresseur.

apprentissage profond

Ici-radio-canada - La révolution de l'intelligence artificielle
"Le principe général qui guide cette approche est de laisser l’ordinateur découvrir par lui-même la stratégie optimale pour résoudre un problème. Si on fournit à l’ordinateur une quantité massive de données (sons, images ou textes) et le résultat qu’on attend de lui, l’ordinateur ajuste graduellement ses paramètres internes. Il peut ensuite exécuter la tâche apprise : traduire un document, établir des liens entre deux phénomènes ou décrire une image."

Qu'il soit automatique ou profond l'apprentissage permet au réseau de neurones d'être efficient.

Réseaux de neurones

On en peut pas évoquer les réseaux de neurones sans évoquer Yann Le Cunn qui a obtenu le prix Turing en 2018, c'est lui qui a remis sur les rails l'Intelligence Artificielle, après ce que l'on a appelé, l'hiver de l'IA, dans les années 70-80.

Les travaux de Yann Le Cunn portent sur la "vision artificielle" et les réseaux de neurones artificiels. Il développe la technique des réseaux convolutifs. Ses travaux sont mis en application par le Crédit Mutuel de Bretagne pour la lecture optique des chèques. C'est enfin l'obtention de résultats concrets grâce à l'Intelligence Artificielle.

Yann Le Cunn développe le concept d'apprentissage auto-supervisé.

Les réseaux neuronaux sont construits sur un paradigme biologique, ils sont constitués de neurones  formels. Nous voici à nouveau dans l'observation et l'imitation de la nature avec un modèle mathématique qui représente un modèle biologique.

Pour moi, et pour l'instant compte tenu de mes connaissances, le réseau de neurones le plus intéressant c'est le perceptron_multicouche à rétropropagation

La rétropropagation c'est comme la rétroaction, une mesure de l'erreur à la sortie pour corriger l'entrée, en IA c'est l'ajustement des paramètres du neurone pour minimiser l'erreur ou donner la bonne réponse.

Langage Python en Intelligence Artificielle

Pourquoi le langage de programmation Pyhon est-il aussi plébiscité pour l'IA ?

Vous souhaitez faire une initiation rapide au langage Python, je vous laisse venir me rejoindre sur GitHub :

GitHub - Mabyre - Python Discovering
Vous allez comprendre rapidement que les objets manipulés par le python sont très pratiques pour l'analyse statistique des données. Python possède objets et des fonctions puissantes qui permettent de traiter les données présentes dans un fichier de manière statistique et mathématique.

Pour la suite de notre étude de l'Intelligence Artificielle pour les Nuls, je vous propose les articles suivants que nous étudierons par la suite.

Initiation au Machine Learning avec Python - La théorie | Makina Corpus (makina-corpus.com) 

Entraînez votre première IA en python - Tuto interactif de reconnaissance de chiffres manuscrits avec la librairie scikit-learn, aucune installation nécessaire. — CultureSciences-Physique - Ressources scientifiques pour l'enseignement des sciences physiques (ens-lyon.fr)

Librairie Python Open Source

PyTorch : https://github.com/pytorch/pytorch

Vous l'avez compris, je n'ai pas encore terminé mon étude de l'Intelligence Artificielle pour les Nuls, vous aurez compris également que :

Ce n'est pas simple !

Je vous propose de nous donner rendez-vous dans le futur, où nous aurons les éléments nécessaires à l'implémentation d'une IA pour traiter les cours de la bourse car c'est là mon véritable objectif pour les Nuls.

N'hésitez pas à me laisser votre commentaire.

Intelligence Artificielle et Open Source

L'Open Source est le meilleur moyen de se rendre compte des travaux et de leurs avancées en Intelligence Artificielle.

On peut trouver nombre de projet d'IA en Open Source, essentiellement sur le GitHub :

https://github.com/openai
La fameuse OpenAI et son ChatGpt

https://github.com/tensorflow/tensorflow

https://github.com/scikit-learn/scikit-learn

https://github.com/jbrownlee
Machine Learning Mastery - Making developers awesome at machine learning.

A creuser, To Be Digged