{"id":740,"date":"2026-10-09T18:54:02","date_gmt":"2026-10-09T16:54:02","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=740"},"modified":"2026-10-14T17:01:02","modified_gmt":"2026-10-14T15:01:02","slug":"l-entropie-croisee-binaire-bceloss","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/deep-learning\/l-entropie-croisee-binaire-bceloss\/","title":{"rendered":"Entropie crois\u00e9e binaire : ce que punit BCELoss"},"content":{"rendered":"<p><\/p>\n<p>Un mod\u00e8le de cr\u00e9dit regarde un client au solde de 1 000 &#36; et r\u00e9pond : \u00ab 0,6 % de probabilit\u00e9 de d\u00e9faut \u00bb. Si ce client fait d\u00e9faut malgr\u00e9 tout, comment noter cette r\u00e9ponse ? La perte d&rsquo;entropie crois\u00e9e binaire r\u00e9pond \u00e0 cette question, et PyTorch la range sous le nom <code>BCELoss<\/code>.<\/p>\n<p><!--TOC--><\/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=\"#une-reponse-a-deux-issues-d-ou-vient-la-formule\">Une r\u00e9ponse \u00e0 deux issues : d&rsquo;o\u00f9 vient la formule<\/a><\/li>\n<li><a href=\"#ce-que-la-perte-punit-la-confiance-fausse\">Ce que la perte punit : la confiance fausse<\/a><\/li>\n<li><a href=\"#un-client-a-0-6-de-risque-deux-pertes-tres-differentes\">Un client \u00e0 0,6 % de risque : deux pertes tr\u00e8s diff\u00e9rentes<\/a><\/li>\n<li><a href=\"#pourquoi-ne-pas-garder-l-erreur-quadratique\">Pourquoi ne pas garder l&rsquo;erreur quadratique<\/a><\/li>\n<li><a href=\"#ou-la-perte-se-branche-dans-pytorch\">O\u00f9 la perte se branche dans PyTorch<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Pour une r\u00e9ponse \u00e0 <strong>deux issues<\/strong>, la perte compare une probabilit\u00e9 pr\u00e9dite p \u00e0 une \u00e9tiquette y valant 0 ou 1.<\/li>\n<li>Sa formule est la <strong>vraisemblance de Bernoulli pass\u00e9e au logarithme<\/strong>, chang\u00e9e de signe.<\/li>\n<li>Elle punit fortement une <strong>confiance fausse<\/strong> : une probabilit\u00e9 proche de 0 pour une issue qui arrive fait exploser la perte.<\/li>\n<li>La correction des coefficients se r\u00e9duit \u00e0 <strong>l&rsquo;\u00e9cart entre probabilit\u00e9 pr\u00e9dite et \u00e9tiquette<\/strong>.<\/li>\n<li>Dans PyTorch, elle s&rsquo;\u00e9crit <code>nn.BCELoss()<\/code> et re\u00e7oit une sortie pass\u00e9e par une <a href=\"\/blog\/maths\/qu-est-ce-qu-une-sigmoide\/\" title=\"sigmo\u00efde\">sigmo\u00efde<\/a>, qui ram\u00e8ne tout entre 0 et 1.<\/li>\n<\/ul>\n<h2 id=\"une-reponse-a-deux-issues-d-ou-vient-la-formule\">Une r\u00e9ponse \u00e0 deux issues : d&rsquo;o\u00f9 vient la formule<\/h2>\n<p>La r\u00e9ponse suit une loi de Bernoulli : deux issues possibles, 0 ou 1, et le mod\u00e8le produit une probabilit\u00e9 p(X) de l&rsquo;issue 1 . Pour que p reste entre 0 et 1, on la fabrique avec la sigmo\u00efde :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 42px;\"><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-de471d9a35ab653d7aea0b888dc38eb6_l3.png\" height=\"42\" width=\"163\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#112;&#40;&#88;&#41;&#32;&#61;&#32;&#92;&#102;&#114;&#97;&#99;&#123;&#101;&#94;&#123;&#92;&#98;&#101;&#116;&#97;&#95;&#48;&#32;&#43;&#32;&#92;&#98;&#101;&#116;&#97;&#95;&#49;&#32;&#88;&#125;&#125;&#123;&#49;&#32;&#43;&#32;&#101;&#94;&#123;&#92;&#98;&#101;&#116;&#97;&#95;&#48;&#32;&#43;&#32;&#92;&#98;&#101;&#116;&#97;&#95;&#49;&#32;&#88;&#125;&#125;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef4735c11f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef4735c11f\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2100\" height=\"1500\" 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\/09\/b2_ch03_fonction_logistique_sigmoide.png\" alt=\"Courbe en S orange, born\u00e9e entre 0 et 1, compar\u00e9e \u00e0 une droite bleue en pointill\u00e9s qui sort de cet intervalle\" class=\"wp-image-110\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/09\/b2_ch03_fonction_logistique_sigmoide.png 2100w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/09\/b2_ch03_fonction_logistique_sigmoide-300x214.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/09\/b2_ch03_fonction_logistique_sigmoide-1024x731.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/09\/b2_ch03_fonction_logistique_sigmoide-768x549.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/09\/b2_ch03_fonction_logistique_sigmoide-1536x1097.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/09\/b2_ch03_fonction_logistique_sigmoide-2048x1463.png 2048w\" sizes=\"auto, (max-width: 2100px) 100vw, 2100px\" \/><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 courbe orange : elle ne sort jamais de l&rsquo;intervalle, ce qui permet de la lire comme une probabilit\u00e9. La droite bleue, elle, prend des valeurs qui n&rsquo;en sont pas.<\/figcaption><\/figure>\n\n\n<p>Pour une observation, la probabilit\u00e9 donn\u00e9e \u00e0 ce qui s&rsquo;est r\u00e9ellement pass\u00e9 vaut p si l&rsquo;\u00e9tiquette est y = 1, et 1 \u2212 p si y = 0. Une seule \u00e9criture couvre les deux cas : <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4290fcf52ec52fa866f7ca3607d633b5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;&#94;&#123;&#121;&#125;&#40;&#49;&#45;&#112;&#41;&#94;&#123;&#49;&#45;&#121;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"20\" width=\"96\" style=\"vertical-align: -5px;\"\/>. Quand y vaut 1, le second facteur dispara\u00eet ; quand il vaut 0, c&rsquo;est le premier qui dispara\u00eet.<\/p>\n<p>On prend ensuite le logarithme de cette quantit\u00e9 et on la change de signe : l&rsquo;<strong>entropie crois\u00e9e binaire<\/strong> est la valeur \u00e0 rendre petite. Pour une observation, elle vaut :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 22px;\"><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-6c1115337730c1bb15e0ae02a60ced08_l3.png\" height=\"22\" width=\"275\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#76;&#32;&#61;&#32;&#45;&#92;&#98;&#105;&#103;&#108;&#91;&#92;&#44;&#121;&#92;&#108;&#111;&#103;&#32;&#112;&#32;&#43;&#32;&#40;&#49;&#45;&#121;&#41;&#92;&#108;&#111;&#103;&#40;&#49;&#45;&#112;&#41;&#92;&#44;&#92;&#98;&#105;&#103;&#114;&#93;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<h2 id=\"ce-que-la-perte-punit-la-confiance-fausse\">Ce que la perte punit : la confiance fausse<\/h2>\n<p>Regarde les deux termes s\u00e9par\u00e9ment. Si y = 1, seul le terme <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-d67852d32f6af0c7fb0397f630b59942_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#45;&#92;&#108;&#111;&#103;&#32;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"51\" style=\"vertical-align: -4px;\"\/> compte. Quand p vaut presque 1, le logarithme est presque nul et la perte aussi : le mod\u00e8le a bien devin\u00e9. Quand p tombe vers 0, le logarithme plonge et <strong>la perte grimpe sans borne<\/strong>. Le second terme joue le m\u00eame r\u00f4le pour y = 0, avec <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-25ae9b548488a07106b1ed3181057538_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#49;&#45;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"39\" style=\"vertical-align: -4px;\"\/> \u00e0 la place de p.<\/p>\n<p>Ce principe rappelle celui de l&rsquo;entropie crois\u00e9e des mod\u00e8les de langage, o\u00f9 la perte se r\u00e9duit \u00e0 la probabilit\u00e9 du mot r\u00e9ellement observ\u00e9 . Ici, \u00e0 deux issues, c&rsquo;est la probabilit\u00e9 de l&rsquo;issue r\u00e9ellement arriv\u00e9e qui est jug\u00e9e.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Pi\u00e8ge<\/strong> La perte ne compte pas les bonnes r\u00e9ponses : elle mesure la probabilit\u00e9 donn\u00e9e \u00e0 la bonne r\u00e9ponse. Deux mod\u00e8les qui tranchent pareil peuvent avoir des pertes tr\u00e8s diff\u00e9rentes.<\/p>\n<\/blockquote>\n<p>Cette perte sert aussi \u00e0 corriger le mod\u00e8le. Pour la r\u00e9gression logistique, la d\u00e9riv\u00e9e de la perte par rapport \u00e0 un coefficient prend une forme tr\u00e8s simple : l&rsquo;\u00e9cart entre la probabilit\u00e9 pr\u00e9dite et l&rsquo;\u00e9tiquette, multipli\u00e9 par la valeur de la variable concern\u00e9e.<\/p>\n<h2 id=\"un-client-a-0-6-de-risque-deux-pertes-tres-differentes\">Un client \u00e0 0,6 % de risque : deux pertes tr\u00e8s diff\u00e9rentes<\/h2>\n<p>Reprenons les donn\u00e9es de d\u00e9faut de carte de cr\u00e9dit. Un solde de 1 000 &#36; donne une probabilit\u00e9 de d\u00e9faut de 0,6 %, un solde de 2 000 &#36; en donne 58,6 %. Prenons le client au solde de 1 000 &#36;, avec p = 0,006 . Le log d\u00e9signe ici le logarithme n\u00e9p\u00e9rien.<\/p>\n<p>Deux issues sont possibles :<\/p>\n<ul>\n<li>s&rsquo;il n&rsquo;a pas fait d\u00e9faut (y = 0), la perte vaut <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-0c26976c06545bd554fbc1a21aea2246_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#45;&#92;&#108;&#111;&#103;&#40;&#49;&#45;&#48;&#123;&#44;&#125;&#48;&#48;&#54;&#41;&#32;&#92;&#97;&#112;&#112;&#114;&#111;&#120;&#32;&#48;&#123;&#44;&#125;&#48;&#48;&#54;\" title=\"Rendered by QuickLaTeX.com\" height=\"19\" width=\"188\" style=\"vertical-align: -5px;\"\/> : presque rien ;<\/li>\n<li>s&rsquo;il a fait d\u00e9faut (y = 1), elle vaut <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ea1ddd77bdb53af3f88b351f381aa6cb_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#45;&#92;&#108;&#111;&#103;&#40;&#48;&#123;&#44;&#125;&#48;&#48;&#54;&#41;&#32;&#92;&#97;&#112;&#112;&#114;&#111;&#120;&#32;&#53;&#123;&#44;&#125;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"19\" width=\"138\" style=\"vertical-align: -5px;\"\/> : une perte bien plus lourde.<\/li>\n<\/ul>\n<p>Le mod\u00e8le annonce la m\u00eame probabilit\u00e9 dans les deux cas. <strong>La m\u00eame probabilit\u00e9, deux pertes<\/strong>, parce que la note d\u00e9pend de ce qui est arriv\u00e9, pas seulement de la probabilit\u00e9 annonc\u00e9e.<\/p>\n<h2 id=\"pourquoi-ne-pas-garder-l-erreur-quadratique\">Pourquoi ne pas garder l&rsquo;erreur quadratique<\/h2>\n<p>On pourrait croire que l&rsquo;erreur quadratique, celle qui sert \u00e0 pr\u00e9dire un nombre, ferait aussi bien. Elle est faite pour mesurer <strong>un \u00e9cart entre deux valeurs num\u00e9riques<\/strong> : c&rsquo;est le choix naturel en r\u00e9gression, alors que l&rsquo;entropie crois\u00e9e est celui de la classification .<\/p>\n<p>Quant \u00e0 la r\u00e9gression lin\u00e9aire appliqu\u00e9e directement \u00e0 une r\u00e9ponse 0\/1, elle ne tient pas : ses pr\u00e9dictions peuvent sortir de [0, 1], donc ne se lisent plus comme des probabilit\u00e9s .<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> Si tu regardes la sigmo\u00efde comme un traducteur qui transforme un score en probabilit\u00e9, la perte est le juge qui note cette probabilit\u00e9 au regard de ce qui est arriv\u00e9. Les deux vont ensemble.<\/p>\n<\/blockquote>\n<h2 id=\"ou-la-perte-se-branche-dans-pytorch\">O\u00f9 la perte se branche dans PyTorch<\/h2>\n<p>Dans un classifieur \u00e0 deux cat\u00e9gories, la sortie passe par une sigmo\u00efde avant d&rsquo;arriver \u00e0 la perte . La ligne qui fixe la perte tient en une instruction :<\/p>\n<pre><code>criterion = nn.BCELoss()\n<\/code><\/pre>\n<p>\u00c0 chaque lot, la perte se calcule <strong>entre la sortie du mod\u00e8le et les \u00e9tiquettes<\/strong>. Dans la ligne suivante, <code>output<\/code> d\u00e9signe la sortie du mod\u00e8le pour ce lot et <code>labels<\/code> ses \u00e9tiquettes ; <code>labels.float()<\/code> les convertit en nombres d\u00e9cimaux avant le calcul :<\/p>\n<pre><code>loss = criterion(output.squeeze(), labels.float())\n<\/code><\/pre>\n<p><code>loss.backward()<\/code> d\u00e9clenche ensuite la r\u00e9tropropagation : PyTorch calcule les gradients automatiquement, gr\u00e2ce \u00e0 son module <code>autograd<\/code>, pour toute fonction d\u00e9rivable .<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> L&rsquo;entropie crois\u00e9e binaire juge une probabilit\u00e9 \u00e0 partir de l&rsquo;issue r\u00e9ellement observ\u00e9e. Elle est presque nulle quand la probabilit\u00e9 donn\u00e9e \u00e0 la bonne issue est haute, et tr\u00e8s lourde quand elle est basse. <code>BCELoss<\/code> en est la version PyTorch, \u00e0 brancher apr\u00e8s une sigmo\u00efde.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>La perte d&rsquo;entropie crois\u00e9e binaire, sa formule lue terme par terme, ce qu&rsquo;elle punit et ce que fait BCELoss dans un mod\u00e8le PyTorch.<\/p>\n","protected":false},"author":1,"featured_media":739,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-740","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\/740","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=740"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/740\/revisions"}],"predecessor-version":[{"id":766,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/740\/revisions\/766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/739"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}