Client

Personal work

Date

2024

Description

3D interactive and adaptative Neural Network

Tools

From scratch
No items found.

Visualisation d’un réseau de neurones en 3D

Le développement d’un réseau de neurones fonctionnel et paramétrable en 3D permet de visualiser concrètement le fonctionnement d’un véritable réseau de neurones.
Cette représentation rend plus accessible la compréhension de l’apprentissage machine, à la base de la plupart des technologies modernes liées à l’intelligence artificielle.

1. Les neurones et les connexions

Dans le cerveau, les neurones sont des cellules qui traitent et transmettent l’information.
Chaque neurone est relié aux autres par des connexions appelées synapses.

Dans un réseau de neurones artificiels, ces neurones sont modélisés par des points dans l’espace, qui reçoivent, traitent, puis envoient de l’information.
Les connexions entre ces neurones sont représentées par des lignes qui transmettent des valeurs numériques — un peu comme des signaux.

2. Les poids synaptiques

Toutes les connexions n’ont pas la même importance.
Dans le cerveau, une synapse peut être plus ou moins forte.
En informatique, on parle alors de poids synaptique : un nombre associé à chaque connexion, indiquant l’importance de l’information qu’elle transporte.

Un poids plus élevé signifie que la connexion est forte et que son influence dans le calcul du réseau est plus déterminante.

3. Comment les réseaux apprennent : l’entraînement

Un réseau de neurones apprend en ajustant ses poids synaptiques.
Pour cela, on l’entraîne à partir d’exemples — par exemple, des images de chats et de chiens.

À chaque exemple, le réseau fait une prédiction (il dit si c’est un chat ou un chien).
Au début, il se trompe souvent, mais en analysant ses erreurs, il apprend progressivement à améliorer ses résultats.

4. La rétropropagation du gradient

Quand le réseau se trompe, il doit comprendre et comment ajuster ses poids pour s’améliorer.
C’est là qu’intervient la rétropropagation du gradient : un algorithme qui corrige les poids du réseau en fonction des erreurs commises.

Concrètement, on calcule l’impact de chaque connexion sur l’erreur globale, puis on ajuste les poids pour réduire cette erreur.
C’est un peu comme si le réseau se disait :

« Cette connexion doit être renforcée la prochaine fois ! »

  1. Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. Disponible en ligne : Nature (article). Nature+1
  2. Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408. (Classique fondateur du perceptron). semanticscholar.org
  3. van der Maaten, L., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9, 2579–2605. (Technique très utilisée pour la visualisation de données et d’embeddings). PDF et page JMLR. jmlr.org+1
  4. Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word representations in vector space. arXiv:1301.3781. (Word2Vec — embeddings de mots). arXiv+1
  5. Zeiler, M. D., & Fergus, R. (2014). Visualizing and understanding convolutional networks. In European Conference on Computer Vision (ECCV) — Proceedings (pp. 818–833). (Méthodes de visualisation des activations / filtres). Versions PDF / arXiv disponibles. arXiv+1
  6. Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv:1412.6980. (Algorithme d’optimisation largement utilisé pour entraîner des réseaux). arXiv+1
  7. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (Manuel de référence couvrant théorie, architectures, optimisation et bonnes pratiques). Version en ligne : deeplearningbook.org. deeplearningbook.org
  8. Smilkov, D., Thorat, N., Nicholson, C., Reif, E., Viégas, F. B., & Wattenberg, M. (2016). Embedding Projector: Interactive visualization and interpretation of embeddings. arXiv:1611.05469. (Outil et article décrivant le Projector de TensorBoard). arXiv+1

Crédits techniques et ressources (librairies, outils et dépôts GitHub / arXiv)

Librairies 3D / visualisation

  • three.js — JavaScript 3D librarymrdoob/three.js (GitHub). Utilisé pour la visualisation 3D interactive dans le navigateur. GitHub+1
    https://github.com/mrdoob/three.js

Visualiseurs de modèles / embeddings

  • TensorBoard — Embedding Projector / Projector (web app & plugin) — outil interactif pour visualiser embeddings (PCA, t-SNE, etc.). Documentation et webapp. projector.tensorflow.org+1
    https://projector.tensorflow.org (Embedding Projector)
  • Netron — visualiser d’architectures de modèleslutzroeder/netron (GitHub & app). Pratique pour inspecter des réseaux exportés (.onnx, .pb, .h5...). GitHub+1
    https://github.com/lutzroeder/netronhttps://netron.app

Code & implémentations (références / utilitaires)

  • Word2Vec (Mikolov et al.) — code & article — implémentations et articles originels pour embeddings de mots. arXiv+1
  • t-SNE — implémentations et ressources — page officielle et implémentations (van der Maaten). FAQ et implémentations (C/JS/Python). Laurens van der Maaten+1

Optimisation et algorithmes

  • Adam optimizer (Kingma & Ba, 2014) — article arXiv et code sorgent souvent inclus dans frameworks (TensorFlow / PyTorch). arXiv+1