Si indaga ora come si istanzia al caso di classificazione multi classe non mutuamente esclusiva, nota come classificazione multilabel.
In tale scenario, un singolo esempio può essere associato contemporaneamente a più etichette.

In una piattaforma di e-commerce, un singolo prodotto può essere classificato contemporaneamente come "elettronica", "portatile" e "gaming".

Nel contesto della multilabel classification, il modello deve produrre tante uscite quanti sono le classi possibili. Ogni neurone di uscita, indicato come , stima la probabilità che l’esempio appartenga individualmente alla classe .

  • Ogni uscita rappresenta la probabilità indipendente della classe .
  • Non esiste un vincolo sulla somma delle probabilità:
  • Le classi non sono mutuamente esclusive:
    un esempio può appartenere a zero, una o più classi contemporaneamente.

Sigmoide nei neuroni di uscita: perché è fondamentale?

La funzione sigmoide è fondamentale perché consente di mappare ogni valore reale in un intervallo limitato , permettendo di interpretare l’uscita come una probabilità.

📌 Sebbene nelle reti moderne la sigmoide sia poco utilizzata nei layer nascosti (a favore per esempio della ReLU), essa rimane essenziale qualora si desideri trasformare in probabilità le uscite grezze dei singoli neuroni del layer di output.

👉 In particolare, questo è il caso nei problemi di classificazione multilabel, dove ogni uscita sigmoide rappresenta in modo indipendente la probabilità che la classe sia presente.


🔍 La somma delle attivazioni sigmoidi non dà 1

Si riporta un esempio esplicito che mostra come, in una rete con layer di uscita sigmoide,
le attivazioni non sommino necessariamente a .

Si supponga di avere due neuroni di uscita.
Calcolando gli input netti e e applicando la funzione sigmoide a ciascuno:

Sommando le attivazioni:

Come si osserva, la somma è maggiore di 1.
Quindi, un layer di uscita con sigmoidi indipendenti non genera una distribuzione di probabilità.

⚡ Nota

La sigmoide agisce indipendentemente su ciascun neurone di uscita, senza vincolare la somma delle attivazioni a . Se si desidera ottenere una vera distribuzione di probabilità, occorre utilizzare un layer softmax.

🧠 Ricorda

Quando nel layer finale si hanno molti neuroni sigmoidi, il vettore delle attivazioni non costituisce una distribuzione di probabilità. Ogni componente agisce in modo indipendente.


Declinazione alla classificazione multi label

Multilabel classification = combination of multiple binary classification tasks

Un problema di classificazione multilabel si può riguardare come una combinazione di molteplici problemi di classificazione binaria indipendenti.

🌟 Come funziona nel dettaglio:

  • Per ciascuna classe , il neurone di uscita stima una probabilità che il campione appartenga a quella classe.
  • La quantità ​ esprime la probabilità che il campione non appartenga alla classe , ovvero che si collochi in modo dicotomico nell’insieme complementare delle classi residue, considerate come un’unica alternativa (one versus all fashion).
  • Per ogni neurone si calcola una Binary Cross-Entropy (BCE) Loss.
  • La loss totale è ottenuta come somma di tutte le singole BCE losses, una per ciascun neurone di uscita:
ElementoSignificato
Probabilità di appartenenza alla classe
Probabilità di non appartenenza alla classe
Loss totaleSomma delle Binary Cross-Entropy losses su tutti i neuroni di uscita

La declinazione di alla classificazione multilabel è detta multilabel logistic (ML) loss, :

📘 Perché "logistic" nella Multilabel Logistic Loss

Il termine logistic si riferisce al fatto che ogni uscita viene ottenuta applicando una funzione sigmoide (nota anche come funzione logistica in statistica).

👉 Per questo motivo, la Multilabel Logistic Loss viene anche chiamata BCEWithLogitsLoss nei framework come PyTorch, sottolineando il fatto che il modello, in fase di ottimizzazione, lavora direttamente sui logits (cioè sugli output grezzi non ancora trasformati da alcuna funzione di attivazione), e che è la loss stessa a incorporare internamente l’applicazione della funzione sigmoide, garantendo così migliore stabilità numerica e maggiore efficienza computazionale.

⚠️ Attenzione: instabilità numeriche con funzioni di loss basate su logaritmi

Le funzioni di loss basate su logaritmi, come la Binary Cross-Entropy o la Multilabel Logistic Loss, possono presentare instabilità numeriche a causa del comportamento del logaritmo in corrispondenza di valori estremi.

📌 In particolare:

  • Quando ​ è o , si verifica un logaritmo di zero , che, se propagato durante la backpropagation, può generare gradienti non numerici (NaN) e rendere il training instabile o fallimentare. 👉 Per evitare tali problemi, è prassi consolidata nella pratica del deep learning inserire ε strategici: si aggiunge un piccolo valore positivo alle attivazioni a monte dell’applicazione del logaritmo.

dove tipicamente assume valori molto piccoli, ad esempio .

✅ Tale tecnica stabilizza il comportamento numerico garantendo che i logaritmi restino definiti e finiti durante il training.