1. Livres & vidéos
  2. Data Scientist et langage R
  3. CNN
Extrait - Data Scientist et langage R IA, Machine Learning et Statistiques, Forecast, Tenseur, Gradient, Pytorch, Keras, CNN, LLM, GPT, RAG… (4e édition)
Extraits du livre
Data Scientist et langage R IA, Machine Learning et Statistiques, Forecast, Tenseur, Gradient, Pytorch, Keras, CNN, LLM, GPT, RAG… (4e édition) Revenir à la page d'achat du livre

Heuristiques clés : logique floue - swarm - CNN

Systèmes flous

1. Introduction

Cette section introduit des notions que vous retrouvez dans différents algorithmes et différents packages. Celle-ci vous permettra d’aborder divers sujets dans d’autres contextes, en particulier celui des systèmes experts. Ces systèmes semblent passés de mode hors du monde industriel, mais nous avons la conviction que ceux-ci reviendront bientôt en force dans l’outillage des data scientists futurs.

Le fait que les systèmes flous (fuzzy systems) s’avèrent efficaces dans la reconnaissance de patterns et l’approximation de fonctions "complexes" provient en partie de leur capacité à supporter une codification efficace des connaissances.

Les systèmes flous se basent sur des systèmes experts à base de règles (rule-based systems) ayant souvent l’aspect suivant : "SI ceci ALORS cela".

Comme le laisse supposer le terme fuzzy, ces règles sont de plus entachées d’une logique floue (via l’incorporation de la notion d’ensembles flous - les fuzzy sets que nous allons aborder plus bas).

Un ensemble flou peut être compris comme étant le couple formé par un ensemble "classique" (en anglais crisp) et une fonction sur les éléments de cet ensemble prenant ses valeurs dans un certain intervalle, typiquement [0,1]. Cette fonction quantifie la vraisemblance d’une assertion (c’est en fait le niveau d’appartenance à l’ensemble, une extension de la notion de "fonction caractéristique" qui vaut 0 quand un élément n’est pas dans l’ensemble et 1 quand l’élément est dans l’ensemble).

La facilité d’interprétation des règles par les humains aide à la mise au point de ces systèmes, en particulier si le nombre de règles reste raisonnable. La codification d’une connaissance incertaine y est possible, ce qui améliore le dialogue avec les experts car il n’est pas nécessaire de capter toute sa connaissance sur un sujet au travers d’une seule règle très complexe et exprimée en une seule fois. Au contraire, on empilera des règles unitaires annotées de leur incertitude, si bien que la validation individuelle...

Essaim (swarm)

Les analogies avec la nature inspirent les créateurs d’algorithmes. Quand on regarde l’action d’une colonie de fourmis (ant) qui va chercher de la nourriture sur une nappe lors d’un déjeuner sur l’herbe, on est surpris de "l’intelligence collective des fourmis". Celles-ci s’organisent en files vers les points où elles trouvent le plus de ressources, explorent avec efficacité le territoire, changent leur comportement et leur organisation quand on ajoute des obstacles et changent leur organisation quand une ressource vient à manquer à un endroit de la nappe.

L’idée des algorithmes qui utilisent cette analogie est simple : il n’y a pas d’intelligence centralisée dans ces comportements, mais la conjonction de comportements faciles à coder (c’est-à-dire peu intelligents) et d’échanges d’informations succincts confine une certaine intelligence collective à l’essaim (swarm).

1. Swarm et optimisation : l’algorithme PSO

L’usage le plus courant de tels algorithmes est la recherche d’optimum dans le cas de problèmes très difficiles, typiquement quand il existe de nombreux optimums locaux. Remarquez que le fait de trouver ces optimums locaux peut faire partie de nos objectifs, au même titre que nos fourmis ne recherchent pas uniquement la plus grande source de nourriture, mais toutes les sources de nourritures notables accessibles à une certaine distance de leur base.

a. Présentation de PSO

L’algorithme PSO (Particle Swarm Optimization) met en œuvre une population de particules qui se déplacent de façon stochastique dans l’espace de recherche. Chaque individu est caractérisé par sa meilleure performance dans cet espace (par exemple, là où la fourmi a trouvé le plus de nourriture, et non pas là où se trouve réellement le plus de nourriture). L’individu communique cette expérience à une certaine partie de la population (suivant ses moyens de communication et en fait suivant votre volonté de programmeur !). Il est parfois plus judicieux de ne communiquer l’information qu’à un ensemble restreint de la population pour ne pas déformer le comportement de tout l’essaim....

Historique et agencement des concepts liés aux réseaux de neurones qui déboucheront sur les LLM

Les LLM (Large Language Models) actuels, et toute l’intelligence artificielle générative qui en découle, sont le fruit de la résurgence des réseaux de neurones et de l’application de nouvelles techniques d’apprentissage automatique (Machine Learning).

Jusqu’à la fin des années 2000, les réseaux de neurones étaient considérés comme des modèles de niche, car ils étaient difficiles à entraîner et à optimiser.

Cependant, en 2012, l’équipe de Geoffrey Hinton a remporté le concours ImageNet en utilisant un réseau de neurones profond (Deep Neural Networks) appelé AlexNet. Cela a révolutionné de nombreux domaines de l’apprentissage automatique.

Voici une petite bibliographie pour ceux qui souhaitent approfondir l’histoire des réseaux de neurones, mais aussi pour ceux qui souhaitent comprendre les concepts de base qui ont conduit à l’architecture actuelle des LLM :

  • Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks. (ImageNet images/eq70N.png Alexnet)
  • Chung, J., and al. (2014). (Opensource disponible sur arXiv) Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling.

  • Simonyan...

Le "Légo" des réseaux neuronaux - CNN et compagnons

Les heuristiques qui suivent sont sans doute les plus partagées par les praticiens du Machine Learning moderne au travers de frameworks comme TensorFlow, PyTorch et Keras. Nous avons organisé cette section comme une suite de petits synopsis des scénarii de constructions permettant d’agencer les différentes briques utilisées actuellement dans la construction de réseaux neuronaux, y compris dans la construction des LLM comme chatGPT que nous détaillerons dans un autre chapitre.

Les réseaux neuronaux tels que nous les construisons aujourd’hui sont organisés comme des successions de couches, ce seront les " briques " dont nous vous allons vous décrire l’usage et l’agencement.

Entre deux couches de neurones, on s’est donné la capacité d’appliquer des traitements de transformation qui utilisent et transforment les résultats de la couche précédente ou la structuration des données de la couche précédente.

Par convention, dans certains frameworks, on a pris l’habitude de décrire également les fonctions d’activation comme des couches intermédiaires. Notez bien que ce n’est qu’une convention de notation pour des fonctions comme Relu ou tangente hyperbolique, qui sont appliquées à la sommation des entrées d’un neurone pondérée par les poids des liens entre ce neurone et les neurones précédents. En effet, dans la réalité, ces transformations sont effectuées au sein même de chaque neurone et pas en sortie de l’ensemble de la couche !

La convention consistant à décrire la fonction d’activation softmax comme une couche est plus proche de la réalité, car cette fonction d’activation n’en est pas vraiment une : elle agrège le résultat de la production de plusieurs neurones.

Notez bien qu’avant de pouvoir être traitées par ces réseaux neuronaux, toutes les données ont été transformées en valeurs numériques, si ce n’était pas déjà leurs cas. Par exemple, les phrases d’un document sont devenues des vecteurs représentant...