Deep Learning Academy · Lezione

Binary cross-entropy con logits

La loss stabile per i problemi a due classi

Lezione 2 di 413 passaggi

Binary cross-entropy con logits è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.

Due classi, una decisione

Quando il modello deve rispondere a una domanda sì o no, come spam o non spam, si usa la binary cross-entropy, la loss progettata per i problemi a due classi. ✅

Dal punteggio alla probabilità

Un modello restituisce prima un punteggio grezzo chiamato logit. La funzione sigmoid comprime questo logit in una probabilità compresa tra 0 e 1.

import torch
prob = torch.sigmoid(logit)

Cosa premia la cross-entropy

La cross-entropy produce una loss piccola quando la probabilità prevista è vicina all'etichetta reale, e una loss grande quando la previsione è erroneamente molto sicura.

Gli errori sicuri fanno male

Predire 0.99 quando l'etichetta reale è 0 produce una loss enorme. La cross-entropy penalizza gli errori sicuri molto più di quelli incerti.

La scelta ingenua della loss

Potrebbe applicare personalmente sigmoid e poi usare nn.BCELoss sulle probabilità. Funziona, ma per il training reale esiste un modo più sicuro.

import torch.nn as nn
loss_fn = nn.BCELoss()
loss = loss_fn(prob, target)

Fornisca i logit, non le probabilità

La loss consigliata è BCEWithLogitsLoss. Accetta direttamente i logit grezzi e applica sigmoid internamente al posto Suo.

import torch.nn as nn
loss_fn = nn.BCEWithLogitsLoss()
loss = loss_fn(logit, target)

Perché combinare i passaggi

La fusione di sigmoid e della loss utilizza il trucco log-sum-exp, che evita l'overflow e produce gradienti stabili anche con logit estremi.

Eviti la sigmoid aggiuntiva

Poiché BCEWithLogitsLoss applica autonomamente sigmoid, l'ultimo livello del modello deve restituire logit grezzi senza sigmoid collegata.

I target sono 0 o 1

Passi target float pari a 0.0 o 1.0, con la stessa forma dei logit. Una forma non corrispondente è il classico errore di BCE a cui prestare attenzione.

target = torch.tensor([1.0, 0.0, 1.0])

Sigmoid solo in fase di inferenza

Durante il training, la loss gestisce la compressione. Per leggere una probabilità durante una previsione, applichi sigmoid al logit in fase di inferenza.

Inclini l'equilibrio con pos_weight

Se i positivi sono rari, l'argomento pos_weight aumenta il loro contributo, così il modello smette di ignorare la classe minoritaria.

Verifica rapida

Sta eseguendo una classificazione binaria e desidera stabilità numerica. Che cosa deve fornire alla loss?

Riepilogo: sì o no in modo stabile

Per i problemi a due classi, fornisca i logit grezzi a BCEWithLogitsLoss, che esegue la compressione e il calcolo del punteggio in un unico passaggio stabile. Conservi sigmoid per leggere le probabilità in seguito. 👍

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Binary cross-entropy con logits» è gratuita?

Sì — il testo completo di «Binary cross-entropy con logits» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.

Cosa imparerò in «Binary cross-entropy con logits»?

La loss stabile per i problemi a due classi Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Deep Learning Academy?

Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Binary cross-entropy con logits»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?

Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. MSE e MAE per la regressione
  2. Binary cross-entropy con logits
  3. Cross-entropy per più classi
  4. Pesi delle classi per dati sbilanciati
← Torna a Deep Learning Academy