// Block de stabilisation OJS pour le projet Quarto_stabilize =true
2.1 Perspective Historique
La vision par ordinateur s’est imposée comme le pont technologique entre la perception biologique et l’intelligence artificielle. En tant qu’architecte système, il ne faut pas voir cette discipline comme un simple algorithme de tri, mais comme une tentative complexe d’extraction automatisée et de compréhension sémantique à partir de flux visuels purs (Network Optix 2024).
Fukushima
Le Neocognitron
Concept : Fukushima propose une architecture hiérarchique utilisant des “champs récepteurs” locaux. C’est le précurseur direct des CNN modernes.
Yann LeCun
La Consécration Industrielle
Application : Stabilisation avec le modèle LeNet, utilisé par la poste américaine pour lire automatiquement les codes postaux. Première preuve de viabilité à grande échelle (Network Optix 2024).
Équipe Hinton
La Révolution AlexNet
Basculement : AlexNet pulvérise les algorithmes traditionnels au concours ImageNet, prouvant que la profondeur (Deep Learning) est la clé (Wikipedia contributors 2026a).
2.1.1 La Rupture Stratégique
Avant le Deep Learning, les ingénieurs devaient créer mathématiquement leurs propres filtres (ex: filtre de Sobel pour les bords verticaux). Cette approche, le Feature Engineering manuel, était extrêmement limitée par l’intuition humaine.
La rupture fondamentale des Réseaux Convolutifs (CNN) réside dans le passage aux filtres appris par optimisation. Le réseau découvre par essai-erreur quels filtres mathématiques sont les plus pertinents pour extraire les caractéristiques d’une image (Wikipedia contributors 2026b).
2.2 🏗️ Fondamentaux et Supériorité des CNN sur les Modèles Traditionnels
Pourquoi ne pas simplement utiliser un réseau de neurones classique (MLP - Multi-Layer Perceptron) pour reconnaître des objets ? La réponse tient en un mot : le fléau de la dimensionnalité(Rosebrock 2021).
2.2.1 ❌ L’échec des réseaux classiques (MLP)
Dans un réseau classique, chaque neurone est connecté à tous les pixels. Imaginons une image de 250x250 pixels en couleur (RGB). L’explosion des paramètres rend l’apprentissage instable, lent et gourmand en mémoire vive
viewof monitor_dim = {const m = ui.org.monitor({ header:"Comparatif d'Architecture" }); m.params= m.addVersus("Poids du Réseau", mlp_total_weights, cnn_total_weights, {labelA:"MLP (Full)",labelB:"CNN (Filtres)",colorA: theme.red,colorB: theme.green }); m.status= m.addStatus("État de la Mémoire","Calcul...","info");return m;}
// Real-time updates for the monitor{// Explicitly depend on weights and the monitor's DOM elementconst weights = mlp_total_weights;const monitor = viewof monitor_dim;const analysis = weights >100000000?"Incalculable sur PC (Saturation)": weights >1000000?"Lent et Inefficace":"Stable et Léger";const state = weights >100000000?"danger": weights >1000000?"warning":"success";if (monitor && monitor.params&& monitor.status) { monitor.params.update(weights, cnn_total_weights); monitor.status.update(analysis, state); }}
Connectivité locale : Un neurone ne regarde qu’une petite zone limitée (champ récepteur), imitant le cortex visuel humain.
Partage de poids : Le réseau utilise le même filtre sur toute la surface, réduisant les paramètres et détectant un motif n’importe où.
Arrangement spatial en 3D : Les données circulent en tenseurs (Largeur x Hauteur x Profondeur des couleurs/filtres) (Rosebrock 2021).
2.3 🔍 Anatomie Technique d’un CNN
Un CNN transforme des pixels bruts en prédictions sémantiques.
2.3.1 🌀 Convolution et Pooling
La Couche de Convolution réalise un produit de Frobenius entre un noyau glissant et l’entrée pour extraire des traits. La Couche de Pooling (ex: Max Pooling) réduit la résolution spatiale pour contrôler le surapprentissage tout en conservant le signal le plus fort.
{const gridInValues = [12,20,30,0,8,12,2,0,34,70,37,4,112,100,25,12];const groupNames = ["Rouge","Bleue","Verte","Jaune"];const getGroup = (i) => {if ([0,1,4,5].includes(i)) return0;if ([2,3,6,7].includes(i)) return1;if ([8,9,12,13].includes(i)) return2;return3; };if (poolGroup ===-1) {return ui.card(md`💡 **Astuce :** Cliquez sur une zone colorée pour comprendre comment le chiffre est extrait.`, { title:"Fonctionnement",status:"debug" }); }const values = gridInValues.filter((_, i) =>getGroup(i) === poolGroup);const maxVal =Math.max(...values);const status = ["danger","info","success","warning"][poolGroup];return ui.card(md`Dans la zone **${groupNames[poolGroup]}**, on compare {${values.join(", ")}}.Le plus grand est **${maxVal}**, c'est lui qui survit au Pooling ! `, { title:"Détail du Calcul",status: status });}
2.3.2 📐 Configuration Spatiale
Le dimensionnement d’un CNN repose sur une configuration géométrique stricte.
Stride (Pas) : Définit le saut du filtre. Un stride > 1 agit comme un compresseur de données.
Padding : Ajout de pixels aux bordures pour éviter la perte d’information sur les contours.
Règle d'or de l'Architecte : La Formule de Sortie
Pour une dimension d’entrée W, un filtre F, un padding P et un stride S, la taille de sortie est : \text{Sortie} = \frac{W - F + 2P}{S} + 1 Si le résultat n’est pas un entier, la configuration est invalide !
viewof monitor_arch = {const m = ui.org.monitor({ header:"Diagnostic Géométrique" }); m.status= m.addStatus("Validation","Calcul en cours...","info"); m.output= m.addValue("Dimension de Sortie","0 x 0", { comment:"Taille de la carte d'activation",color: theme.blue });return m;}
// Logic for real-time updates{const status = is_valid_arch ?"success":"danger";const message = is_valid_arch ?"Configuration Valide. Les neurones se répartissent parfaitement.":"ERREUR : Le filtre va déborder ! Ajustez le Padding ou le Stride.";const monitor = viewof monitor_arch;if (monitor && monitor.status&& monitor.output) { monitor.status.update(message, status); monitor.output.update(`${output_size} x ${output_size} px`); }}
2.4 Étude de Cas
Si l’on devait dater le début de l’ère moderne de l’IA, ce serait 2012 avec le réseau AlexNet qui a pulvérisé les modèles traditionnels au concours ImageNet (Wikipedia contributors 2026a).
L’adoption de ReLU : Contourne le vanishing gradient, entraînement beaucoup plus rapide (Gurucharan 2026).
L’invention du Dropout : Technique contre le surapprentissage.
L’entraînement Multi-GPU : Modèle scindé sur deux puces NVIDIA GTX 580 car trop lourd pour la VRAM de l’époque.
Anecdote d'Architecte : L'énigme des 224 pixels
Les tutoriels disent qu’AlexNet prend des images de 224x224. Mais avec un filtre de 11, un stride de 4 et un padding de 0, la formule (vue au-dessus) ne tombe pas juste ! En réalité, le réseau recadrait secrètement à 227x227 pixels pour satisfaire les mathématiques (Rosebrock 2021).
2.5 🚨 Défis Critiques
Un CNN moderne possède des millions de paramètres. S’il s’entraîne trop longtemps, il fait du Surapprentissage (Overfitting) : il mémorise par cœur le Train set, mais échoue sur le Test set (Great Learning Editorial Team 2025; Nerchuko Academy 2026).
2.5.1 🔌 Le Dropout (Le Décrochage)
Le Dropout désactive aléatoirement un certain pourcentage de neurones à chaque passage pour forcer le réseau à répartir la connaissance (Wikipedia contributors 2026b).
viewof monitor_dropout = {const m = ui.org.monitor({ header:"Diagnostic d'Apprentissage" }); m.status= m.addStatus("Régime","Analyse en cours...","info"); m.error= m.addValue("Erreur Finale","0.00", { comment:"Validation Loss à l'époque 50",color: theme.red });return m;}
// Logic for real-time updates{const status = drp_rate <0.2?"danger": drp_rate >=0.25&& drp_rate <=0.35?"success": drp_rate >=0.7?"warning":"info";const message = drp_rate <0.2?"SURAPPRENTISSAGE (Overfitting) : Le réseau mémorise trop, les courbes divergent.": drp_rate >=0.25&& drp_rate <=0.35?"RÉGIME OPTIMAL : Généralisation maximale, les erreurs stagnent au plus bas.": drp_rate >=0.7?"SOUS-APPRENTISSAGE (Underfitting) : Trop de neurones coupés, le réseau stagne.":"Apprentissage stable, mais l'optimisation peut être affinée.";const monitor = viewof monitor_dropout;if (monitor && monitor.status&& monitor.error) { monitor.status.update(message, status); monitor.error.update(calc_val_loss(drp_rate,50).toFixed(2)); }}
2.5.2 🖼️ L’Augmentation de Données (Data Augmentation)
La meilleure façon de combattre le surapprentissage est d’appliquer des transformations aléatoires à vos images d’entraînement à la volée. Le modèle voit une image légèrement différente à chaque fois (Wikipedia contributors 2026b).
{const m = ui.org.monitor({ header:"Analyse Machine" }); m.addStatus("Interprétation","Pour la machine, l'information matricielle de ces variantes est totalement différente !","warning");return m;}
2.6 Horizon Actuel
2.6.1 Le Nouveau Challenger
Contrairement aux CNN qui regardent l’image petit bout par petit bout, les Vision Transformers (ViT) découpent l’image en “patchs” et utilisent un mécanisme d’attention globale. Ils comparent chaque patch avec tous les autres simultanément (Network Optix 2024).
Observez la différence de philosophie. À gauche, le CNN scanne laborieusement l’image. À droite, le Transformer connecte toutes les informations simultanément.
2.7 🎭 Les Réseaux Antagonistes Génératifs (GANs)
Si les CNN et les ViT excellent pour comprendre une image, les GANs (Generative Adversarial Networks) ont été les premiers à exceller pour en créer. Inventés en 2014 par Ian Goodfellow, les GANs reposent sur une idée brillante : mettre en compétition deux réseaux de neurones.
Le Générateur (Le Faussaire) : Il crée des images à partir de bruit aléatoire et essaie de les rendre les plus réalistes possibles.
Le Discriminateur (Le Policier) : Il reçoit à la fois de vraies images et des fausses images du Générateur, et doit deviner lesquelles sont réelles.
L’entraînement est un jeu du chat et de la souris : le générateur s’améliore pour tromper le discriminateur, et le discriminateur s’améliore pour ne plus se faire avoir.
viewof monitor_gan = {const m = ui.org.monitor({ header:"Analyse du Duel" }); m.status= m.addStatus("Équilibre de Nash","Initialisation...","info");return m;}
// Logic for real-time updates{const status = gan_epoch <30?"danger": gan_epoch <80?"warning":"success";const message = gan_epoch <30?"Le Faussaire produit du bruit informe. Le Policier gagne sans effort.": gan_epoch <80?"Le Faussaire commence à créer des formes. La compétition s'intensifie.":"Le Faussaire a réussi ! Les images sont réalistes, le Policier est trompé.";const monitor = viewof monitor_gan;if (monitor && monitor.status) { monitor.status.update(message, status); }}
Les GANs ont ouvert la voie aux “DeepFakes” et à la génération d’art avant d’être progressivement remplacés par les Modèles de Diffusion (comme Midjourney ou Stable Diffusion) qui sont plus stables à entraîner.
2.8 🌉 Conclusion et Transition
C’est d’ailleurs cette architecture Transformer qui a donné naissance à l’IA Générative et aux LLM. Les modèles ne se contentent plus de classifier des données, ils sont capables d’en créer de nouvelles.
---title: "👁️ Deep Learning & Vision"---```{ojs}//| echo: false//| output: false// Block de stabilisation OJS pour le projet Quarto_stabilize = true```{{< include _21_perspective.qmd >}}{{< include _22_fondamentaux.qmd >}}{{< include _23_anatomie.qmd >}}{{< include _24_alexnet.qmd >}}{{< include _25_overfitting.qmd >}}{{< include _26_applications.qmd >}}{{< include _27_gans.qmd >}}## 🌉 Conclusion et TransitionC'est d'ailleurs cette architecture Transformer qui a donné naissance à l'IA Générative et aux LLM. Les modèles ne se contentent plus de *classifier* des données, ils sont capables d'en *créer* de nouvelles. Ce changement de paradigme nous amène directement à notre **[Chapitre 3 : GenAI & NLP](../3_genai/index.qmd)** !