{"id":674,"date":"2026-10-09T16:56:57","date_gmt":"2026-10-09T14:56:57","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=674"},"modified":"2026-10-14T17:32:28","modified_gmt":"2026-10-14T15:32:28","slug":"qu-est-ce-qu-un-reseau-profond","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/deep-learning\/qu-est-ce-qu-un-reseau-profond\/","title":{"rendered":"R\u00e9seau profond : l&rsquo;anatomie d&rsquo;une pile de couches"},"content":{"rendered":"<p><\/p>\n<p>Envoie une question \u00e0 un <a href=\"\/blog\/inference\/qu-est-ce-qu-un-llm\/\" title=\"grand mod\u00e8le de langage\">grand mod\u00e8le de langage<\/a> : avant que le premier mot de la r\u00e9ponse apparaisse, ta phrase a travers\u00e9 des dizaines, parfois des centaines de couches empil\u00e9es. Chacune reprend ce que la pr\u00e9c\u00e9dente a produit et le transforme un peu. Cette pile s&rsquo;appelle un r\u00e9seau profond. Tu vas voir comment elle est construite, ce qui change d&rsquo;un \u00e9tage \u00e0 l&rsquo;autre, ce qui l&#8217;emp\u00eache de s&rsquo;\u00e9crouler, et pourquoi on peut aussi la tailler.<\/p>\n<p><strong>Sommaire<\/strong><\/p>\n<ul>\n<li><a href=\"#l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/a><\/li>\n<li><a href=\"#trois-etages-dont-un-repete-des-centaines-de-fois\">Trois \u00e9tages, dont un r\u00e9p\u00e9t\u00e9 des centaines de fois<\/a><\/li>\n<li><a href=\"#la-taille-du-vecteur-change-d-une-couche-a-l-autre\">La taille du vecteur change d&rsquo;une couche \u00e0 l&rsquo;autre<\/a><\/li>\n<li><a href=\"#pourquoi-empiler-plutot-qu-elargir\">Pourquoi empiler plut\u00f4t qu&rsquo;\u00e9largir<\/a><\/li>\n<li><a href=\"#ce-qui-empeche-la-pile-de-s-ecrouler\">Ce qui emp\u00eache la pile de s&rsquo;\u00e9crouler<\/a><\/li>\n<li><a href=\"#deux-reflexes-a-corriger\">Deux r\u00e9flexes \u00e0 corriger<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Un r\u00e9seau profond se lit en trois \u00e9tages : <strong>une entr\u00e9e, une pile cach\u00e9e, une sortie<\/strong>.<\/li>\n<li>Dans un grand mod\u00e8le de langage, <strong>bloc central r\u00e9p\u00e9t\u00e9 des dizaines de fois<\/strong>.<\/li>\n<li>D&rsquo;une couche \u00e0 l&rsquo;autre, <strong>la taille des vecteurs change<\/strong> : elle grandit pour du texte, elle diminue pour des images.<\/li>\n<li>Empiler des couches <strong>exploite mieux les param\u00e8tres<\/strong> que de les entasser au m\u00eame niveau.<\/li>\n<li>Des raccourcis et une normalisation <strong>gardent la pile entra\u00eenable<\/strong>, et l&rsquo;on peut ensuite en retirer des morceaux.<\/li>\n<\/ul>\n<h2 id=\"trois-etages-dont-un-repete-des-centaines-de-fois\">Trois \u00e9tages, dont un r\u00e9p\u00e9t\u00e9 des centaines de fois<\/h2>\n<p>Ouvre un grand mod\u00e8le de langage : son corps empile <strong>des dizaines \u00e0 des centaines de blocs transformeurs<\/strong>, au c\u0153ur d&rsquo;un r\u00e9seau \u00e0 trois sortes de couches. \u00c0 l&rsquo;entr\u00e9e, la couche d&#8217;embedding prend des tokens et renvoie des <a href=\"\/blog\/rag\/que-sont-les-embeddings\/\" title=\"embeddings\">embeddings<\/a>, c&rsquo;est-\u00e0-dire des vecteurs de nombres. Au milieu, les blocs transformeurs sont les couches cach\u00e9es : ce sont eux qui produisent la pr\u00e9diction. \u00c0 la sortie, la t\u00eate de mod\u00e9lisation du langage convertit ce que les blocs ont calcul\u00e9 en un vecteur de logits, un par token du vocabulaire.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef470b8d56&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef470b8d56\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1067\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-scaled.png\" alt=\"Deux rang\u00e9es de bo\u00eetes : en haut, embedding des tokens, bloc transformeur r\u00e9p\u00e9t\u00e9 des dizaines \u00e0 centaines de fois, t\u00eate de langage, un logit par token ; en bas, le contenu d'un bloc : normalisation, attention multi-t\u00eates, r\u00e9seau feed-forward\" class=\"wp-image-286\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-300x125.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-1024x427.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-768x320.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-1536x640.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-2048x853.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Regarde la bo\u00eete orange de la rang\u00e9e du haut : c&rsquo;est la seule qui se r\u00e9p\u00e8te, et c&rsquo;est elle qui donne sa profondeur au r\u00e9seau. La rang\u00e9e du bas l&rsquo;ouvre : normalisation, attention, puis un r\u00e9seau feed-forward, que le sch\u00e9ma d\u00e9signe comme porteur de l&rsquo;essentiel des poids.<\/figcaption><\/figure>\n\n\n<p>Cette derni\u00e8re remarque se v\u00e9rifie en comptant. Le feed-forward est un perceptron multicouche, et ses sous-couches lin\u00e9aires forment <strong>la majorit\u00e9 des poids entra\u00eenables<\/strong> d&rsquo;un mod\u00e8le de langage, devant les sous-couches d&rsquo;attention. Normalisations et fonctions d&rsquo;activation, elles, restent n\u00e9gligeables dans le total.<\/p>\n<p>Le mot \u00ab profond \u00bb compte donc ces blocs cach\u00e9s empil\u00e9s les uns derri\u00e8re les autres. Une pile de deux ou trois couches et une pile de cent couches ob\u00e9issent au m\u00eame plan ; seule change la hauteur.<\/p>\n<h2 id=\"la-taille-du-vecteur-change-d-une-couche-a-l-autre\">La taille du vecteur change d&rsquo;une couche \u00e0 l&rsquo;autre<\/h2>\n<p>Chaque couche cach\u00e9e produit une sortie que la suivante lit. Cette sortie est une repr\u00e9sentation interne des donn\u00e9es, et l&rsquo;une de ses caract\u00e9ristiques essentielles est sa <strong>dimensionnalit\u00e9<\/strong>, autrement dit le nombre de valeurs que contient chaque vecteur. Or cette taille ne reste pas fig\u00e9e du d\u00e9but \u00e0 la fin de la pile.<\/p>\n<p>Pour du texte, les repr\u00e9sentations internes l&rsquo;<strong>augmentent<\/strong> : des morceaux de texte deviennent des vecteurs de centaines ou de milliers de nombres, assez larges pour capter le sens. Pour des mod\u00e8les d&rsquo;images, c&rsquo;est l&rsquo;inverse : elles la <strong>r\u00e9duisent<\/strong>, en passant de millions de pixels \u00e0 une taille que l&rsquo;on sait manipuler.<\/p>\n<p>Certains r\u00e9seaux se sp\u00e9cialisent dans cette transformation. Un encodeur prend une entr\u00e9e, texte ou image, et en fait une repr\u00e9sentation interne enrichie d&rsquo;informations et de sens. Un d\u00e9codeur s&rsquo;en sert pour g\u00e9n\u00e9rer une sortie, texte ou image. Les mod\u00e8les de langage actuels sont des d\u00e9codeurs seuls ; les mod\u00e8les \u00e0 encodeur seul, dont la famille <a href=\"\/blog\/deep-learning\/le-modele-bert\/\" title=\"BERT\">BERT<\/a>, sont devenus rares.<\/p>\n<p>Whisper, tr\u00e8s utilis\u00e9 pour transcrire de l&rsquo;audio, suit le sch\u00e9ma complet : un encodeur traite le son, un d\u00e9codeur g\u00e9n\u00e8re les tokens de texte. Et comme <strong>les r\u00e9seaux sont composables<\/strong>, on peut en combiner plusieurs dans un seul mod\u00e8le ou les encha\u00eener en pipeline.<\/p>\n<p>Dans le code, tout cela se r\u00e9sume \u00e0 quelques nombres. Voici les r\u00e9glages d&rsquo;un classifieur de texte : <code>no_layers<\/code> fixe le nombre de couches empil\u00e9es, <code>embedding_dim<\/code> la taille des vecteurs \u00e0 l&rsquo;entr\u00e9e, <code>hidden_dim<\/code> celle de l&rsquo;\u00e9tat cach\u00e9, c&rsquo;est-\u00e0-dire de ce que chaque couche transmet \u00e0 la suivante.<\/p>\n<pre><code># Hyperparameters\nno_layers = 3\nvocab_size = len(vocab) + 1  # extra 1 for padding\nembedding_dim = 300\noutput_dim = 1\nhidden_dim = 256\n# Initialize the model\nmodel = SentimentRNN(no_layers, vocab_size, hidden_dim,\n                     embedding_dim, drop_prob=0.5)\n<\/code><\/pre>\n<p><code>vocab<\/code> est le vocabulaire des mots connus (le \u00ab +1 \u00bb r\u00e9serve une place au remplissage), et <code>SentimentRNN<\/code> assemble embeddings, couches r\u00e9currentes et sortie. Lis les tailles dans l&rsquo;ordre : les mots entrent sous forme de vecteurs de 300 nombres, la pile travaille avec 256 unit\u00e9s, et <code>output_dim = 1<\/code> indique que tout se termine par <strong>un seul nombre<\/strong>, dont on tire une probabilit\u00e9. La profondeur, ici trois couches, n&rsquo;est qu&rsquo;un r\u00e9glage parmi d&rsquo;autres.<\/p>\n<h2 id=\"pourquoi-empiler-plutot-qu-elargir\">Pourquoi empiler plut\u00f4t qu&rsquo;\u00e9largir<\/h2>\n<p>On pourrait imaginer une seule couche tr\u00e8s large plut\u00f4t qu&rsquo;une pile. Le constat est pourtant net : les r\u00e9seaux profonds sont utiles parce que <strong>davantage de couches utilisent plus efficacement leurs param\u00e8tres<\/strong> et encodent plus de sens dans leurs \u00e9tats cach\u00e9s. \u00c0 budget de param\u00e8tres comparable, r\u00e9partir le travail sur plusieurs \u00e9tages rapporte plus.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> Pense \u00e0 une cha\u00eene de montage : au lieu d&rsquo;un poste gigantesque qui fabriquerait l&rsquo;objet d&rsquo;un seul geste, chaque poste reprend la pi\u00e8ce du pr\u00e9c\u00e9dent et n&rsquo;ajoute qu&rsquo;une petite transformation.<\/p>\n<\/blockquote>\n<p>Cette souplesse a une base th\u00e9orique. Un r\u00e9seau de neurones peut, en th\u00e9orie, repr\u00e9senter n&rsquo;importe quelle fonction complexe : c&rsquo;est le th\u00e9or\u00e8me d&rsquo;approximation universelle. En pratique, on lui reconna\u00eet plusieurs qualit\u00e9s : c&rsquo;est un approximateur de fonctions tr\u00e8s expressif, qui repr\u00e9sente des relations non lin\u00e9aires complexes ; il passe bien \u00e0 l&rsquo;\u00e9chelle sur de grands espaces d&rsquo;entr\u00e9e ; il g\u00e9n\u00e9ralise \u00e0 des situations jamais rencontr\u00e9es.<\/p>\n<p>Dernier atout : il accepte des donn\u00e9es de natures vari\u00e9es (capteurs, images, vid\u00e9o) <strong>sans ing\u00e9nierie de caract\u00e9ristiques<\/strong> \u00e9crite \u00e0 la main. La pile s&rsquo;occupe elle-m\u00eame de fabriquer, \u00e9tage apr\u00e8s \u00e9tage, les repr\u00e9sentations utiles.<\/p>\n<h2 id=\"ce-qui-empeche-la-pile-de-s-ecrouler\">Ce qui emp\u00eache la pile de s&rsquo;\u00e9crouler<\/h2>\n<p>Empiler cent blocs ne marche pas tout seul : il faut que l&rsquo;information et l&rsquo;erreur circulent d&rsquo;un bout \u00e0 l&rsquo;autre. Dans le bloc transformeur, deux ingr\u00e9dients s&rsquo;en chargent, en plus du r\u00e9seau feed-forward dont voici la formule :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 19px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-684a7fdc0ce31e1c21c0c4bb244d61c8_l3.png\" height=\"19\" width=\"285\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#109;&#97;&#116;&#104;&#114;&#109;&#123;&#70;&#70;&#78;&#125;&#40;&#120;&#41;&#61;&#92;&#109;&#97;&#120;&#40;&#48;&#44;&#120;&#87;&#95;&#49;&#43;&#98;&#95;&#49;&#41;&#87;&#95;&#50;&#43;&#98;&#95;&#50;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Lis-la de gauche \u00e0 droite. Le vecteur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ede05c264bba0eda080918aaa09c4658_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"10\" style=\"vertical-align: 0px;\"\/> subit une premi\u00e8re transformation lin\u00e9aire (matrice <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b600ad54ba978d03a9f00d86823f46ea_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"23\" style=\"vertical-align: -3px;\"\/>, biais <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-09babc59bd325328ae8045c729d0cd72_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#98;&#95;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"14\" style=\"vertical-align: -3px;\"\/>), puis passe dans <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-1e47eaec08bc3a895a82cd5ac4ce20c4_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#97;&#120;&#40;&#48;&#44;&#92;&#99;&#100;&#111;&#116;&#41;\" title=\"Rendered by QuickLaTeX.com\" height=\"19\" width=\"68\" style=\"vertical-align: -5px;\"\/>, la fonction d&rsquo;activation qui met \u00e0 z\u00e9ro les valeurs n\u00e9gatives, avant une seconde transformation lin\u00e9aire (matrice <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-a1aa42bd1d0d89a88d9c7256b4cc6f8f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#50;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"24\" style=\"vertical-align: -3px;\"\/>, biais <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-cf89aba8e4f23117f0df74592da6e73d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#98;&#95;&#50;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"15\" style=\"vertical-align: -3px;\"\/>). Ce feed-forward ajoute une \u00e9tape de non-lin\u00e9arit\u00e9 \u00e0 l&rsquo;<a href=\"\/blog\/deep-learning\/que-sont-les-couches-d-auto-attention\/\" title=\"auto-attention\">auto-attention<\/a> et <strong>se parall\u00e9lise facilement<\/strong>, ce qui explique son choix.<\/p>\n<p>Premier ingr\u00e9dient : les <strong>connexions r\u00e9siduelles<\/strong>. Elles font passer l&rsquo;information entre deux couches sans la faire traverser la transformation interm\u00e9diaire. D\u00e9velopp\u00e9es d&rsquo;abord pour les r\u00e9seaux convolutifs, elles cr\u00e9ent un raccourci qui aide le gradient \u00e0 redescendre vers les couches basses. Dans le transformeur, il y en a autour de l&rsquo;attention et autour du feed-forward : l&rsquo;entr\u00e9e est simplement additionn\u00e9e \u00e0 la sortie.<\/p>\n<p>Elles lissent aussi la surface de la fonction de perte, ce qui aide le mod\u00e8le \u00e0 trouver un meilleur minimum sans rester coinc\u00e9 dans un minimum local. L&rsquo;effet est spectaculaire sur les visualisations de paysage de perte publi\u00e9es par Li et ses coll\u00e8gues.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Pi\u00e8ge<\/strong> Une couche de plus n&rsquo;est pas une garantie de plus : sans raccourci, c&rsquo;est le signal d&rsquo;erreur qui peine \u00e0 redescendre vers les \u00e9tages du bas.<\/p>\n<\/blockquote>\n<p>Second ingr\u00e9dient : la <strong>normalisation de couche<\/strong>, qui facilite l&rsquo;entra\u00eenement parce qu&rsquo;elle garde les valeurs des couches cach\u00e9es dans une plage donn\u00e9e. Pour chaque vecteur, on calcule la moyenne et l&rsquo;\u00e9cart-type, puis on le met \u00e0 l&rsquo;\u00e9chelle ; c&rsquo;est une alternative \u00e0 la normalisation par lots.<\/p>\n<h2 id=\"deux-reflexes-a-corriger\">Deux r\u00e9flexes \u00e0 corriger<\/h2>\n<h3>\u00ab Chaque couche de la pile est indispensable \u00bb<\/h3>\n<p>Pas forc\u00e9ment. Une fois un mod\u00e8le entra\u00een\u00e9, on peut l&rsquo;all\u00e9ger par l&rsquo;<strong>\u00e9lagage<\/strong> : supprimer des poids, des connexions, voire des couches enti\u00e8res. La version non structur\u00e9e est la plus simple : on met \u00e0 z\u00e9ro les connexions dont la valeur est sous un seuil, car les poids d\u00e9j\u00e0 proches de z\u00e9ro contiennent peu d&rsquo;information. Revers : elle peut cr\u00e9er des mod\u00e8les creux, dont l&rsquo;inf\u00e9rence est sous-optimale.<\/p>\n<p>L&rsquo;\u00e9lagage structur\u00e9 est plus sophistiqu\u00e9. Il \u00e9limine des neurones, des groupes de neurones, des couches ou des blocs entiers, en cherchant \u00e0 <strong>pr\u00e9server la performance<\/strong> tout en \u00e9quilibrant pr\u00e9cision et compression. La pile n&rsquo;est donc pas un monolithe : on peut en retirer des morceaux.<\/p>\n<h3>\u00ab Plus on entra\u00eene, mieux c&rsquo;est \u00bb<\/h3>\n<p>Suis, \u00e0 chaque it\u00e9ration, l&rsquo;erreur sur les donn\u00e9es d&rsquo;entra\u00eenement et sur des donn\u00e9es de validation mises de c\u00f4t\u00e9. La premi\u00e8re d\u00e9cro\u00eet sans cesse. La seconde commence par baisser, puis <strong>se remet \u00e0 monter<\/strong> : c&rsquo;est le signe que le r\u00e9seau apprend les particularit\u00e9s de son jeu d&rsquo;entra\u00eenement plut\u00f4t que la structure g\u00e9n\u00e9rale des donn\u00e9es.<\/p>\n<p>L&rsquo;arr\u00eat pr\u00e9coce en tire la cons\u00e9quence : on interrompt l&rsquo;entra\u00eenement d\u00e8s que l&rsquo;erreur de validation cesse de s&rsquo;am\u00e9liorer. \u00c0 chaque it\u00e9ration, on ne garde le mod\u00e8le que s&rsquo;il bat le meilleur obtenu jusque-l\u00e0, et l&rsquo;on s&rsquo;arr\u00eate d\u00e8s que ce n&rsquo;est plus le cas. Sa simplicit\u00e9 en fait une seconde ligne de d\u00e9fense, sans toucher \u00e0 la fonction objectif.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Un r\u00e9seau profond, c&rsquo;est un bloc qu&rsquo;on r\u00e9p\u00e8te entre une entr\u00e9e et une sortie, avec une taille de vecteur qui \u00e9volue et des raccourcis qui gardent l&rsquo;ensemble stable. Sa hauteur se r\u00e8gle, se taille, et se surveille pendant l&rsquo;entra\u00eenement.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Entr\u00e9e, bloc r\u00e9p\u00e9t\u00e9 des dizaines de fois, sortie : d\u00e9couvre ce que contient un r\u00e9seau profond, pourquoi on empile les couches et ce qui tient la pile.<\/p>\n","protected":false},"author":1,"featured_media":673,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-674","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deep-learning"],"_links":{"self":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/comments?post=674"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/674\/revisions"}],"predecessor-version":[{"id":801,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/674\/revisions\/801"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/673"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}